From d46574b4fe5ea3f72ce804bd5fb38a5408f9cd94 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 25 Jun 2025 10:30:26 +0200 Subject: [PATCH 001/152] netwatch-dns: retry doh server... ... for more resilience on bad connectivity or saturated link. --- netwatch-dns.rsc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/netwatch-dns.rsc b/netwatch-dns.rsc index 4fa076a..2df26b0 100644 --- a/netwatch-dns.rsc +++ b/netwatch-dns.rsc @@ -119,11 +119,13 @@ :local Data false; :onerror Err { - :set Data ([ /tool/fetch check-certificate=yes-without-crl output=user \ - http-header-field=({ "accept: application/dns-message" }) \ - url=(($DohServer->"doh-url") . "?dns=" . [ :convert to=base64 ([ :rndstr length=2 ] . \ - "\01\00" . "\00\01" . "\00\00" . "\00\00" . "\00\00" . "\09doh-check\05eworm\02de\00" . \ - "\00\10" . "\00\01") ]) as-value ]->"data"); + :retry { + :set Data ([ /tool/fetch check-certificate=yes-without-crl output=user \ + http-header-field=({ "accept: application/dns-message" }) \ + url=(($DohServer->"doh-url") . "?dns=" . [ :convert to=base64 ([ :rndstr length=2 ] . \ + "\01\00" . "\00\01" . "\00\00" . "\00\00" . "\00\00" . "\09doh-check\05eworm\02de\00" . \ + "\00\10" . "\00\01") ]) as-value ]->"data"); + } delay=1s max=3; } do={ $LogPrint warning $ScriptName ("Request to DoH server " . ($DohServer->"doh-url") . \ " failed: " . $Err); From b068f86995c63278c91f9e92831f075fab5af2f1 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 25 Jun 2025 10:47:12 +0200 Subject: [PATCH 002/152] netwatch-dns: fix indention --- netwatch-dns.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netwatch-dns.rsc b/netwatch-dns.rsc index 2df26b0..9e2f9bc 100644 --- a/netwatch-dns.rsc +++ b/netwatch-dns.rsc @@ -125,7 +125,7 @@ url=(($DohServer->"doh-url") . "?dns=" . [ :convert to=base64 ([ :rndstr length=2 ] . \ "\01\00" . "\00\01" . "\00\00" . "\00\00" . "\00\00" . "\09doh-check\05eworm\02de\00" . \ "\00\10" . "\00\01") ]) as-value ]->"data"); - } delay=1s max=3; + } delay=1s max=3; } do={ $LogPrint warning $ScriptName ("Request to DoH server " . ($DohServer->"doh-url") . \ " failed: " . $Err); From 89175e511fc965721fc19d88819c0fef13e383dc Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 7 Jul 2025 18:38:21 +0200 Subject: [PATCH 003/152] accesslist-duplicates: print without paging --- accesslist-duplicates.capsman.rsc | 2 +- accesslist-duplicates.local.rsc | 2 +- accesslist-duplicates.template.rsc | 6 +++--- accesslist-duplicates.wifi.rsc | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/accesslist-duplicates.capsman.rsc b/accesslist-duplicates.capsman.rsc index 5e6cf0a..1da0366 100644 --- a/accesslist-duplicates.capsman.rsc +++ b/accesslist-duplicates.capsman.rsc @@ -22,7 +22,7 @@ :foreach AccList in=[ /caps-man/access-list/find where mac-address!="00:00:00:00:00:00" ] do={ :local Mac [ /caps-man/access-list/get $AccList mac-address ]; :if ($Seen->$Mac = 1) do={ - /caps-man/access-list/print where mac-address=$Mac; + /caps-man/access-list/print without-paging where mac-address=$Mac; :local Remove [ :tonum [ /terminal/ask prompt="\nNumeric id to remove, any key to skip!" ] ]; :if ([ :typeof $Remove ] = "num") do={ diff --git a/accesslist-duplicates.local.rsc b/accesslist-duplicates.local.rsc index a6b4f41..03a9724 100644 --- a/accesslist-duplicates.local.rsc +++ b/accesslist-duplicates.local.rsc @@ -22,7 +22,7 @@ :foreach AccList in=[ /interface/wireless/access-list/find where mac-address!="00:00:00:00:00:00" ] do={ :local Mac [ /interface/wireless/access-list/get $AccList mac-address ]; :if ($Seen->$Mac = 1) do={ - /interface/wireless/access-list/print where mac-address=$Mac; + /interface/wireless/access-list/print without-paging where mac-address=$Mac; :local Remove [ :tonum [ /terminal/ask prompt="\nNumeric id to remove, any key to skip!" ] ]; :if ([ :typeof $Remove ] = "num") do={ diff --git a/accesslist-duplicates.template.rsc b/accesslist-duplicates.template.rsc index e51198d..bf23147 100644 --- a/accesslist-duplicates.template.rsc +++ b/accesslist-duplicates.template.rsc @@ -27,9 +27,9 @@ :local Mac [ /interface/wifi/access-list/get $AccList mac-address ]; :local Mac [ /interface/wireless/access-list/get $AccList mac-address ]; :if ($Seen->$Mac = 1) do={ - /caps-man/access-list/print where mac-address=$Mac; - /interface/wifi/access-list/print where mac-address=$Mac; - /interface/wireless/access-list/print where mac-address=$Mac; + /caps-man/access-list/print without-paging where mac-address=$Mac; + /interface/wifi/access-list/print without-paging where mac-address=$Mac; + /interface/wireless/access-list/print without-paging where mac-address=$Mac; :local Remove [ :tonum [ /terminal/ask prompt="\nNumeric id to remove, any key to skip!" ] ]; :if ([ :typeof $Remove ] = "num") do={ diff --git a/accesslist-duplicates.wifi.rsc b/accesslist-duplicates.wifi.rsc index cadacb6..528a73c 100644 --- a/accesslist-duplicates.wifi.rsc +++ b/accesslist-duplicates.wifi.rsc @@ -22,7 +22,7 @@ :foreach AccList in=[ /interface/wifi/access-list/find where mac-address!="00:00:00:00:00:00" ] do={ :local Mac [ /interface/wifi/access-list/get $AccList mac-address ]; :if ($Seen->$Mac = 1) do={ - /interface/wifi/access-list/print where mac-address=$Mac; + /interface/wifi/access-list/print without-paging where mac-address=$Mac; :local Remove [ :tonum [ /terminal/ask prompt="\nNumeric id to remove, any key to skip!" ] ]; :if ([ :typeof $Remove ] = "num") do={ From 4c2c7e817a03202d8202bc4902f12990b0b06028 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 21 Jul 2025 10:47:19 +0200 Subject: [PATCH 004/152] netwatch-notify: give the number of failures... ... to indicated this happened several times. --- netwatch-notify.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netwatch-notify.rsc b/netwatch-notify.rsc index 00f03cd..12f2721 100644 --- a/netwatch-notify.rsc +++ b/netwatch-notify.rsc @@ -127,7 +127,7 @@ $LogPrint [ $IfThenElse ($HostInfo->"no-resolve-fail" != true) warning debug ] \ $ScriptName ("Resolving name '" . $HostInfo->"resolve" . [ $IfThenElse \ ($HostInfo->"resolve" != $HostInfo->"name") ("' for " . $Type . " '" . \ - $HostInfo->"name") "" ] . "' failed: " . $Err); + $HostInfo->"name") "" ] . "' failed third time: " . $Err); } } } From 721e786f68cccfa789874545889169212b37bf11 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 21 Jul 2025 10:52:22 +0200 Subject: [PATCH 005/152] netwatch-notify: increase the address-list timeout even further --- netwatch-notify.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/netwatch-notify.rsc b/netwatch-notify.rsc index 12f2721..1fcc203 100644 --- a/netwatch-notify.rsc +++ b/netwatch-notify.rsc @@ -62,14 +62,14 @@ :local FwAddrList ($ScriptName . "-" . [ $GetRandom20CharAlNum ]); :if ([ :typeof [ :toip $Expected ] ] = "ip") do={ - /ip/firewall/address-list/add address=$Name list=$FwAddrList dynamic=yes timeout=10s; + /ip/firewall/address-list/add address=$Name list=$FwAddrList dynamic=yes timeout=30s; :delay 20ms; :if ([ :len [ /ip/firewall/address-list/find where list=$FwAddrList address=$Expected ] ] > 0) do={ :return true; } } :if ([ :typeof [ :toip6 $Expected ] ] = "ip6") do={ - /ipv6/firewall/address-list/add address=$Name list=$FwAddrList dynamic=yes timeout=10s; + /ipv6/firewall/address-list/add address=$Name list=$FwAddrList dynamic=yes timeout=30s; :delay 20ms; :if ([ :len [ /ipv6/firewall/address-list/find where list=$FwAddrList address=$Expected ] ] > 0) do={ :return true; From a856d309df956db8bd93647a1998c95afe38da02 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 28 Jul 2025 16:47:27 +0200 Subject: [PATCH 006/152] global-functions: $SymbolByUnicodeName: allow to add more symbols... ... for example from a module. Add a script `mod/symbols-extra` with something like: :global SymbolsExtra; :set ($SymbolsExtra->"rocket") "\F0\9F\9A\80"; --- global-functions.rsc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index 829cbf2..40c3817 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1608,7 +1608,9 @@ :global LogPrintOnce; - :local Symbols { + :global SymbolsExtra; + + :local Symbols ({ "abacus"="\F0\9F\A7\AE"; "alarm-clock"="\E2\8F\B0"; "arrow-down"="\E2\AC\87"; @@ -1643,7 +1645,7 @@ "star"="\E2\AD\90"; "warning-sign"="\E2\9A\A0"; "white-heavy-check-mark"="\E2\9C\85" - } + }, $SymbolsExtra); :if ([ :len ($Symbols->$Name) ] = 0) do={ $LogPrintOnce warning $0 ("No symbol available for name '" . $Name . "'!"); From fe080c0d3de677da9ac7a6831429e51c373a7b30 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 16 Aug 2025 23:06:56 +0200 Subject: [PATCH 007/152] global-functions: $CertificateAvailable: properly handle duplicate CN MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There are CA certificates with identical CommonName out there... đŸ¤Ē Let's handle these. [admin@MikroTik] > /certificate/print proplist=common-name,skid where common-name="GlobalSign"; Flags: T - TRUSTED Columns: COMMON-NAME, SKID # COMMON-NAME SKID 0 T GlobalSign 8FF04B7FA82E4524AE4D50FA639A8BDEE2DD1BBC 1 T GlobalSign 3DE629489BEA07CA21444A26DE6EDED283D09F59 2 T GlobalSign AE6C05A39313E2A2E7E2D71CD6C7F07FC86753A0 3 T GlobalSign 54B07BAD45B8E2407FFB0A6EFBBE33C93CA384D5 --- global-functions.rsc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 40c3817..10d1b41 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -133,6 +133,11 @@ } } + :if ([ :len [ /certificate/find where common-name=$CommonName ] ] > 1) do={ + $LogPrint info $0 ("There are " . $CertCount . " Certificates with CommonName '" . $CommonName . "'. Should be ok."); + :return true; + } + :local CertVal [ /certificate/get [ find where common-name=$CommonName ] ]; :while (($CertVal->"akid") != "" && ($CertVal->"akid") != ($CertVal->"skid")) do={ :if ([ :len [ /certificate/find where skid=($CertVal->"akid") ] ] = 0) do={ From 386ea2419f29c5948ff79bbb19adee8336612f40 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 25 Aug 2025 11:03:47 +0200 Subject: [PATCH 008/152] check-health: fix variable name --- check-health.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/check-health.rsc b/check-health.rsc index 4cb9940..8cffbfc 100644 --- a/check-health.rsc +++ b/check-health.rsc @@ -92,10 +92,10 @@ :onerror Err { /system/script/run $Plugin; } do={ - $LogPrint error $ScriptName ("Plugin '" . $ScriptVal->"name" . "' failed to run: " . $Err); + $LogPrint error $ScriptName ("Plugin '" . $PluginVal->"name" . "' failed to run: " . $Err); } } else={ - $LogPrint error $ScriptName ("Plugin '" . $ScriptVal->"name" . "' failed syntax validation, skipping."); + $LogPrint error $ScriptName ("Plugin '" . $PluginVal->"name" . "' failed syntax validation, skipping."); } } From 2fed8f967b9c60d8a5742aadb0004d18dccf466c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 23 Aug 2025 23:20:51 +0200 Subject: [PATCH 009/152] check-health: pass script name to plugin --- check-health.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check-health.rsc b/check-health.rsc index 8cffbfc..760636d 100644 --- a/check-health.rsc +++ b/check-health.rsc @@ -101,7 +101,7 @@ :foreach PluginName,Discard in=$CheckHealthPlugins do={ ($CheckHealthPlugins->$PluginName) \ - ("\$CheckHealthPlugins->\"" . $PluginName . "\""); + ("\$CheckHealthPlugins->\"" . $PluginName . "\"") $ScriptName; } :set CheckHealthPlugins; From 907358cb857b9cc32171191e851e1de7894e225d Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 23 Aug 2025 23:24:13 +0200 Subject: [PATCH 010/152] check-health.d/state: use script name for origin in notification --- check-health.d/state.rsc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/check-health.d/state.rsc b/check-health.d/state.rsc index 2991935..5e4cbb8 100644 --- a/check-health.d/state.rsc +++ b/check-health.d/state.rsc @@ -11,7 +11,8 @@ :global CheckHealthPlugins; :set ($CheckHealthPlugins->[ :jobname ]) do={ - :local FuncName [ :tostr $0 ]; + :local FuncName [ :tostr $0 ]; + :local ScriptName [ :tostr $1 ]; :global CheckHealthLast; :global Identity; @@ -32,13 +33,13 @@ :if ([ :typeof ($CheckHealthLast->$Name) ] != "nothing") do={ :if ($CheckHealthLast->$Name = "ok" && \ $Value != "ok") do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "cross-mark" ] . "Health warning: " . $Name); \ message=("The device '" . $Name . "' on " . $Identity . " failed!") }); } :if ($CheckHealthLast->$Name != "ok" && \ $Value = "ok") do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "white-heavy-check-mark" ] . "Health recovery: " . $Name); \ message=("The device '" . $Name . "' on " . $Identity . " recovered!") }); } From 62ca30b5d35d9f8c74ff8a8f4f05f4a2e8301a6f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 23 Aug 2025 23:24:29 +0200 Subject: [PATCH 011/152] check-health.d/temperature: use script name for origin in notification --- check-health.d/temperature.rsc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/check-health.d/temperature.rsc b/check-health.d/temperature.rsc index a2f632d..9f3f1a5 100644 --- a/check-health.d/temperature.rsc +++ b/check-health.d/temperature.rsc @@ -11,7 +11,8 @@ :global CheckHealthPlugins; :set ($CheckHealthPlugins->[ :jobname ]) do={ - :local FuncName [ :tostr $0 ]; + :local FuncName [ :tostr $0 ]; + :local ScriptName [ :tostr $1 ]; :global CheckHealthLast; :global CheckHealthTemperature; @@ -54,7 +55,7 @@ } :if ($Value > $CheckHealthTemperature->$Name && \ $CheckHealthTemperatureNotified->$Name != true) do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "fire" ] . "Health warning: " . $Name); \ message=("The " . $Name . " on " . $Identity . " is above threshold: " . \ $Value . "\C2\B0" . "C") }); @@ -62,7 +63,7 @@ } :if ($Value <= ($CheckHealthTemperature->$Name - $CheckHealthTemperatureDeviation) && \ $CheckHealthTemperatureNotified->$Name = true) do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "white-heavy-check-mark" ] . "Health recovery: " . $Name); \ message=("The " . $Name . " on " . $Identity . " dropped below threshold: " . \ $Value . "\C2\B0" . "C") }); From 22e6383e86cc345618aafc6401e9943696b3100b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sat, 23 Aug 2025 23:24:46 +0200 Subject: [PATCH 012/152] check-health.d/voltage: use script name for origin in notification --- check-health.d/voltage.rsc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/check-health.d/voltage.rsc b/check-health.d/voltage.rsc index 9071c88..5891fb4 100644 --- a/check-health.d/voltage.rsc +++ b/check-health.d/voltage.rsc @@ -11,7 +11,8 @@ :global CheckHealthPlugins; :set ($CheckHealthPlugins->[ :jobname ]) do={ - :local FuncName [ :tostr $0 ]; + :local FuncName [ :tostr $0 ]; + :local ScriptName [ :tostr $1 ]; :global CheckHealthLast; :global CheckHealthVoltageLow; @@ -39,7 +40,7 @@ :if ($NumLast * (100 + $CheckHealthVoltagePercent) < $NumCurr * 100 || \ $NumLast * 100 > $NumCurr * (100 + $CheckHealthVoltagePercent)) do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification ("high-voltage-sign,chart-" . [ $IfThenElse ($NumLast < \ $NumCurr) "in" "de" ] . "creasing") ] . "Health warning: " . $Name); \ message=("The " . $Name . " on " . $Identity . " jumped more than " . $CheckHealthVoltagePercent . "%.\n\n" . \ @@ -47,12 +48,12 @@ [ $FormatLine "new value" ($Value . " V") 12 ]) }); } else={ :if ($NumCurr <= $CheckHealthVoltageLow && $NumLast > $CheckHealthVoltageLow) do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "high-voltage-sign,chart-decreasing" ] . "Health warning: Low " . $Name); \ message=("The " . $Name . " on " . $Identity . " dropped to " . $Value . " V below hard limit.") }); } :if ($NumCurr > $CheckHealthVoltageLow && $NumLast <= $CheckHealthVoltageLow) do={ - $SendNotification2 ({ origin=$FuncName; \ + $SendNotification2 ({ origin=$ScriptName; \ subject=([ $SymbolForNotification "high-voltage-sign,chart-increasing" ] . "Health recovery: Low " . $Name); \ message=("The " . $Name . " on " . $Identity . " recovered to " . $Value . " V above hard limit.") }); } From 6b0c9ab17d2e7e3693cebf281e5300d1e4de3446 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 15 Sep 2025 13:10:12 +0200 Subject: [PATCH 013/152] packages-update: exit early if scheduler exists --- packages-update.rsc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages-update.rsc b/packages-update.rsc index d3140f2..cfe5222 100644 --- a/packages-update.rsc +++ b/packages-update.rsc @@ -41,6 +41,11 @@ /system/reboot; } + :if ([ /system/scheduler/find where name="_RebootForUpdate" ] > 0) do={ + $LogPrint warning $ScriptName ("Scheduler for reboot already exists."); + :return false; + } + :local Interval [ $IfThenElse ([ :totime $PackagesUpdateDeferReboot ] >= 1d) \ $PackagesUpdateDeferReboot 1d ]; :local StartTime [ :tostr [ :totime (10800 + [ $GetRandomNumber 7200 ]) ] ]; From 2773fef9d80fe8f7e2abdec767da5c5dcb64ddaf Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 19 Sep 2025 17:20:37 +0200 Subject: [PATCH 014/152] global-functions: $WaitForFile: try less expensive operation Checking a specific file is less expensive operation than finding one, especially when on hardware with huge storage and lots of files (like RDS). We have to keep the find command in the latter loop, though. --- global-functions.rsc | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index 10d1b41..98bc306 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1787,14 +1787,11 @@ :local Delay ([ $MAX [ $EitherOr $WaitTime 2s ] 100ms ] / 9); :do { - :retry { - :if ([ :len [ /file/find where name=$FileName ] ] = 0) do={ - :error false; - } + :retry { + /file/get $FileName; + :return true; } delay=$Delay max=10; - } on-error={ - :return false; - } + } on-error={ } :while ([ :len [ /file/find where name=$FileName ] ] > 0) do={ :do { From 2c715096b994811fbc914f68412db91f5bd62618 Mon Sep 17 00:00:00 2001 From: Miquel Bonastre Date: Wed, 24 Sep 2025 15:17:36 +0200 Subject: [PATCH 015/152] mod/ssh-keys-import: $SSHKeysImportFile: fix file exists condition... ... which broke in commit 80aed200fd7400e4a4958ba314912488780be635. --- mod/ssh-keys-import.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/ssh-keys-import.rsc b/mod/ssh-keys-import.rsc index 7bdc95d..dd32fd6 100644 --- a/mod/ssh-keys-import.rsc +++ b/mod/ssh-keys-import.rsc @@ -85,7 +85,7 @@ :return false; } - :if ([ $FileExists $FileName ] = true) do={ + :if ([ $FileExists $FileName ] = false) do={ $LogPrint warning $0 ("File '" . $FileName . "' does not exist."); :return false; } From 14b51d96b0b9fd80e0364407f377c26e8e0222ec Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 16 Sep 2025 12:01:32 +0200 Subject: [PATCH 016/152] generate valid HTML, including head & style --- Makefile | 4 ++-- contrib/html.sh | 9 +++++++++ contrib/html.sh.d/head.html | 15 +++++++++++++++ 3 files changed, 26 insertions(+), 2 deletions(-) create mode 100755 contrib/html.sh create mode 100644 contrib/html.sh.d/head.html diff --git a/Makefile b/Makefile index 8951741..0265a51 100644 --- a/Makefile +++ b/Makefile @@ -11,8 +11,8 @@ HTML = $(MARKDOWN:.md=.html) all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json -%.html: %.md Makefile - markdown $< | sed 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' > $@ +%.html: %.md contrib/html.sh contrib/html.sh.d/head.html + contrib/html.sh $< > $@ %.capsman.rsc: %.template.rsc Makefile sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \ diff --git a/contrib/html.sh b/contrib/html.sh new file mode 100755 index 0000000..bbd8ba8 --- /dev/null +++ b/contrib/html.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html" +markdown -f toc,idanchor "${1}" | sed \ + -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ + -e '/| id="\L\1">|' +printf '' diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html new file mode 100644 index 0000000..1b1dd03 --- /dev/null +++ b/contrib/html.sh.d/head.html @@ -0,0 +1,15 @@ + +RouterOS Scripts :: __TITLE__ + + + + From a931cb61a033949a9cc6a1b62bc1e267774b04a6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 30 Sep 2025 10:02:20 +0200 Subject: [PATCH 017/152] packages-update: fix condition when checking for scheduler This broke with commit 6b0c9ab17d2e7e3693cebf281e5300d1e4de3446... --- packages-update.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages-update.rsc b/packages-update.rsc index cfe5222..379e818 100644 --- a/packages-update.rsc +++ b/packages-update.rsc @@ -41,7 +41,7 @@ /system/reboot; } - :if ([ /system/scheduler/find where name="_RebootForUpdate" ] > 0) do={ + :if ([ :len [ /system/scheduler/find where name="_RebootForUpdate" ] ] > 0) do={ $LogPrint warning $ScriptName ("Scheduler for reboot already exists."); :return false; } From 48d0f1f0b94fe6538bec54559e6e1f1609877039 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 2 Oct 2025 11:51:08 +0200 Subject: [PATCH 018/152] fw-addr-lists: check last character of line for JSON This is not a proof, but a line also ending with a curly bracket has higher probability of being valid JSON. Better safe than sorry... We are suffering a CVE in RouterOS: https://www.cve.org/CVERecord?id=CVE-2025-10948 --- fw-addr-lists.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index 0c45f7e..d56d40f 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -103,7 +103,7 @@ :foreach Line in=[ :deserialize $Data delimiter="\n" from=dsv options=dsv.plain ] do={ :set Line ($Line->0); :local Address; - :if ([ :pick $Line 0 1 ] = "{") do={ + :if ([ :pick $Line 0 1 ] = "{" && [ :pick $Line ([ :len $Line ] - 1) ] = "}") do={ :do { :set Address [ :tostr ([ :deserialize from=json $Line ]->"cidr") ]; } on-error={ } From 5ffa85f8bfb5ed11c3f3886e3b8cd7b5346b6efa Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 7 Oct 2025 16:02:53 +0200 Subject: [PATCH 019/152] mod/ssh-keys-import: handle new parameter With RouterOS 7.21beta2 the user SSH keys "key-owner" field was renamed to "info". Either of both is displayed in red by syntax highlighting, but it works anyway. --- doc/mod/ssh-keys-import.md | 5 +++-- mod/ssh-keys-import.rsc | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/mod/ssh-keys-import.md b/doc/mod/ssh-keys-import.md index 344f4bc..49276d0 100644 --- a/doc/mod/ssh-keys-import.md +++ b/doc/mod/ssh-keys-import.md @@ -38,8 +38,9 @@ import that key: $SSHKeysImport "ssh-rsa AAAAB3Nza...QYZk8= user" admin; The third part of the key (`user` in this example) is inherited as -`key-owner` in RouterOS. Also the `MD5` fingerprint is recorded, this helps -to audit and verify the available keys. +`key-owner` in RouterOS (or `info` starting with RouterOS 7.21beta2). Also +the `MD5` fingerprint is recorded, this helps to audit and verify the +available keys. > â„šī¸ī¸ **Info**: Use `ssh-keygen` to show a fingerprint of an existing public > key file: `ssh-keygen -l -E md5 -f ~/.ssh/id_ed25519.pub` diff --git a/mod/ssh-keys-import.rsc b/mod/ssh-keys-import.rsc index dd32fd6..8bea64e 100644 --- a/mod/ssh-keys-import.rsc +++ b/mod/ssh-keys-import.rsc @@ -40,7 +40,9 @@ :local FingerPrintMD5 [ :convert from=base64 transform=md5 to=hex ($KeyVal->1) ]; - :if ([ :len [ /user/ssh-keys/find where user=$User key-owner~("\\bmd5=" . $FingerPrintMD5 . "\\b") ] ] > 0) do={ + :local RegEx ("\\bmd5=" . $FingerPrintMD5 . "\\b"); + :if ([ :len [ /user/ssh-keys/find where user=$User \ + (key-owner~$RegEx or info~$RegEx) ] ] > 0) do={ $LogPrint warning $0 ("The ssh public key (MD5:" . $FingerPrintMD5 . \ ") is already available for user '" . $User . "'."); :return false; From 9ceed0926a749c51ebc050d80cd33100ecdbcc5a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 8 Oct 2025 16:02:20 +0200 Subject: [PATCH 020/152] fw-addr-lists: do not use IPv6 net addresses smaller /64 This should reduce the number of addresses in list by aggregating them, and also fix addresses with host part set (like 2001:470:1:fb5::2a0/64, which should be 2001:470:1:fb5::/64 really). The latter caused new warnings with RouterOS 7.21beta2. --- fw-addr-lists.rsc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index d56d40f..2b5fd0c 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -25,6 +25,7 @@ :global LogPrint; :global LogPrintOnce; :global LogPrintVerbose; + :global MIN; :global ScriptLock; :global WaitFullyConnected; @@ -120,9 +121,14 @@ :error true; } :if ($Address ~ "^[0-9a-zA-Z]*:[0-9a-zA-Z:\\.]+(/[0-9]{1,3})?\$") do={ - :if ([ :typeof [ :find $Address "/" ] ] = "nil") do={ - :set Address ($Address . "/128"); + :local Net $Address; + :local Cidr 64; + :local Slash [ :find $Address "/" ]; + :if ([ :typeof $Slash ] = "num") do={ + :set Net [ :toip6 [ :pick $Address 0 $Slash ] ] + :set Cidr [ $MIN [ :pick $Address ($Slash + 1) [ :len $Address ] ] 64 ]; } + :set Address (([ :toip6 $Net ] & ffff:ffff:ffff:ffff::) . "/" . $Cidr); :set ($IPv6Addresses->$Branch->$Address) $TimeOut; :error true; } From 35b556f0b20f79e2beb5d99c25159b3255124833 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 8 Oct 2025 16:23:15 +0200 Subject: [PATCH 021/152] fw-addr-lists: calculate branch after post-processing... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ... as branch will likely change, and we want to avoid duplicates. 😉 --- fw-addr-lists.rsc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index 2b5fd0c..cd136f9 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -112,11 +112,12 @@ :set Address ([ :pick $Line 0 [ $FindDelim $Line ] ] . ($List->"cidr")); } :do { - :local Branch [ $GetBranch $Address ]; + :local Branch; :if ($Address ~ "^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}(/[0-9]{1,2})?\$") do={ :if ($Address ~ "/32\$") do={ :set Address [ :pick $Address 0 ([ :len $Address ] - 3) ]; } + :set Branch [ $GetBranch $Address ]; :set ($IPv4Addresses->$Branch->$Address) $TimeOut; :error true; } @@ -129,10 +130,12 @@ :set Cidr [ $MIN [ :pick $Address ($Slash + 1) [ :len $Address ] ] 64 ]; } :set Address (([ :toip6 $Net ] & ffff:ffff:ffff:ffff::) . "/" . $Cidr); + :set Branch [ $GetBranch $Address ]; :set ($IPv6Addresses->$Branch->$Address) $TimeOut; :error true; } :if ($Address ~ "^[\\.a-zA-Z0-9-]+\\.[a-zA-Z]{2,}\$") do={ + :set Branch [ $GetBranch $Address ]; :set ($IPv4Addresses->$Branch->$Address) $TimeOut; :set ($IPv6Addresses->$Branch->$Address) $TimeOut; :error true; From c81618b57166cbc066aa476a31a32cee421314a8 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 9 Oct 2025 09:22:39 +0200 Subject: [PATCH 022/152] log-forward: always use memo symbol... ... and add warning sign on top. --- log-forward.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/log-forward.rsc b/log-forward.rsc index be7eff7..3d7d054 100644 --- a/log-forward.rsc +++ b/log-forward.rsc @@ -95,7 +95,7 @@ :set LogForwardRateLimit ($LogForwardRateLimit + 10); $SendNotification2 ({ origin=$ScriptName; \ - subject=([ $SymbolForNotification [ $IfThenElse ($Warning = true) "warning-sign" "memo" ] ] . \ + subject=([ $SymbolForNotification ("memo" . [ $IfThenElse ($Warning = true) ",warning-sign" ]) ] . \ "Log Forwarding"); \ message=("The log on " . $Identity . " contains " . [ $IfThenElse ($Count = 1) "this message" \ ("these " . $Count . " messages") ] . " after " . [ /system/resource/get uptime ] . " uptime." . \ From 6630d35eea6510834287a7004e55718f49a6232f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 13 Oct 2025 12:06:01 +0200 Subject: [PATCH 023/152] mod/notification-telegram: $FlushTelegramQueue: check for cert, again Chances are that messages have been queued before system was fully up or connected. Thus the certificate may be missing, and it should be checked again for on flush. --- mod/notification-telegram.rsc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mod/notification-telegram.rsc b/mod/notification-telegram.rsc index 2eb90e1..ff9b4da 100644 --- a/mod/notification-telegram.rsc +++ b/mod/notification-telegram.rsc @@ -21,6 +21,7 @@ :global TelegramQueue; :global TelegramMessageIDs; + :global CertificateAvailable; :global IsFullyConnected; :global LogPrint; @@ -29,6 +30,11 @@ :return false; } + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + $LogPrint warning $0 ("Downloading required certificate failed."); + :return false; + } + :local AllDone true; :local QueueLen [ :len $TelegramQueue ]; From 025b492783ad5a3dd084a6ecf4465878c970970c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 10:27:27 +0200 Subject: [PATCH 024/152] global-functions: remove trailing space --- global-functions.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 98bc306..55b5292 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -465,7 +465,7 @@ :local Error [ :tostr $3 ]; :global IfThenElse; - :global LogPrint; + :global LogPrint; :if ($ExitOK = "false") do={ $LogPrint error $Name ([ $IfThenElse ([ :pick $Name 0 1 ] = "\$") \ From def540c965c40c28cce5ceef00e25132f5ab2d3f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 10:26:50 +0200 Subject: [PATCH 025/152] global-functions: introduce $NetMask4 --- global-functions.rsc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 55b5292..5c98a20 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -61,6 +61,7 @@ :global MAX; :global MIN; :global MkDir; +:global NetMask4; :global NotificationFunctions; :global ParseDate; :global ParseKeyValueStore; @@ -990,6 +991,13 @@ :return true; } +# return an IPv4 netmask for CIDR +:set NetMask4 do={ + :local CIDR [ :tonum $1 ]; + + :return ((255.255.255.255 << (32 - $CIDR)) & 255.255.255.255); +} + # prepare NotificationFunctions array :if ([ :typeof $NotificationFunctions ] != "array") do={ :set NotificationFunctions ({}); From 9fa11cb79a2d0e23ff73b1317fdff123636fca10 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 10:42:23 +0200 Subject: [PATCH 026/152] mod/ipcalc: use $NetMask4 --- mod/ipcalc.rsc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/mod/ipcalc.rsc b/mod/ipcalc.rsc index eacff6d..fecf6f2 100644 --- a/mod/ipcalc.rsc +++ b/mod/ipcalc.rsc @@ -34,9 +34,12 @@ # calculate and return netmask, network, min host, max host and broadcast :set IPCalcReturn do={ :local Input [ :tostr $1 ]; + + :global NetMask4; + :local Address [ :toip [ :pick $Input 0 [ :find $Input "/" ] ] ]; :local Bits [ :tonum [ :pick $Input ([ :find $Input "/" ] + 1) [ :len $Input ] ] ]; - :local Mask ((255.255.255.255 << (32 - $Bits)) & 255.255.255.255); + :local Mask [ $NetMask4 $Bits ]; :local Return { "address"=$Address; From 47309e5c03e32e05ed9435ed05f9549dfddd338f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 13:02:28 +0200 Subject: [PATCH 027/152] fw-addr-lists: normalize IPv4 addresses --- fw-addr-lists.rsc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index cd136f9..26e041a 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -22,10 +22,12 @@ :global EitherOr; :global FetchHuge; :global HumanReadableNum; + :global IfThenElse; :global LogPrint; :global LogPrintOnce; :global LogPrintVerbose; :global MIN; + :global NetMask4; :global ScriptLock; :global WaitFullyConnected; @@ -114,8 +116,13 @@ :do { :local Branch; :if ($Address ~ "^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}(/[0-9]{1,2})?\$") do={ - :if ($Address ~ "/32\$") do={ - :set Address [ :pick $Address 0 ([ :len $Address ] - 3) ]; + :local Net $Address; + :local CIDR 32; + :local Slash [ :find $Address "/" ]; + :if ([ :typeof $Slash ] = "num") do={ + :set Net [ :toip [ :pick $Address 0 $Slash ] ] + :set CIDR [ :pick $Address ($Slash + 1) [ :len $Address ] ]; + :set Address [ :tostr (([ :toip $Net ] & [ $NetMask4 $CIDR ]) . [ $IfThenElse ($CIDR < 32) ("/" . $CIDR) ]) ]; } :set Branch [ $GetBranch $Address ]; :set ($IPv4Addresses->$Branch->$Address) $TimeOut; From 6ad6f9aa08d558ff2e8ff3010fe5daec3c600c4a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 10:30:20 +0200 Subject: [PATCH 028/152] global-functions: introduce $NetMask6 RouterOS does not support bit shifting on IPv6 data types, so we have to split the problem: * each 16 bit block is calculated separately, as number * the complete netmask is assembled in a loop, as string * the final string is casted to correct data type --- global-functions.rsc | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 5c98a20..ffa5277 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -62,6 +62,7 @@ :global MIN; :global MkDir; :global NetMask4; +:global NetMask6; :global NotificationFunctions; :global ParseDate; :global ParseKeyValueStore; @@ -998,6 +999,24 @@ :return ((255.255.255.255 << (32 - $CIDR)) & 255.255.255.255); } +# return an IPv6 netmask for CIDR +:set NetMask6 do={ + :local FuncName $0; + :local CIDR [ :tostr $1 ]; + + :global IfThenElse; + :global MAX; + :global MIN; + + :local Mask ""; + :for I from=0 to=7 do={ + :set Mask ($Mask . \ + [ :convert from=num to=hex (0xffff - (0xffff >> [ :tonum [ $MIN [ $MAX ($CIDR - (16 * $I)) 0 ] 16 ] ])) ] . \ + [ $IfThenElse ($I < 7) ":" ]); + } + :return [ :toip6 $Mask ]; +} + # prepare NotificationFunctions array :if ([ :typeof $NotificationFunctions ] != "array") do={ :set NotificationFunctions ({}); From d7a6eb1d0083c1d788e8febedaea67464361d271 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 15:13:14 +0200 Subject: [PATCH 029/152] global-functions: $NetMask6: implement simple caching The calculation is quite complex for something that needs to be done frequently, for example by `fw-addr-lists`. The number of possible netmasks is limited, so let's cache the results that were calculated already. --- global-functions.rsc | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index ffa5277..5ede654 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1008,13 +1008,25 @@ :global MAX; :global MIN; + :global NetMask6Cache; + + :if ([ :typeof ($NetMask6Cache->$CIDR) ] = "ip6") do={ + :return ($NetMask6Cache->$CIDR); + } + + :if ([ :typeof $NetMask6Cache ] = "nothing") do={ + :set NetMask6Cache ({}); + } + :local Mask ""; :for I from=0 to=7 do={ :set Mask ($Mask . \ [ :convert from=num to=hex (0xffff - (0xffff >> [ :tonum [ $MIN [ $MAX ($CIDR - (16 * $I)) 0 ] 16 ] ])) ] . \ [ $IfThenElse ($I < 7) ":" ]); } - :return [ :toip6 $Mask ]; + :set Mask [ :toip6 $Mask ]; + :set ($NetMask6Cache->$CIDR) $Mask; + :return $Mask; } # prepare NotificationFunctions array From ea05b69f7cfb1506e24117020a115af2d1b19c4a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 13:02:14 +0200 Subject: [PATCH 030/152] fw-addr-lists: use $NetMask6 --- fw-addr-lists.rsc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index 26e041a..c85cc8b 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -26,8 +26,8 @@ :global LogPrint; :global LogPrintOnce; :global LogPrintVerbose; - :global MIN; :global NetMask4; + :global NetMask6; :global ScriptLock; :global WaitFullyConnected; @@ -130,13 +130,13 @@ } :if ($Address ~ "^[0-9a-zA-Z]*:[0-9a-zA-Z:\\.]+(/[0-9]{1,3})?\$") do={ :local Net $Address; - :local Cidr 64; + :local CIDR 128; :local Slash [ :find $Address "/" ]; :if ([ :typeof $Slash ] = "num") do={ :set Net [ :toip6 [ :pick $Address 0 $Slash ] ] - :set Cidr [ $MIN [ :pick $Address ($Slash + 1) [ :len $Address ] ] 64 ]; + :set CIDR [ :pick $Address ($Slash + 1) [ :len $Address ] ]; } - :set Address (([ :toip6 $Net ] & ffff:ffff:ffff:ffff::) . "/" . $Cidr); + :set Address (([ :toip6 $Net ] & [ $NetMask6 $CIDR ]) . "/" . $CIDR); :set Branch [ $GetBranch $Address ]; :set ($IPv6Addresses->$Branch->$Address) $TimeOut; :error true; From b80b872e557e2513c7e9ee4c6f119e3ad56d4116 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 16 Oct 2025 17:31:15 +0200 Subject: [PATCH 031/152] mod/ipcalc: support IPv6 Well, some of these values do not make a lot of sense for IPv6... Something to be cleaned up later. --- mod/ipcalc.rsc | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/mod/ipcalc.rsc b/mod/ipcalc.rsc index fecf6f2..d65d472 100644 --- a/mod/ipcalc.rsc +++ b/mod/ipcalc.rsc @@ -36,21 +36,32 @@ :local Input [ :tostr $1 ]; :global NetMask4; + :global NetMask6; - :local Address [ :toip [ :pick $Input 0 [ :find $Input "/" ] ] ]; + :local Address [ :pick $Input 0 [ :find $Input "/" ] ]; :local Bits [ :tonum [ :pick $Input ([ :find $Input "/" ] + 1) [ :len $Input ] ] ]; - :local Mask [ $NetMask4 $Bits ]; + :local Mask; + :local One; + :if ([ :typeof [ :toip $Address ] ] = "ip") do={ + :set Address [ :toip $Address ]; + :set Mask [ $NetMask4 $Bits ]; + :set One 0.0.0.1; + } else={ + :set Address [ :toip6 $Address ]; + :set Mask [ $NetMask6 $Bits ]; + :set One ::1; + } - :local Return { + :local Return ({ "address"=$Address; "netmask"=$Mask; "networkaddress"=($Address & $Mask); "networkbits"=$Bits; "network"=(($Address & $Mask) . "/" . $Bits); - "hostmin"=(($Address & $Mask) | 0.0.0.1); - "hostmax"=(($Address | ~$Mask) ^ 0.0.0.1); + "hostmin"=(($Address & $Mask) | $One); + "hostmax"=(($Address | ~$Mask) ^ $One); "broadcast"=($Address | ~$Mask); - } + }); :return $Return; } From 20987221d978c657fe453eefd1d8c284e93b6372 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 24 Oct 2025 16:16:18 +0200 Subject: [PATCH 032/152] mod/notification-email: ignore errors (for now...) Errors are returned since RouterOS 7.21beta2. We keep the current logic for now, as we want to support older RouterOS versions. This is something to be reworked later... --- mod/notification-email.rsc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mod/notification-email.rsc b/mod/notification-email.rsc index ad9762a..7c3a6ff 100644 --- a/mod/notification-email.rsc +++ b/mod/notification-email.rsc @@ -101,8 +101,11 @@ $LogPrint warning $0 ("File '" . $File . "' does not exist, can not attach."); } } - /tool/e-mail/send from=[ $EMailGenerateFrom ] to=($Message->"to") cc=($Message->"cc") \ - subject=($Message->"subject") body=($Message->"body") file=$Attach; + :do { + /tool/e-mail/send from=[ $EMailGenerateFrom ] to=($Message->"to") \ + cc=($Message->"cc") subject=($Message->"subject") \ + body=($Message->"body") file=$Attach; + } on-error={ } :local Wait true; :do { :delay 1s; From c88953e44d9b922988e7d5638743e165a5196765 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 22:07:23 +0100 Subject: [PATCH 033/152] README: fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We had it there since 39d1027d697c09ec709a1b847a185ccff3b00540... 😜 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 243e1fc..b0d26bd 100644 --- a/README.md +++ b/README.md @@ -63,7 +63,7 @@ First time users should take the long way below. Want to see it in action? I've had a presentation [Repository based RouterOS script distribution â†—ī¸](https://www.youtube.com/watch?v=B9neG3oAhcY) -including demonstation recorded live at [MUM Europe +including demonstration recorded live at [MUM Europe 2019 â†—ī¸](https://mum.mikrotik.com/2019/EU/) in Vienna. > âš ī¸ **Warning**: Some details changed. So see the presentation, then follow From d100cac9ed37e4b79c587daf7c2bdba45c5c2ee7 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:20:29 +0100 Subject: [PATCH 034/152] README: add a line break before command --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b0d26bd..529bb4c 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ download the certificates. > đŸ’Ąī¸ **Hint**: RouterOS 7.19 comes with a builtin certificate store. You > can skip the steps regarding certificate download and import and jump > to [installation of scripts](#installation-of-scripts) if you set the -> trust for these builtin trust anchors: +> trust for these builtin trust anchors: > `/certificate/settings/set builtin-trust-anchors=trusted;` If you intend to download the scripts from a @@ -173,7 +173,7 @@ This last step is required when ever you make changes to your configuration. > â„šī¸ **Info**: It is recommended to edit the configuration using the command > line interface. If using Winbox on Windows OS, the line endings may be -> missing. To fix this run: +> missing. To fix this run: > `/system/script/set source=[ :tocrlf [ get global-config-overlay source ] ] global-config-overlay;` Updating scripts From 335266f2470593dfae33d6871abad7d2fe7297d2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 19 Nov 2025 16:18:10 +0100 Subject: [PATCH 035/152] README: update the screenshot for script update... ... to match commit 2c92c78b4647e43c44da567e98adee69b7857393. --- README.d/09-update-scripts.avif | Bin 1733 -> 1928 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/README.d/09-update-scripts.avif b/README.d/09-update-scripts.avif index f549fef5bd7a33f883044d25f3fcac68134b130f..a31d60b3a0066d1ee68abbf79fd48aa6d77ffdd0 100644 GIT binary patch delta 1713 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 T^8jiU8*(U{VZwl~v4`?B()a82 From 1a1399d3026918d2b9f89f13878fe2a66855d06b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:20:47 +0100 Subject: [PATCH 036/152] README: support new builtin-trust-store... ... which was introduced with RouterOS 7.21beta7. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 529bb4c..b77538d 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,10 @@ download the certificates. > can skip the steps regarding certificate download and import and jump > to [installation of scripts](#installation-of-scripts) if you set the > trust for these builtin trust anchors: -> `/certificate/settings/set builtin-trust-anchors=trusted;` +> `/certificate/settings/set builtin-trust-anchors=trusted;` +> With RouterOS 7.21 the functionality was changed. Set this at minimum, +> but make sure not to drop other targets: +> `/certificate/settings/set builtin-trust-store=fetch;` If you intend to download the scripts from a different location (for example from github.com) install the corresponding From fbfeea30426ac9be62bdaf7392fbfc51d4143ae3 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:38:31 +0100 Subject: [PATCH 037/152] INITIAL-COMMANDS: support new builtin-trust-store... ... which was introduced with RouterOS 7.21beta7. --- INITIAL-COMMANDS.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md index 40f609b..6e70b66 100644 --- a/INITIAL-COMMANDS.md +++ b/INITIAL-COMMANDS.md @@ -22,8 +22,11 @@ Run the complete base installation: :local CertFileName "ISRG-Root-X2.pem"; :local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470"; - :if (!(([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \ - [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={ + :local CertSettings [ /certificate/settings/get ]; + :if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \ + ($CertSettings->"builtin-trust-store") ~ "fetch" || \ + ($CertSettings->"builtin-trust-store") = "all") && \ + [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={ :put "Importing certificate..."; /tool/fetch ($BaseUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value; :delay 1s; From db0a5bf33ce5ff585f568affbea3d399466159de Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:47:55 +0100 Subject: [PATCH 038/152] global-functions: $CertificateAvailable: support new builtin-trust-store... ... which was introduced with RouterOS 7.21beta7. --- global-functions.rsc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index eb837aa..9f92b07 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -106,11 +106,15 @@ # check and download required certificate :set CertificateAvailable do={ :local CommonName [ :tostr $1 ]; + :local UseFor [ :tostr $2 ]; :global CertificateDownload; + :global EitherOr; :global LogPrint; :global ParseKeyValueStore; + :set UseFor [ $EitherOr $UseFor "undefined" ]; + :if ([ /system/resource/get free-hdd-space ] < 8388608 && \ [ /certificate/settings/get crl-download ] = true && \ [ /certificate/settings/get crl-store ] = "system") do={ @@ -123,7 +127,10 @@ :return false; } - :if (([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \ + :local CertSettings [ /certificate/settings/get ]; + :if ((($CertSettings->"builtin-trust-anchors") = "trusted" || \ + ($CertSettings->"builtin-trust-store") ~ $UseFor || \ + ($CertSettings->"builtin-trust-store") = "all") && \ [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CommonName . "\" ] ]") ]] > 0) do={ :return true; } From 8eb397f79fafa90b078abe880dd3b2958ae95dad Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:59:28 +0100 Subject: [PATCH 039/152] global-functions: $DownloadPackage: define certificate use --- global-functions.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 9f92b07..412777c 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -404,7 +404,7 @@ :return true; } - :if ([ $CertificateAvailable "ISRG Root X1" ] = false) do={ + :if ([ $CertificateAvailable "ISRG Root X1" "fetch" ] = false) do={ $LogPrint error $0 ("Downloading required certificate failed."); :return false; } From f3e6e152bce0d2563f864a2d0652899c22c53918 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:01:11 +0100 Subject: [PATCH 040/152] global-functions: $GetMacVendor: define certificate use --- global-functions.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 412777c..d4c37a2 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -640,7 +640,7 @@ } :do { - :if ([ $CertificateAvailable "GTS Root R4" ] = false) do={ + :if ([ $CertificateAvailable "GTS Root R4" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :error false; } From b5a026966736f8c530e902d222dbf8dc4eea9cfd Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:01:57 +0100 Subject: [PATCH 041/152] global-functions: $ScriptInstallUpdate: define certificate use --- global-functions.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index d4c37a2..48aaf7f 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1248,7 +1248,7 @@ :global SymbolForNotification; :global ValidateSyntax; - :if ([ $CertificateAvailable "ISRG Root X2" ] = false) do={ + :if ([ $CertificateAvailable "ISRG Root X2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading certificate failed, trying without."); } @@ -1299,7 +1299,7 @@ } :if ([ :len ($ScriptInfo->"certificate") ] > 0) do={ - :if ([ $CertificateAvailable ($ScriptInfo->"certificate") ] = false) do={ + :if ([ $CertificateAvailable ($ScriptInfo->"certificate") "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading certificate failed, trying without."); } } From 876505c36dd2cafb9ce151a3051b1631fe09b3a1 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:05:10 +0100 Subject: [PATCH 042/152] check-certificates: define certificate use --- check-certificates.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check-certificates.rsc b/check-certificates.rsc index f2d5c1f..3300bee 100644 --- a/check-certificates.rsc +++ b/check-certificates.rsc @@ -189,7 +189,7 @@ fingerprint!=[ :tostr ($CertVal->"fingerprint") ] expires-after>$CertRenewTime ]; :local CertNewVal [ /certificate/get $CertNew ]; - :if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") ] = false) do={ + :if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") "fetch" ] = false) do={ $LogPrint warning $ScriptName ("The certificate chain is not available!"); } From 677b5b8069194fdd5c1c2ddbbcd4da2c5eb0c52b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 18 Nov 2025 16:50:09 +0100 Subject: [PATCH 043/152] doc/mod/ssh-keys-import: create code block with indention --- doc/mod/ssh-keys-import.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/doc/mod/ssh-keys-import.md b/doc/mod/ssh-keys-import.md index 49276d0..abf4d39 100644 --- a/doc/mod/ssh-keys-import.md +++ b/doc/mod/ssh-keys-import.md @@ -51,12 +51,10 @@ The functions `$SSHKeysImportFile` can read an `authorized_keys`-style file and import all the keys. The user given to the function can be overwritting from comments in the file. Create a file `keys.pub` with this content: -``` -ssh-ed25519 AAAAC3Nza...3OcN8A user@client -ssh-rsa AAAAB3Nza...ozyts= worker@station -# user=example -ssh-rsa AAAAB3Nza...GXQVk= person@host -``` + ssh-ed25519 AAAAC3Nza...3OcN8A user@client + ssh-rsa AAAAB3Nza...ozyts= worker@station + # user=example + ssh-rsa AAAAB3Nza...GXQVk= person@host Then import it with: From 87787eefe3425b29e5fffe0c636adffc04208de6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:06:03 +0100 Subject: [PATCH 044/152] fw-addr-lists: define certificate use --- fw-addr-lists.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index c85cc8b..e5a71aa 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -74,7 +74,7 @@ :if ([ :len ($List->"cert") ] > 0) do={ :set CheckCertificate true; - :if ([ $CertificateAvailable ($List->"cert") ] = false) do={ + :if ([ $CertificateAvailable ($List->"cert") "fetch" ] = false) do={ $LogPrint warning $ScriptName ("Downloading required certificate (" . $FwListName . \ " / " . $List->"url" . ") failed, trying anyway."); } From affb9b3baf44fe84089a5b4059b93b336f29b21c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 18 Nov 2025 16:52:21 +0100 Subject: [PATCH 045/152] doc/mode-button: create code block with indention --- doc/mode-button.md | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/doc/mode-button.md b/doc/mode-button.md index be15bc9..af95ddb 100644 --- a/doc/mode-button.md +++ b/doc/mode-button.md @@ -26,17 +26,15 @@ can configure the reset button to act the same, see Copy this code to terminal to check: -``` -:if ([ :len [ /system/routerboard/mode-button/print as-value ] ] > 0) do={ - :put "Mode button is supported."; -} else={ - :if ([ :len [ /system/routerboard/reset-button/print as-value ] ] > 0) do={ - :put "Mode button is not supported, but reset button is."; - } else={ - :put "Neither mode button nor reset button is supported."; - } -} -``` + :if ([ :len [ /system/routerboard/mode-button/print as-value ] ] > 0) do={ + :put "Mode button is supported."; + } else={ + :if ([ :len [ /system/routerboard/reset-button/print as-value ] ] > 0) do={ + :put "Mode button is not supported, but reset button is."; + } else={ + :put "Neither mode button nor reset button is supported."; + } + } Requirements and installation ----------------------------- From 8ff34a2408b920dcdb59b2ea48d70148496553e2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:10:22 +0100 Subject: [PATCH 046/152] mod/notification-ntfy: define certificate use --- mod/notification-ntfy.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/notification-ntfy.rsc b/mod/notification-ntfy.rsc index 7114020..dd10812 100644 --- a/mod/notification-ntfy.rsc +++ b/mod/notification-ntfy.rsc @@ -109,7 +109,7 @@ :onerror Err { :if ($Server = "ntfy.sh") do={ - :if ([ $CertificateAvailable "ISRG Root X1" ] = false) do={ + :if ([ $CertificateAvailable "ISRG Root X1" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :error false; } From 090f25a82d862eaa5db86a18f9d570084e20e2b5 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:04:13 +0100 Subject: [PATCH 047/152] check-certificates: add missing semicolon --- check-certificates.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check-certificates.rsc b/check-certificates.rsc index c10e33b..f2d5c1f 100644 --- a/check-certificates.rsc +++ b/check-certificates.rsc @@ -21,7 +21,7 @@ :global CertWarnTime; :global Identity; - :global CertificateAvailable + :global CertificateAvailable; :global EscapeForRegEx; :global IfThenElse; :global LogPrint; From f0910a44723feccbf5fb25340985cd654f310cd1 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:09:43 +0100 Subject: [PATCH 048/152] mod/notification-telegram: define certificate use --- mod/notification-telegram.rsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mod/notification-telegram.rsc b/mod/notification-telegram.rsc index ff9b4da..b1996a3 100644 --- a/mod/notification-telegram.rsc +++ b/mod/notification-telegram.rsc @@ -30,7 +30,7 @@ :return false; } - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } @@ -72,7 +72,7 @@ :global CertificateAvailable; :global LogPrint; - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } @@ -197,7 +197,7 @@ "&reply_to_message_id=" . ($Notification->"replyto") . "&message_thread_id=" . $ThreadId . \ "&disable_web_page_preview=true&parse_mode=MarkdownV2"); :onerror Err { - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :error false; } From 83b164d5115931209452940b2350dcd8077b139a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:58:23 +0100 Subject: [PATCH 049/152] global-functions: $CertificateDownload: drop unused function --- global-functions.rsc | 1 - 1 file changed, 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 5ede654..3089d2e 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -161,7 +161,6 @@ :global ScriptUpdatesBaseUrl; :global ScriptUpdatesUrlSuffix; - :global CertificateAvailable; :global CertificateNameByCN; :global CleanName; :global FetchUserAgentStr; From 7772fbb22d6eb9118075c87230a43cf9b4926da5 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:07:22 +0100 Subject: [PATCH 050/152] netwatch-dns: define certificate use --- netwatch-dns.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netwatch-dns.rsc b/netwatch-dns.rsc index 9e2f9bc..eee5f85 100644 --- a/netwatch-dns.rsc +++ b/netwatch-dns.rsc @@ -112,7 +112,7 @@ :foreach DohServer in=$DohServers do={ :if ([ :len ($DohServer->"doh-cert") ] > 0) do={ - :if ([ $CertificateAvailable ($DohServer->"doh-cert") ] = false) do={ + :if ([ $CertificateAvailable ($DohServer->"doh-cert") "dns" ] = false) do={ $LogPrint warning $ScriptName ("Downloading certificate failed, trying without."); } } From 7d701483d333cec77c4b7cc6ce2bb4a8fc2eb81c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 30 Oct 2025 11:07:38 +0100 Subject: [PATCH 051/152] contrib/checksums: output to stdout... ... and let the Makefile redirect. --- Makefile | 2 +- contrib/checksums.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 0265a51..d8f2387 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json < $< > $@ checksums.json: contrib/checksums.sh *.rsc */*.rsc - contrib/checksums.sh + contrib/checksums.sh > $@ clean: rm -f $(HTML) checksums.json diff --git a/contrib/checksums.sh b/contrib/checksums.sh index b472b49..ab4e973 100755 --- a/contrib/checksums.sh +++ b/contrib/checksums.sh @@ -6,4 +6,4 @@ set -e md5sum $(find -name '*.rsc' | sort) | \ sed -e "s| \./||" -e 's|.rsc$||' | \ - jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add' > 'checksums.json' + jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add' From 5ccb0d07b120f1fd7af738d5eed3b20345e2c971 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:10:58 +0100 Subject: [PATCH 052/152] telegram-chat: define certificate use --- telegram-chat.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telegram-chat.rsc b/telegram-chat.rsc index 7f7b7a7..54872fb 100644 --- a/telegram-chat.rsc +++ b/telegram-chat.rsc @@ -61,7 +61,7 @@ :set TelegramRandomDelay 0; } - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $ScriptName ("Downloading required certificate failed."); :set ExitOK true; :error false; From 20885c4620ec95e46d914fdbb4b63378e72c25d9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sun, 2 Nov 2025 09:19:16 +0100 Subject: [PATCH 053/152] global-functions: $ScriptInstallUpdate: give hint on ignore Fixes: https://github.com/eworm-de/routeros-scripts/issues/112 --- global-functions.rsc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 3089d2e..b5fc0eb 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1313,6 +1313,11 @@ $LogPrint warning $0 ("Removing dummy. Typo on installation?"); /system/script/remove $Script; } + :if ([ :len ($ScriptInfo->"base-url") ] = 0 && [ :len ($ScriptInfo->"url-suffix") ] = 0 && \ + [ :len $CheckSum ] = 0) do={ + $LogPrintOnce warning $0 \ + ("Added the script manually? Skip updates with 'ignore=true' in comment."); + } :error false; } From 335bfc0a88e0a79e3ae03ee72a81edda9f5d0c32 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:03:33 +0100 Subject: [PATCH 054/152] update-tunnelbroker: define certificate use --- update-tunnelbroker.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update-tunnelbroker.rsc b/update-tunnelbroker.rsc index 9057e1e..5372f4c 100644 --- a/update-tunnelbroker.rsc +++ b/update-tunnelbroker.rsc @@ -28,7 +28,7 @@ :error false; } - :if ([ $CertificateAvailable "Starfield Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Starfield Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint error $ScriptName ("Downloading required certificate failed."); :set ExitOK true; :error false; From 298a43a871b28bcdc057310dbc5b7819944e4bb2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 00:00:03 +0100 Subject: [PATCH 055/152] global-functions: $ScriptInstallUpdate: either or... ... but not both. --- global-functions.rsc | 1 + 1 file changed, 1 insertion(+) diff --git a/global-functions.rsc b/global-functions.rsc index b5fc0eb..2379f9b 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1312,6 +1312,7 @@ :if ($ScriptVal->"source" = "#!rsc by RouterOS\n") do={ $LogPrint warning $0 ("Removing dummy. Typo on installation?"); /system/script/remove $Script; + :error false; } :if ([ :len ($ScriptInfo->"base-url") ] = 0 && [ :len ($ScriptInfo->"url-suffix") ] = 0 && \ [ :len $CheckSum ] = 0) do={ From 737a872a5f768eea07b1b74439580e3ce98752cd Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:11:38 +0100 Subject: [PATCH 056/152] CERTIFICATES: define certificate use --- CERTIFICATES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CERTIFICATES.md b/CERTIFICATES.md index 69d6c18..0e0a867 100644 --- a/CERTIFICATES.md +++ b/CERTIFICATES.md @@ -61,7 +61,7 @@ Import a certificate by CommonName Running the function `$CertificateAvailable` with that name as parameter makes sure the certificate is available in the device's store: - $CertificateAvailable "ISRG Root X2"; + $CertificateAvailable "ISRG Root X2" "fetch"; If the certificate is actually available already nothing happens, and there is no output. Otherwise the certificate is downloaded and imported. From d002d1c0c04e90cd73e1b821e944c56321bfa1d8 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 3 Nov 2025 09:17:25 +0100 Subject: [PATCH 057/152] global-functions: $ScriptInstallUpdate: extra actions on 'not found' only --- global-functions.rsc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 2379f9b..eb837aa 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1309,6 +1309,10 @@ } } do={ $LogPrint warning $0 ("Failed fetching script '" . $ScriptVal->"name" . "': " . $Err); + :if ($Err != "Fetch failed with status 404") do={ + :error false; + } + :if ($ScriptVal->"source" = "#!rsc by RouterOS\n") do={ $LogPrint warning $0 ("Removing dummy. Typo on installation?"); /system/script/remove $Script; From cc5aea22b357cebb54741be1d71a99f0b28d8c3f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:08:49 +0100 Subject: [PATCH 058/152] doc/mod/notification-matrix: define certificate use --- doc/mod/notification-matrix.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/mod/notification-matrix.md b/doc/mod/notification-matrix.md index da6d6de..ad4cf4f 100644 --- a/doc/mod/notification-matrix.md +++ b/doc/mod/notification-matrix.md @@ -49,7 +49,7 @@ your server in device's certificate store. The example below is for `matrix.org`, which uses a trust chain from *Google Trust Services*. Run this to import the required certificate: - $CertificateAvailable "GTS Root R4"; + $CertificateAvailable "GTS Root R4" "fetch"; Replace the CA certificate name with what ever is needed for your server. You may want to find the From 8f6a38f2994a36742c6d200d74d4548bd9c2e356 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 17 Nov 2025 09:56:49 +0100 Subject: [PATCH 059/152] mod/notification-email: remove schedule with find... ... as a race condition could occur and the scheduler is already gone. --- mod/notification-email.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/notification-email.rsc b/mod/notification-email.rsc index 7c3a6ff..668daba 100644 --- a/mod/notification-email.rsc +++ b/mod/notification-email.rsc @@ -132,7 +132,7 @@ } :if ($AllDone = true && $QueueLen = [ :len $EmailQueue ]) do={ - /system/scheduler/remove $Scheduler; + /system/scheduler/remove [ find where name="_FlushEmailQueue" ]; :set EmailQueue; :return true; } From c6cc8b9a51c0f399c36823b33a6d282344f16416 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 22:19:44 +0100 Subject: [PATCH 060/152] README: move the QR code --- README.md | 2 +- README.d/upstream.png => general/qr-code.png | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename README.d/upstream.png => general/qr-code.png (100%) diff --git a/README.md b/README.md index b77538d..36408ec 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ immediately remove the link in question. Upstream -------- -[![upstream](README.d/upstream.png)](https://rsc.eworm.de/) +[![upstream](general/qr-code.png)](https://rsc.eworm.de/) URL: [GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts) diff --git a/README.d/upstream.png b/general/qr-code.png similarity index 100% rename from README.d/upstream.png rename to general/qr-code.png From a2250a00e61edda3dadf7b253dc606713e036f56 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:19:15 +0100 Subject: [PATCH 061/152] README: add the upstream url verbatim --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 36408ec..3c69017 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,8 @@ immediately remove the link in question. Upstream -------- +[rsc.eworm.de](https://rsc.eworm.de/) + [![upstream](general/qr-code.png)](https://rsc.eworm.de/) URL: From 97b4a41f238cbf6cb5417efa53a4ba7084356da1 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 13:37:51 +0100 Subject: [PATCH 062/152] contrib/html: add empty lines... ... for easier rebasing. --- contrib/html.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/html.sh b/contrib/html.sh index bbd8ba8..6942ecf 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -3,7 +3,9 @@ set -e sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html" + markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ -e '/| id="\L\1">|' + printf '' From d610bf3582664a1a8fb5943b53f388a046ce8e33 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 14:31:17 +0100 Subject: [PATCH 063/152] contrib/{logo-color,notification}: use a single style --- contrib/logo-color.d/style.css | 5 ----- contrib/logo-color.html | 2 +- contrib/notification.html | 4 ++-- {contrib/notification.d => general}/style.css | 3 ++- 4 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 contrib/logo-color.d/style.css rename {contrib/notification.d => general}/style.css (93%) diff --git a/contrib/logo-color.d/style.css b/contrib/logo-color.d/style.css deleted file mode 100644 index eb2ec6a..0000000 --- a/contrib/logo-color.d/style.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - font-family: fira-sans, sans-serif; - font-size: 10pt; - background-color: transparent; -} diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 17942ce..507445b 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -3,7 +3,7 @@ RouterOS-Scripts Logo Color Changer - + diff --git a/contrib/notification.html b/contrib/notification.html index 7875036..b7d6764 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -3,8 +3,8 @@ RouterOS-Scripts Notification Generator - - + + diff --git a/contrib/notification.d/style.css b/general/style.css similarity index 93% rename from contrib/notification.d/style.css rename to general/style.css index 648ea23..66d44f1 100644 --- a/contrib/notification.d/style.css +++ b/general/style.css @@ -1,7 +1,8 @@ +/* stylesheet for RouterOS Scripts */ body { + background-color: transparent; font-family: fira-sans, sans-serif; font-size: 10pt; - background-color: transparent; } div.notification { position: relative; From a2d6671cf0db887dd25a122ccbf88d0709c6fb02 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 14:46:01 +0100 Subject: [PATCH 064/152] contrib/html: include stylesheet via link --- Makefile | 2 +- contrib/html.sh | 7 ++++++- contrib/html.sh.d/head.html | 11 +---------- general/style.css | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index d8f2387..b799535 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ HTML = $(MARKDOWN:.md=.html) all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json -%.html: %.md contrib/html.sh contrib/html.sh.d/head.html +%.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh $< > $@ %.capsman.rsc: %.template.rsc Makefile diff --git a/contrib/html.sh b/contrib/html.sh index 6942ecf..6a32b5d 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -2,7 +2,12 @@ set -e -sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html" +RELTO="$(dirname "${1}")" + +sed \ + -e "s|__TITLE__|$(head -n1 "${1}")|" \ + -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ + < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 1b1dd03..50653ae 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -1,15 +1,6 @@ RouterOS Scripts :: __TITLE__ - + diff --git a/general/style.css b/general/style.css index 66d44f1..be67afa 100644 --- a/general/style.css +++ b/general/style.css @@ -4,6 +4,28 @@ body { font-family: fira-sans, sans-serif; font-size: 10pt; } +h2 { + border-bottom: 1px solid #ccc; + color: #000; +} +a { + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +blockquote { + border-left: 4px solid #ccc; + padding: 0 10px; + color: #777; +} +code { + margin: 0 2px; + padding: 2px 5px; + border: 1px solid #ccc; + background-color: #f8f8f8; + border-radius: 3px; +} div.notification { position: relative; float: right; @@ -31,6 +53,16 @@ p.hint { pre { font-family: fira-mono, monospace; white-space: pre-wrap; + background-color: #f8f8f8; + border: 1px solid #ccc; + overflow: auto; + padding: 6px 10px; + border-radius: 3px; +} +pre code { + margin: 0; + padding: 0; + border: 0; } span.link { color: #863600; From fae8dbd8ea2c9e5a38634c2db97dcfcb7e3f9693 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 12:51:34 +0100 Subject: [PATCH 065/152] contrib/html: add a margin on left and right... ... for windows in landscape (wider than high). Also make the notification float right for landscape only. --- general/style.css | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/general/style.css b/general/style.css index be67afa..a9ede5e 100644 --- a/general/style.css +++ b/general/style.css @@ -28,7 +28,7 @@ code { } div.notification { position: relative; - float: right; + float: none; width: 600px; border: 3px outset #6c5d53; /* border-radius: 5px; */ @@ -67,3 +67,12 @@ pre code { span.link { color: #863600; } +@media only screen and (orientation: landscape) { + body { + margin-left: 10vw; + margin-right: 10vw; + } + div.notification { + float: right; + } +} From 2d6fdc355e7b5f97fb421c00e5ccc78dd51fbe7a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:30:49 +0100 Subject: [PATCH 066/152] contrib/html: increase default line height --- general/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/general/style.css b/general/style.css index a9ede5e..ad25c7c 100644 --- a/general/style.css +++ b/general/style.css @@ -3,6 +3,7 @@ body { background-color: transparent; font-family: fira-sans, sans-serif; font-size: 10pt; + line-height: 1.6; } h2 { border-bottom: 1px solid #ccc; From a0399216fcf21797284bd281546ac6b47ef7b037 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 14:55:00 +0100 Subject: [PATCH 067/152] contrib/html: link the logo with relative path --- contrib/html.sh | 1 + contrib/html.sh.d/head.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index 6a32b5d..d4a1a90 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -7,6 +7,7 @@ RELTO="$(dirname "${1}")" sed \ -e "s|__TITLE__|$(head -n1 "${1}")|" \ -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ + -e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 50653ae..779e246 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -2,5 +2,5 @@ RouterOS Scripts :: __TITLE__ - + From 2e0787afd12178c363aff9346a7f331fe7d1b4e4 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 22:34:00 +0100 Subject: [PATCH 068/152] contrib/html: properly handle anchors --- contrib/html.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index d4a1a90..603e606 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -11,7 +11,7 @@ sed \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ - -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ + -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ -e '/| id="\L\1">|' printf '' From cbb282746fc3af91c8c872753a217c912ba307e6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:16:04 +0100 Subject: [PATCH 069/152] README: add a sub-section for code hosting --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3c69017..59c695e 100644 --- a/README.md +++ b/README.md @@ -408,12 +408,11 @@ Upstream [![upstream](general/qr-code.png)](https://rsc.eworm.de/) -URL: -[GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts) +### Code hosting -Mirror: -[eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/) -[GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts) +* [git.eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/) +* [GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts) +* [GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts) --- [âŦ†ī¸ Go back to top](#top) From 719b662b76a3ad85455c1113d6f9c57f40f3300e Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 22:57:17 +0100 Subject: [PATCH 070/152] contrib/html: drop ampersand, comma, dash, exclamation mark, ... ... parentesis & tick mark from id/anchor --- contrib/html.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index 603e606..b1d2511 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -12,6 +12,7 @@ sed \ markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ - -e '/| id="\L\1">|' + -e '/| id="\L\1">|' \ + -e '/' From ceb6f2353ea92ddf50ccb6ffa11707e71dc7b61c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 15:19:32 +0100 Subject: [PATCH 071/152] contrib/*: unify html code --- contrib/html.sh.d/head.html | 4 ++-- contrib/logo-color.html | 17 +++++++---------- contrib/notification.html | 17 +++++++---------- doc/mod/notification-telegram.md | 2 +- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 779e246..0ce3ff7 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -1,6 +1,6 @@ -RouterOS Scripts :: __TITLE__ - + +RouterOS Scripts :: __TITLE__ diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 507445b..eb00492 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -1,14 +1,12 @@ - - - - -RouterOS-Scripts Logo Color Changer + + +RouterOS Scripts :: Logo Color Changer + - - + -

RouterOS-Scripts Logo Color Changer

+

Logo Color Changer

You want the logo for your own notifications? But you joined the Telegram Group and want @@ -36,5 +34,4 @@ for other browsers may differ.)

Set a profile photo for your Telegram bot.

- - + diff --git a/contrib/notification.html b/contrib/notification.html index b7d6764..472ce48 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -1,14 +1,12 @@ - - - - -RouterOS-Scripts Notification Generator + + +RouterOS Scripts :: Notification Generator + - - + -

RouterOS-Scripts Notification Generator

+

Notification Generator

@@ -31,5 +29,4 @@

Then right-click, click "Take Screenshot" and finally select the notification and download it.

- - + diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index 804104f..7d5092d 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -107,7 +107,7 @@ chat with [BotFather â†—ī¸](https://t.me/BotFather) and set it there. ![set profile photo](notification-telegram.d/setuserpic.avif) Have a look at my -[RouterOS-Scripts Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) +[Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) to create a colored version of this scripts' logo. See also From 8faf4ab7cf9ad6313b1fe7903b9325c17827cfdc Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 15:35:14 +0100 Subject: [PATCH 072/152] contrib/{logo-color,notification}: add navigation structure --- contrib/logo-color.html | 6 ++++++ contrib/notification.html | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index eb00492..8ee1ba9 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -8,6 +8,8 @@

Logo Color Changer

+

âŦ…ī¸ Go back to main README

+

You want the logo for your own notifications? But you joined the Telegram Group and want something that differentiates? Color it!

@@ -34,4 +36,8 @@ for other browsers may differ.)

Set a profile photo for your Telegram bot.

+
+ +

âŦ…ī¸ Go back to main README
+âŦ†ī¸ Go back to top

diff --git a/contrib/notification.html b/contrib/notification.html index 472ce48..3bc86fc 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -8,6 +8,8 @@

Notification Generator

+

âŦ…ī¸ Go back to main README

+
@@ -29,4 +31,8 @@

Then right-click, click "Take Screenshot" and finally select the notification and download it.

+
+ +

âŦ…ī¸ Go back to main README
+âŦ†ī¸ Go back to top

From eb89f8359b4e8c387144330a435841430e85feab Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 16:06:42 +0100 Subject: [PATCH 073/152] contrib/notification: update date format --- contrib/notification.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/notification.html b/contrib/notification.html index 3bc86fc..c86450c 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -16,7 +16,7 @@

[MikroTik] â„šī¸ Subject

Message
-

⏰ This message was queued since oct/18/2022 18:30:48 and may be obsolete.

+

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

âœ‚ī¸ The message was too long and has been truncated, cut off 13%!

@@ -25,7 +25,7 @@

Subject:

Message:

Show link:

-

Queued since

+

Queued since

Cut-off with percent

Then right-click, click "Take Screenshot" and finally select the From 8d68f24095c8aeb0b14720d048a8493c996cf4e6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 16:11:23 +0100 Subject: [PATCH 074/152] contrib/notification: format the values italic --- contrib/notification.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/notification.html b/contrib/notification.html index c86450c..a4d0486 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -16,8 +16,8 @@

[MikroTik] â„šī¸ Subject

Message
-

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

-

âœ‚ī¸ The message was too long and has been truncated, cut off 13%!

+

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

+

âœ‚ī¸ The message was too long and has been truncated, cut off 13%!

From 5986894749a5de9c589f2269ab9ecac174f304f7 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 16:25:01 +0100 Subject: [PATCH 075/152] doc/mod/notification-telegram: use relative reference in link This may break, depending on site. --- doc/mod/notification-telegram.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index 7d5092d..bdf1331 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -106,8 +106,7 @@ chat with [BotFather â†—ī¸](https://t.me/BotFather) and set it there. ![set profile photo](notification-telegram.d/setuserpic.avif) -Have a look at my -[Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) +Have a look at my [Logo Color Changer](../../contrib/logo-color.html) to create a colored version of this scripts' logo. See also From 036c6ef68266d599747dfe59eab5f96c5fa4a388 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 16:27:59 +0100 Subject: [PATCH 076/152] contrib/logo-color: use relative reference in link ... without extra path elements. This may break, depending on site. --- contrib/logo-color.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 8ee1ba9..9962e99 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -33,7 +33,7 @@ logo and download it.

for other browsers may differ.)

See how to -Set +Set a profile photo for your Telegram bot.


From 148d40e18d5bd7f2309b06428c2ca85a0f5cb793 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 16:26:05 +0100 Subject: [PATCH 077/152] contrib: introduce Makefile... ... and update references in links. --- contrib/Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 contrib/Makefile diff --git a/contrib/Makefile b/contrib/Makefile new file mode 100644 index 0000000..aae3178 --- /dev/null +++ b/contrib/Makefile @@ -0,0 +1,10 @@ +# Makefile + +HTML := $(wildcard *.html) + +.PHONY: all docs + +all: docs + +docs: $(HTML) + sed -i '/href=/s|\.md|\.html|' $(HTML) From 607a608502c4f38a51c4679d6162c15a52332bab Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:40:27 +0100 Subject: [PATCH 078/152] doc/mod/notification-telegram: hint on possibly broken link --- doc/mod/notification-telegram.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index bdf1331..f464ff0 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -109,6 +109,10 @@ chat with [BotFather â†—ī¸](https://t.me/BotFather) and set it there. Have a look at my [Logo Color Changer](../../contrib/logo-color.html) to create a colored version of this scripts' logo. +> đŸ’Ąī¸ **Hint**: The above link may be broken on code hosting sites. +> Use [Logo Color Changer](https://rsc.eworm.de/main/contrib/logo-color.html) +> instead. + See also -------- From 1ce3160933ee70a3cc6264139247f6b668ae0b3b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:59:08 +0100 Subject: [PATCH 079/152] contrib/html: hide the hint on broken link --- contrib/html.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index b1d2511..09064ba 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -13,6 +13,7 @@ sed \ markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ -e '/| id="\L\1">|' \ - -e '/' From cbb0aba1b1ea8b40cec99643de2cfb6f6a933bc9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:51:05 +0100 Subject: [PATCH 080/152] contrib/logo-color: hint on possibly broken site --- contrib/logo-color.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 9962e99..f05f4bb 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -10,6 +10,11 @@

âŦ…ī¸ Go back to main README

+

đŸ’Ąī¸ Hint: This site or links +on it may be broken on code hosting sites. Use +Logo Color Changer +instead.

+

You want the logo for your own notifications? But you joined the Telegram Group and want something that differentiates? Color it!

From b16c2f5b90170a81c30f5b98666264b020e3ac7f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:52:58 +0100 Subject: [PATCH 081/152] contrib/notification: hint on possibly broken site --- contrib/notification.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/contrib/notification.html b/contrib/notification.html index a4d0486..3ff8754 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -10,6 +10,11 @@

âŦ…ī¸ Go back to main README

+

đŸ’Ąī¸ Hint: This site or links +on it may be broken on code hosting sites. Use +Notification Generator +instead.

+
From 165d7c60d4d156484cc106b4271ade78ab97a026 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 22:08:11 +0100 Subject: [PATCH 082/152] contrib/html: add a head with eworm, QR code and caption --- contrib/html.sh | 2 ++ contrib/html.sh.d/head.html | 9 +++++++++ general/eworm-meadow.avif | Bin 0 -> 3922 bytes general/style.css | 12 ++++++++++++ 4 files changed, 23 insertions(+) create mode 100644 general/eworm-meadow.avif diff --git a/contrib/html.sh b/contrib/html.sh index 09064ba..0b89724 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -8,6 +8,8 @@ sed \ -e "s|__TITLE__|$(head -n1 "${1}")|" \ -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ -e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \ + -e "s|__EWORM__|$(realpath --relative-to="${RELTO}" general/eworm-meadow.avif)|" \ + -e "s|__QR_CODE__|$(realpath --relative-to="${RELTO}" general/qr-code.png)|" \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 0ce3ff7..da54157 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -4,3 +4,12 @@ + + + + + +
eworm on meadowQR code: rsc.eworm.deRouterOS Scripts
+ a collection of scripts for MikroTik RouterOS
+
+ diff --git a/general/eworm-meadow.avif b/general/eworm-meadow.avif new file mode 100644 index 0000000000000000000000000000000000000000..f592d59b86c9d178954a09bfb30dd7b6268a3a0b GIT binary patch literal 3922 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 Ol=-JRBU@RH*#86W_XlVI literal 0 HcmV?d00001 diff --git a/general/style.css b/general/style.css index ad25c7c..018ccc4 100644 --- a/general/style.css +++ b/general/style.css @@ -68,6 +68,18 @@ pre code { span.link { color: #863600; } +td.head { + line-height: 1.2; + padding: 0 2em; +} +td.head .top { + font-size: 250%; + font-weight: bold; +} +td.head .bottom { + font-size: 125%; + color: #555; +} @media only screen and (orientation: landscape) { body { margin-left: 10vw; From 7b45bb5b46a9cc63d3f32f45610ba010c485b304 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:56:16 +0100 Subject: [PATCH 083/152] contrib/Makefile: hide the hint on broken site --- contrib/Makefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/contrib/Makefile b/contrib/Makefile index aae3178..cdb9f4c 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -7,4 +7,7 @@ HTML := $(wildcard *.html) all: docs docs: $(HTML) - sed -i '/href=/s|\.md|\.html|' $(HTML) + sed -i \ + -e '/href=/s|\.md|\.html|' \ + -e '/blockquote/s|/\*! display \*/|display: none;|' \ + $(HTML) From 75692abf4794b6950cb42288dbf2e104a2e797fe Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:26:37 +0100 Subject: [PATCH 084/152] contrib/logo-color: add a head with eworm, QR code and caption --- contrib/logo-color.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index f05f4bb..3aca324 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -6,6 +6,14 @@ + + + + +
eworm on meadowQR code: rsc.eworm.deRouterOS Scripts
+ a collection of scripts for MikroTik RouterOS
+
+

Logo Color Changer

âŦ…ī¸ Go back to main README

From b4e6cc5b590ede01c67726cce5bef12e6aca9420 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:27:09 +0100 Subject: [PATCH 085/152] contrib/notification: add a head with eworm, QR code and caption --- contrib/notification.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/contrib/notification.html b/contrib/notification.html index 3ff8754..902d328 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -6,6 +6,14 @@ + + + + +
eworm on meadowQR code: rsc.eworm.deRouterOS Scripts
+ a collection of scripts for MikroTik RouterOS
+
+

Notification Generator

âŦ…ī¸ Go back to main README

From d1fa3facfdbf09ff09fc572b79dd8099e069415a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 6 Nov 2025 17:32:37 +0100 Subject: [PATCH 086/152] Makefile: clean up and add phony targets --- Makefile | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index b799535..f841ca2 100644 --- a/Makefile +++ b/Makefile @@ -2,18 +2,28 @@ # template scripts -> final scripts # markdown files -> html files -CAPSMAN = $(wildcard *.capsman.rsc) -LOCAL = $(wildcard *.local.rsc) -WIFI = $(wildcard *.wifi.rsc) +ALL_RSC := $(wildcard *.rsc */*.rsc) +GEN_RSC := $(wildcard *.capsman.rsc *.local.rsc *.wifi.rsc) -MARKDOWN = $(wildcard *.md doc/*.md doc/mod/*.md) -HTML = $(MARKDOWN:.md=.html) +MARKDOWN := $(wildcard *.md doc/*.md doc/mod/*.md) +HTML := $(MARKDOWN:.md=.html) -all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json +.PHONY: all checksums docs rsc clean + +all: checksums docs rsc + +checksums: checksums.json + +checksums.json: contrib/checksums.sh $(ALL_RSC) + contrib/checksums.sh > $@ + +docs: $(HTML) %.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh $< > $@ +rsc: $(GEN_RSC) + %.capsman.rsc: %.template.rsc Makefile sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \ -e '/^# NOT \/caps-man\/ #$$/,/^# NOT \/caps-man\/ #$$/d' \ @@ -32,8 +42,5 @@ all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ < $< > $@ -checksums.json: contrib/checksums.sh *.rsc */*.rsc - contrib/checksums.sh > $@ - clean: rm -f $(HTML) checksums.json From edd51ca71905851f4a202ac3129391a8c0615047 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 17:22:30 +0100 Subject: [PATCH 087/152] contrib/html: add a footer with date and version info --- Makefile | 6 +++++- contrib/html.sh | 5 ++++- contrib/html.sh.d/foot.html | 4 ++++ general/style.css | 4 ++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 contrib/html.sh.d/foot.html diff --git a/Makefile b/Makefile index f841ca2..ecb25bc 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,10 @@ GEN_RSC := $(wildcard *.capsman.rsc *.local.rsc *.wifi.rsc) MARKDOWN := $(wildcard *.md doc/*.md doc/mod/*.md) HTML := $(MARKDOWN:.md=.html) +DATE ?= $(shell date --rfc-email) +VERSION ?= $(shell git symbolic-ref --short HEAD 2>/dev/null)/$(shell git rev-list --count HEAD 2>/dev/null)/$(shell git rev-parse --short=8 HEAD 2>/dev/null) +export DATE VERSION + .PHONY: all checksums docs rsc clean all: checksums docs rsc @@ -19,7 +23,7 @@ checksums.json: contrib/checksums.sh $(ALL_RSC) docs: $(HTML) -%.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html +%.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh.d/foot.html contrib/html.sh $< > $@ rsc: $(GEN_RSC) diff --git a/contrib/html.sh b/contrib/html.sh index 0b89724..2fe9ef7 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -18,4 +18,7 @@ markdown -f toc,idanchor "${1}" | sed \ -e '/' +sed \ + -e "s|__DATE__|${DATE:-$(date --rfc-email)}|" \ + -e "s|__VERSION__|${VERSION:-unknown}|" \ + < "${0}.d/foot.html" diff --git a/contrib/html.sh.d/foot.html b/contrib/html.sh.d/foot.html new file mode 100644 index 0000000..106c2bd --- /dev/null +++ b/contrib/html.sh.d/foot.html @@ -0,0 +1,4 @@ + +

RouterOS Scripts documentation generated on __DATE__ for __VERSION__

+ + diff --git a/general/style.css b/general/style.css index 018ccc4..73b0921 100644 --- a/general/style.css +++ b/general/style.css @@ -43,6 +43,10 @@ img.logo { float: left; border-radius: 50%; } +p.foot { + color: #777; + text-align: center; +} p.heading { margin: 0px; font-weight: bold; From 82587ec589b7c9f6a1639d05f002ad18c8540192 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 11:21:51 +0100 Subject: [PATCH 088/152] contrib/html: add copyright notice in footer --- contrib/html.sh.d/foot.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh.d/foot.html b/contrib/html.sh.d/foot.html index 106c2bd..d304152 100644 --- a/contrib/html.sh.d/foot.html +++ b/contrib/html.sh.d/foot.html @@ -1,4 +1,5 @@ -

RouterOS Scripts documentation generated on __DATE__ for __VERSION__

+

RouterOS Scripts documentation generated on __DATE__ for __VERSION__
+Copyright © 2013-2025 Christian Hesse <mail@eworm.de>

From f3afee3e4b29068847d1713fe6c1689620ce4d8d Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 23:03:58 +0100 Subject: [PATCH 089/152] fw-addr-lists.d/{allow,block}: use short url rsc.eworm.de --- fw-addr-lists.d/allow | 2 +- fw-addr-lists.d/block | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fw-addr-lists.d/allow b/fw-addr-lists.d/allow index 8b59ed7..f0239cd 100644 --- a/fw-addr-lists.d/allow +++ b/fw-addr-lists.d/allow @@ -1,3 +1,3 @@ # an ip address list for use with fw-addr-lists script -# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md +# https://rsc.eworm.de/doc/fw-addr-lists.md git.eworm.de diff --git a/fw-addr-lists.d/block b/fw-addr-lists.d/block index 5e9fef2..86a6c62 100644 --- a/fw-addr-lists.d/block +++ b/fw-addr-lists.d/block @@ -1,5 +1,5 @@ # an ip address list for use with fw-addr-lists script -# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md +# https://rsc.eworm.de/doc/fw-addr-lists.md # example.net 93.184.216.34 From d12be8f1ac000af5126c223f22b96b56916fc682 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 23:05:56 +0100 Subject: [PATCH 090/152] fw-addr-lists.d/allow: use rsc.eworm.de in the list --- fw-addr-lists.d/allow | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fw-addr-lists.d/allow b/fw-addr-lists.d/allow index f0239cd..8c4ca3c 100644 --- a/fw-addr-lists.d/allow +++ b/fw-addr-lists.d/allow @@ -1,3 +1,3 @@ # an ip address list for use with fw-addr-lists script # https://rsc.eworm.de/doc/fw-addr-lists.md -git.eworm.de +rsc.eworm.de From 4935c81bd9fe73dba6f55d2acdc8ad23c19d8875 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 18:18:36 +0100 Subject: [PATCH 091/152] contrib/template-capsman: split off from Makefile --- Makefile | 7 ++----- contrib/template-capsman.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 contrib/template-capsman.sh diff --git a/Makefile b/Makefile index ecb25bc..14aab08 100644 --- a/Makefile +++ b/Makefile @@ -28,11 +28,8 @@ docs: $(HTML) rsc: $(GEN_RSC) -%.capsman.rsc: %.template.rsc Makefile - sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \ - -e '/^# NOT \/caps-man\/ #$$/,/^# NOT \/caps-man\/ #$$/d' \ - -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ - < $< > $@ +%.capsman.rsc: %.template.rsc contrib/template-capsman.sh + contrib/template-capsman.sh $< > $@ %.local.rsc: %.template.rsc Makefile sed -e '/\/caps-man\//d' -e '/\/interface\/wifi\//d' -e 's|%TEMPL%|.local|' \ diff --git a/contrib/template-capsman.sh b/contrib/template-capsman.sh new file mode 100755 index 0000000..5771b53 --- /dev/null +++ b/contrib/template-capsman.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +sed \ + -e '/\/interface\/wifi\//d' \ + -e '/\/interface\/wireless\//d' \ + -e 's|%TEMPL%|.capsman|' \ + -e '/^# NOT \/caps-man\/ #$/,/^# NOT \/caps-man\/ #$/d' \ + -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ + < "${1}" From c6451c87f1cfb3f707822fb481f09b869f4ba84f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 22:53:31 +0100 Subject: [PATCH 092/152] general/style: make the blockquote darker --- general/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general/style.css b/general/style.css index 73b0921..ea9b111 100644 --- a/general/style.css +++ b/general/style.css @@ -18,7 +18,7 @@ a:hover { blockquote { border-left: 4px solid #ccc; padding: 0 10px; - color: #777; + color: #555; } code { margin: 0 2px; From 05f08381190c560aca16895197910be08a53db23 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 00:23:02 +0100 Subject: [PATCH 093/152] README: install from rsc.eworm.de --- README.d/01-download-certs.avif | Bin 4890 -> 1869 bytes README.d/04-import-scripts.avif | Bin 3782 -> 3932 bytes README.d/07-edit-global-config-overlay.avif | Bin 5103 -> 5161 bytes README.md | 4 ++-- global-config-overlay.rsc | 2 +- 5 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.d/01-download-certs.avif b/README.d/01-download-certs.avif index d41ca0595fa2f6b2ca1eaf3a94e34244d46e017a..0532ec3addc1b174c13c5edd6acc1294dbf36666 100644 GIT binary patch delta 1661 zcmV-@27>vTCe03zA`SrSZDn*}000000000XkuV%P000004sdC7Z2$lO000310016o zY;R)#0000)000310RR910RR926951PIsgCwC~0YKW&i*H0004zoE?$uAOUof4FO0K z210FQVRRAz3I;eOvOa7QGOY}g^$RtBL|6#1b&HYFjFYC(!0>-)rji-=!-Q@n5k3Zp zyeuGwg#{R*exc~4Gyp;#k7XSny>>gR(TEAqPqF4i`e@yt?xJrO?4 z>aqPOrapm5lM_^AY=_alGZfl@L?pP4g;qffC=Q+5H4}Rr=RR@in0gfyOS%zYdeXw< zm2gM+X@9S9ZqoE|%c^^JWO}5=K)5ui7g?lsdx*>EQ|3l7@rC0 zUgHPX?}ki-Tm_Wbbjd&S?35u%01l$)!=)69$-HICX!aER_~GZEnVxnNc`uItwMtt;#H}<$D!+KT5r{J1U)XNU~MsPbi(9+cNvl$;iZ6Q zd15qjgD3u-`C-GLxbDt|%E}+GrETXE+;0oZ++_&-KIN&Ub(~miTI zNz~|ahATg1Ij!6>FoKVNyv4cvAvGAlvD#huHpo)Tjfpc%Rs1aUH}4YG{N;nf?gE71>wpqnDg&T}1*Jdm#Wc6Z-&>`HPBAqvIbm?I%goj0K82or+t(s>WbVen zZ?obmV876fZ`9Wr9g_dz?y5AAk7=NUK0qL3aWCC%DOx^%#JebeHH)#PGF_)b@^2kb zp2x3W)nQ6+WI$?mpY@`}|1dD&pV`6bXabMUdBv5DXZ;H5WUQ3Ch4E>LH9O({%Lw%^snMo#J0&ZF@KD5p(gy zr*iW3{CtdmKumSND8iLqL<&fF`HB7_(20?#C4ncLf3O6U(Y*WFOSd}70G@Zebvh1) z+gN@4-oGfY|Mh;(tB8)Bt_a*~bdx5_kO+LTNmxHCGi}XydAP%K<n#=q_1#)RjoF<(|FD+?)u30CX3sIcPr>Z z$(Tl2sKjNzzWyt$TUpe7y61Os2_GYl(J6u1GZ4#9@cryh^8a-F<<=CNl|9I`UW8W% zCV{aclEmf^rVl2qW`1_v;>FfI^hgFH*GpIo%;yxRDQ&5QpyyT?f~IuWiN~=uu(0vZ z3a9jc!Auf_0~{641PEcV$Dr_b-4-d)h*O;4PywLl7kDry&272@2A|x!^%VMlx(o+0WGE90OnEt)+4yl!7{3M{*F$uv zk0|%wk-n&7TPB+;RR+B9pfb&Z<{K;aX6Rk}5$$~6^Am30Y?rWzv1#q7q<;Z6Kcnk( z!O@#;H$~pVjZbFgBagd1!&oxGc8Z|rY=(*a#Pu;?mE?RdI+tb#+7F)C1qs4+4o~s~ Hp3B4DQPLLu9gwT=RB1N$vRe?|p5IT_{MS77M5Jgc$1ws)iA|Oo= zB=jalM5QAr5;|hxB<#JIjJqNh zF-2ASJ9@kTW$$F{x{=-T{A60Pw@0gZ|-E?~QT!rwxlACJ1|!15s94jJGeE z8W{or4M5$YfN>E3pvsi^C<56707Ei`>tQfHN0S_7_$h%KwS@YIGfqL#z}MUNXnm;t(*lr3J2AJ&kGH zFV6ipr`CaJ{^}D?;WU49fPoTF40iM#P9DwxY-fy7#*~AO1_gk_4}bvxqoae;(ZZlm zC_O!lfr*QmiII`%7zZaSmmt5ekRZQ+fC&7Qq==ZTxPX9^s z+~Y5j|FYD?XUbVmJ=zQBn z>h2jCeK$5fG5LOKc5Z%QacTL>%Ie1E*7nZs-u{mRsxGR|f9x-1|3?=)MHdYO0){}T zxoJek`iV3>gij+~X)ph`PZ_MZuh z{(mX^x3K@wH3cw%L6pY>vjaN7X67!vcE9+SJ4|1hB5?|(IAbse=tq(pZaFJ+zkR*X zlmOc{Yn5#==?OTE9|*;**g`M2NLLQtZsVJ5S{B*eLmHHR`q1u@>{4p)Kf`fWsP#;o zMzhj^^O@!>q04^e+jgt5*Ie8H1WQaV8 zUl{&%)w}A$i$Px&F%NIWF7?$muI=w?0?BucQJ>7e7W3R*Y@KnEE3aIwaX18=9c4Ls z6P>&QbRFl#GbaSX&w4gs3cKLsw-1lMvkTaWdZogE5(%uIp$VKwUp6W#*^PdwYL}kz zD(L11GxkecHa*FP$*S!eqa zr1=+PpS9L3b)sxx>qAW&B+73(nj|h6FDdH>mGB?bg@#7SKD0&)r3RkpQs`dn=mXON z6(+|7@~=c{7mf5x^<3+Gp85{|d2IQbEFgJpfvw4(pxyLgKmYuw)<+$S#xzZv z3JF(&RK_vTR0Etzh%GYDWeg+XC11ZL~{oQ(6 zDIV-uNt(}p=5Xs0xx78_`qK<>uPllq8{Uxaxu9dj@MoF~HHaa4@g6*zX>6%i8sK%` zy|gmujczDaPBv5x^tA71b8u*`%}zRAU}~+`+WYYZkGk*OsHUj5^iVD9ys78$7vEeL zy7x?z#BZY?R$3{iab z^F3V*R%%m^zLVOZ@Zf%pp1t<1?w5bM32H+!3f7RDB@^g?jwDv~pKq4h=Ndevz-1ci z3H==bkuDYDIL)v^&>OhdpxR7XhT^-JulJIOA>J#c@ZkmCS%)gr)gHMmET4Q{K*M_5 zPDMmAu;R0$!(__+Xc*3+Ov2kfb%GdHxm~gb1hC*bx+nFmhkEDQ9RlrDea`$2)%I?D zuX0#ApioF1cDoQYS1$1i-FVg)Zj z_U4-S?of8b3DeLc%QuRBc)@ZYOv>ZfYRnp7x%!hu3-HAxo{S~+~?aT@oui( z<<`S-Opc^BbrGOPGe0L`Lq1`k3LS)mX%BLl*O)92nL1&RQ+^TX{QHulh5p;;pfF_ z1hgg;DKGs}HG=bHO`I?CXIXcj$Bi;R@`pjIM&av%ItOngFE!QHzX~3mQLu?-veIUh z7g&7tFz^%6>P&aq8o$PgLYAyj6TI?0$MUem>6=QEo2;A9x;CyPe!>fJzFtQ-QfK|(fdnJC zsqm}=xB(9Z>#XCtM7XrHN0>d%v16*vyuDThHosN*yFi8b!_s)I6gT7a`($z2!RDyt zSOrTaQ)W4K$+Rv;I@cZYygMb@ROr4@pq=1ArochtRj=#2Yw%kO7GM&;b3>B*>xJK= zgRR_I#ML_Yxz#CVyUn@oZmX8-Vn*HKBJ)}VykI||y=+@sU)2F3yf9{k+u58yfny&#|bVvaQaNAP8x8xBjF z5#Z~=lC0iZ;s+w_7Kx8nToKNqjuR;bct;n|le&H*1rebe7p2NaZtu94oZ0g=C>aUkJ@v$EPFkYb z)OFYefe^z-p9klGGt(Q^CyKdyFJGEPE!{HM;O{#5xVb{$BpV+#qNTQHjEl?42>5Ri zdH9|KV4zo%*i=(tV;jOC3R%ouX+9ziTt0njNr&ILaH2MdSVky0CBOV_39heSm3snt zru(BB9kU|uQ0@z6$IY%x{Oz_POSWvY{SLSwBebX;I=4OJwBnVes8+=+lKRS4jwgw(sJhIke<))rugdxTz{nEO0iNhy^6NR=9-E zlT_cAN8>j!Cu@H~PdK6Vc}$An@7qJgZ)hUwrM*qYr? zZ`izLMHzFaG6F)v~< z8$*IpAdRoTCF+tzLg`*s8R_2g2@fR4R3A2!xs)gesNh5m-&q|_BWMSW_CNCq$FDXX z*Om+4*uP??U{0=dk|*)I7froO{iN5HO|VWizIodRuD4q74e(dd*dzc3TYHbzJzwaa z@36>yg||`^p8sublNynYQoXKsKIG#Pg7bO3$t@2(onNExC(6Qt^@nm4;681By-lLF zSf}HNs->*vOs;UZSqTHOF++s(>UHPBY9F1h0G6p~fd~6Z5dbvyP%Gf?R^ zads(b5&x`%)!s(JxK~grQs1WD#`g2Eg?ML?5ms$l>p6rHT1D=SAl$X((Vb)~UfY&( zO{R_$Nc;YN=d+h9ZxUP}up8B6mQ2Qq_xZke#75NX1Mdr^gy4+i7*%b$CRb#(oVpnW z`F=)+%5-ovPDoWpfQmrE{nO1W!JBLC@4@x1>4R}6)p#3l6^@;jiAd|hJHm!Ce{vJ# zx9KYH4iz5;UR*wL%0#NKpJ%ZD+vWOdZgy50I<#MBXv3G(<&W9FH;SabGX@+}mt3LO z1A!XLWy+_^GEz@^(KpMtyx5uZqz{0g%wUx4` zt3NX%!=&SH5D={od%p{ZY9Dy|F4eI&A^n@Oj(!&LNpIEbVpdcBqK7c z;=TdtfKcz<(Zq9BE#50lJ|BM`rZ1j>XpXG96#S5Zt+GCQO)f1($KxscuHJbzWhZd^ z%e?8YmnKZtcMrDQ2-~|7sIIkBp+lp}(rLdMt#`{WcrXgAZcG0fSzQuW9V;%A^!d~| zNyN@;t>ikq@w{6wz#&nxq(0DKw;8BgUBcg~_P&aN8+^04d zRBM*T)`+YqPWq}espDyc_4?7-9rw2QrGoT6@S7J=HBv1Y``abwOjXEVUHX$l(aIm_ zzqLG(IOTUT$885_3w~no3SDT;ij7RNs?5G(Y9}<;3=J`(WB(>Po_Mk4^rJ-5W|aTA z;l$QBwZ(!nnyKZN?ctnsCMs(vrV^*G*Rm%o0ne0n6~la5FsKk;(=1 zADg*&cxb__PYBz?6=%(7jYb|#6-GVnZOx7$@mTHlL$yC@wIBDhqG5G`xUZ|cup`#`KM^`QP6remnc+4ml5-&X6_w*ZpUxiE-MR>~e z+0$~6Fj9$MHvzy_h zG#1~-iY=u$=|-|4&i33A|6I4MY>v)EPp~G(m0o=E4cs5LmHocYkRZ;V1qGH7%-%$K z_Zu{S!jxlE#%gjw9hnGW(XG#k+g2tKm9jq3>Y;flvnu&jufD1(&E}wzoIrn4(rQ|Q z4GhC~*P&G;@IYna+5Ny)Lk0Jh#G1%3?pZwX2M1A>&~rJ{Vl-!_!CUr~y*`bZ#-NgA zj4rodbWcZ?MQx(OhG4--n#GFO;$C$@usYqc)EW-%=VaN38G^#n7mVY}n?if0n2vR# zBi-qkUek8!8fuYYg!kqacGkn1Ys2p&E;0~$jIZ5Y<$t3i-ll@6BG#HmpD@ubHR7F( p_2C_^sKuVMBaUCyJluEV+_acsRqi6adZKL|bTF(SOYFI<@Go;`I~)K2 diff --git a/README.d/04-import-scripts.avif b/README.d/04-import-scripts.avif index 53439e4e5f832c7cd7e8a424f1b70e471ac8e31a..a5cfa7bf46733ae385e5cb9c8cc55364724c0b2d 100644 GIT binary patch delta 3727 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 diff --git a/README.d/07-edit-global-config-overlay.avif b/README.d/07-edit-global-config-overlay.avif index f87fda88e60281d3b0c4a2cb301025832c2bf8de..5b9c0a6952a9a5a411ebb70e607a26d3f19bf942 100644 GIT binary patch delta 4703 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 delta 4645 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 b-ISb_DgD!KOtbL*N&uA}Yt=~bR1)#28+8JP diff --git a/README.md b/README.md index 59c695e..f33c2a2 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ If you intend to download the scripts from a different location (for example from github.com) install the corresponding certificate chain. - /tool/fetch "https://git.eworm.de/cgit/routeros-scripts/plain/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem"; + /tool/fetch "https://rsc.eworm.de/main/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem"; ![screenshot: download certs](README.d/01-download-certs.avif) @@ -125,7 +125,7 @@ date and time is set correctly! Now let's download the main scripts and add them in configuration on the fly. - :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://git.eworm.de/cgit/routeros-scripts/plain/" . $Script . ".rsc") output=user as-value]->"data"); }; + :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://rsc.eworm.de/main/" . $Script . ".rsc") output=user as-value]->"data"); }; ![screenshot: import scripts](README.d/04-import-scripts.avif) diff --git a/global-config-overlay.rsc b/global-config-overlay.rsc index 9afaceb..88bb4d9 100644 --- a/global-config-overlay.rsc +++ b/global-config-overlay.rsc @@ -6,7 +6,7 @@ # https://rsc.eworm.de/#editing-configuration # Copy relevant configuration from global-config, paste and modify it here. -# https://rsc.eworm.de/global-config.rsc +# https://rsc.eworm.de/main/global-config.rsc # End of global-config-overlay From 54612e333fe72a7fb329f11cf543e87cec80479e Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 18:21:39 +0100 Subject: [PATCH 094/152] contrib/template-local: split off from Makefile --- Makefile | 7 ++----- contrib/template-local.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 contrib/template-local.sh diff --git a/Makefile b/Makefile index 14aab08..b90002d 100644 --- a/Makefile +++ b/Makefile @@ -31,11 +31,8 @@ rsc: $(GEN_RSC) %.capsman.rsc: %.template.rsc contrib/template-capsman.sh contrib/template-capsman.sh $< > $@ -%.local.rsc: %.template.rsc Makefile - sed -e '/\/caps-man\//d' -e '/\/interface\/wifi\//d' -e 's|%TEMPL%|.local|' \ - -e '/^# NOT \/interface\/wireless\/ #$$/,/^# NOT \/interface\/wireless\/ #$$/d' \ - -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ - < $< > $@ +%.local.rsc: %.template.rsc contrib/template-local.sh + contrib/template-local.sh $< > $@ %.wifi.rsc: %.template.rsc Makefile sed -e '/\/caps-man\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.wifi|' \ diff --git a/contrib/template-local.sh b/contrib/template-local.sh new file mode 100755 index 0000000..bc5b327 --- /dev/null +++ b/contrib/template-local.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +sed \ + -e '/\/caps-man\//d' \ + -e '/\/interface\/wifi\//d' \ + -e 's|%TEMPL%|.local|' \ + -e '/^# NOT \/interface\/wireless\/ #$/,/^# NOT \/interface\/wireless\/ #$/d' \ + -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ + < "${1}" From 0b7528db99cbb6aa943ddc83498ced13bb0dc013 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 17:07:01 +0100 Subject: [PATCH 095/152] contrib/logo-color: place screenshots below each other... ... not side by side. --- contrib/logo-color.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 3aca324..2c4cef6 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -37,9 +37,9 @@ something that differentiates? Color it!

Then right-click, click "Take Screenshot" and finally select the logo and download it.

-

Screenshot Browser 01 -Screenshot Browser 02 -Screenshot Browser 03

+

Screenshot Browser 01

+

Screenshot Browser 02

+

Screenshot Browser 03

(This example is with Firefox. The workflow From af5f01a9738ec449d4cb28b1f5718c456f1c9a10 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 00:23:37 +0100 Subject: [PATCH 096/152] INITIAL-COMMANDS: install from rsc.eworm.de --- INITIAL-COMMANDS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md index 6e70b66..787c11e 100644 --- a/INITIAL-COMMANDS.md +++ b/INITIAL-COMMANDS.md @@ -17,7 +17,7 @@ Initial commands Run the complete base installation: { - :local BaseUrl "https://git.eworm.de/cgit/routeros-scripts/plain/"; + :local BaseUrl "https://rsc.eworm.de/main/"; :local CertCommonName "ISRG Root X2"; :local CertFileName "ISRG-Root-X2.pem"; :local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470"; From aeca778284ede7b0c1cc3e64c13f93d502a06b9c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 18:22:35 +0100 Subject: [PATCH 097/152] contrib/template-wifi: split off from Makefile --- Makefile | 7 ++----- contrib/template-wifi.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 contrib/template-wifi.sh diff --git a/Makefile b/Makefile index b90002d..fa4cdcb 100644 --- a/Makefile +++ b/Makefile @@ -34,11 +34,8 @@ rsc: $(GEN_RSC) %.local.rsc: %.template.rsc contrib/template-local.sh contrib/template-local.sh $< > $@ -%.wifi.rsc: %.template.rsc Makefile - sed -e '/\/caps-man\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.wifi|' \ - -e '/^# NOT \/interface\/wifi\/ #$$/,/^# NOT \/interface\/wifi\/ #$$/d' \ - -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ - < $< > $@ +%.wifi.rsc: %.template.rsc contrib/template-wifi.sh + contrib/template-wifi.sh $< > $@ clean: rm -f $(HTML) checksums.json diff --git a/contrib/template-wifi.sh b/contrib/template-wifi.sh new file mode 100755 index 0000000..5e297d9 --- /dev/null +++ b/contrib/template-wifi.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +sed \ + -e '/\/caps-man\//d' \ + -e '/\/interface\/wireless\//d' \ + -e 's|%TEMPL%|.wifi|' \ + -e '/^# NOT \/interface\/wifi\/ #$/,/^# NOT \/interface\/wifi\/ #$/d' \ + -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ + < "${1}" From ce37544baeb55390e65eceee1c6571e4cea26b41 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 12:18:38 +0100 Subject: [PATCH 098/152] contrib/logo-color: drop width & height properties for images --- contrib/logo-color.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 2c4cef6..5516964 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -37,9 +37,9 @@ something that differentiates? Color it!

Then right-click, click "Take Screenshot" and finally select the logo and download it.

-

Screenshot Browser 01

-

Screenshot Browser 02

-

Screenshot Browser 03

+

Screenshot Browser 01

+

Screenshot Browser 02

+

Screenshot Browser 03

(This example is with Firefox. The workflow From fa9c4be576d2de88bf5c95b713abb8b1e03f6480 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 00:25:18 +0100 Subject: [PATCH 099/152] doc/mod/scriptrunonce: get script from rsc.eworm.de --- doc/mod/scriptrunonce.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/mod/scriptrunonce.md b/doc/mod/scriptrunonce.md index 955d12e..1fbb697 100644 --- a/doc/mod/scriptrunonce.md +++ b/doc/mod/scriptrunonce.md @@ -48,7 +48,7 @@ Usage and invocation The function `$ScriptRunOnce` expects an URL (or name if `ScriptRunOnceBaseUrl` is given) pointing to a script as parameter. - $ScriptRunOnce https://git.eworm.de/cgit/routeros-scripts/plain/doc/mod/scriptrunonce.d/hello-world.rsc; + $ScriptRunOnce https://rsc.eworm.de/main/doc/mod/scriptrunonce.d/hello-world.rsc; ![ScriptRunOnce](scriptrunonce.d/scriptrunonce.avif) From 93eb218589cbaa0c567b0acbeb463d75543ed826 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 15:30:30 +0100 Subject: [PATCH 100/152] global-functions: $FetchUserAgentStr: add commit info in user agent string --- global-functions.rsc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index 48aaf7f..dccb8b6 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -539,10 +539,16 @@ :set FetchUserAgentStr do={ :local Caller [ :tostr $1 ]; + :global CommitId; + :global CommitInfo; + + :global IfThenElse; + :local Resource [ /system/resource/get ]; - :return ("User-Agent: Mikrotik/" . $Resource->"version" . " " . \ - $Resource->"architecture-name" . " " . $Caller . "/Fetch (https://rsc.eworm.de/)"); + :return ("User-Agent: Mikrotik/" . $Resource->"version" . " " . $Resource->"architecture-name" . \ + " " . $Caller . "/Fetch (https://rsc.eworm.de/" . [ $IfThenElse ($CommitId != "unknown") \ + ("; " . $CommitInfo . "/" . [ :pick $CommitId 0 8 ]) ] . ")"); } # check for existence of file, optionally with type From b285f2c5d291513f11e8a8f6fd26b316c2cfc8ae Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 19:48:02 +0100 Subject: [PATCH 101/152] global-functions: add and fix global scheduler automatically... ... and also adjust README and INITIAL-COMMANDS. --- INITIAL-COMMANDS.md | 3 --- README.d/05-run-and-schedule-scripts.avif | Bin 1946 -> 0 bytes README.d/05-run-scripts.avif | Bin 0 -> 1801 bytes README.md | 6 +++--- global-functions.rsc | 9 +++++++++ 5 files changed, 12 insertions(+), 6 deletions(-) delete mode 100644 README.d/05-run-and-schedule-scripts.avif create mode 100644 README.d/05-run-scripts.avif diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md index 787c11e..374f716 100644 --- a/INITIAL-COMMANDS.md +++ b/INITIAL-COMMANDS.md @@ -45,9 +45,6 @@ Run the complete base installation: }; :put "Loading configuration and functions..."; /system/script { run global-config; run global-functions; }; - :put "Scheduling to load configuration and functions..."; - /system/scheduler/remove [ find where name="global-scripts" ]; - /system/scheduler/add name="global-scripts" start-time=startup on-event="/system/script { run global-config; run global-functions; }"; :if ([ :len [ /certificate/find where fingerprint=$CertFingerprint ] ] > 0) do={ :put "Renaming certificate by its common-name..."; :global CertificateNameByCN; diff --git a/README.d/05-run-and-schedule-scripts.avif b/README.d/05-run-and-schedule-scripts.avif deleted file mode 100644 index 37e1173f13037180a42ff7451fdd8bac7728211f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1946 zcmXv|2{_by7ao$eCd(wt7ly$|Vk}v&XplV_jHon&(ccX7Czq5k;o7$l*H)IS4IzY# zE&DbZMAqzkK1tM9zTrOi{GQ+Yp7XxvIp;ti5D9{hKZx@M2oPo*u?Ijvc>p+qg+5B3 zDeZW;`rwW{W+3mmki7p%ArKI7_W3tIViJJ=cMKE+d_0al7AA@TB(n2SWdMP&Fy9eE zSVSNY_F!g?1OU(D-N%jyvv6f)%10H>R|$nClgP&_-2u=WWa?%B=uBoZ47d-v9yLNB zClE|fWqw`|cmNzLoSd9YK85o|p(zqa3Piw}O!D@0COu$IKK;+?a{%apJ2sCGV`E_r zVPjqu;o*Yw;fHW@X-IqPjOn5E^Od(xnRl^Gh7=&M-=B?nuB=++KIK!*zj-nuZ`T(R zb?!7L)>2A*Bhmb_+KJlDU!)ArQ;6sdjl?MLjWVMlQ?a)qYD*%M@XzRZeHo!~sMR$? zJ^Dw5vuDC5lUYDoRuXx)rccKJmTg1(08KAPUSEG~yCNY%aVTl#`0jsWOEkPW%rJB) zqo#89{MixivjrR-$t3F53?h=Fibus;smz;&)c?Yxb|cV1+)hIat2lL6I(K>%%3skG zrTy|0sp9ovJo{?wT#?gs$553HT`9d7lOoI;F-_CT8zD(J*SNi(?7AqE&`+nzgu-4o z&PFh@GxA%Dv=x(tC+(?JFGk-u`$2OToZitfTWzar@^!{sVMs-kbWN-bUYSfUYzKLe z+;dTZv=H2Ko7(J3hJRL&+3V5y;y-z|2k!DHwxP7?RC4qNS^7T5NB=hy)pd`IHv|vI zf|FwFPe5+b3bLCTdieYTUi{UoZZxjd0Poj&;i%3EK19;2(Kie5|V8;|{^X8EPZmvedw-&?VkI`Ct*t{9KR_iOI$ zxBqBqc$sr5I8!S?Mr3NaY!1ifg6 z<%Xvf4MUyc&tH8edBz{^V@kA~r2GuDQKIQqb9ou+oY_n(nX~EDeAQ7gqkAH3YT1qL zohG=IK{+smMFwDO*Fq+w@5sAq`pp)Fw%+=4OvfhVtnB_0NFZM2CL*3~^R`$D#U|=O z8?8*{!B0`8DTKc!deUBVQ6OQPt%~$>nko| zpRYyyPc&ygdzG#vVPQANS1SZ<`Q?@$r8h-(TTzbOK}H;{n$vv80LxMSyZvyEpd?YVo!o2R{>Ex$%ym{+5B)H+JwG5EV;37#Iqu#1! zvdN9auvJfG`{v}9!@kT9keUB(S=AevjkkqK!$PDkz%gxdpkX~5^;h201&r4F_Btv~ z+YERyu*ep>)&sv<7h!=PZi*BX8b}?-#fXbEE4@uO|KJqt4$t06_zfEz2-ihyHEfqE z#~6erZ?>y^V{IF3ety=KG#MO?H}jUbLi9of?Nap;yBvpmoEXBX5FH1Y^_y$o;gnv7 zCCSe@(`mt17>*#klDGvQ5!2l)4f47Po466v!I5)sssh2fp$br%@k zYT^M~2tlx@E2gs-kEiz$7aQVqvrz|xh28Nhp(L_up&cWIL%(f7whMdd_n@u|^^bgA zM&boC>sdzHA+?yazT{)xr<1(7bA8}qP&uj^$%0A{ksq{gM{bak&9-{{^f?7_&VFc^>x)WdiIJ}K(QIFzv*=i78)ovVJ&{| zaziB_X8q}Gyc~~ltAl$01F`kyBbYoy$Qs!Vy3d|ZA JV`^E{{(m}8biDuo diff --git a/README.d/05-run-scripts.avif b/README.d/05-run-scripts.avif new file mode 100644 index 0000000000000000000000000000000000000000..e3b8b8b424f0502cc08fc7932742e97aa50ce7f5 GIT binary patch literal 1801 zcmXw02{hZ;7Y-t$mWq9-oz9?^A~Cha+Of2jv8$yLOZ#gQ(jX17WYDHn6=K?A>{^tm zMxs=Vt+m%yTQStw1{I2GX!$eYf9AgP?)TmAyXW0|&I5r!%3)D4I3xiG199URu|SwU z7C?qMS?ODGr8R756!O^PhRXF24F3NV1i}HqQUCG(@H7sH!k!d7+^h&-B7%=ATM&qc zdyX@RM*;-m=Ww|O0EC|mJ#pl?MJVraGq(pxIInLLfr&VobpycRaa{cpfD4Y`q9hQB z3q5WGf%w$93C6up96$t46afJNE(#+F`Zm8RA1fe<;0O#pJQzddzAOTQkhzi!fWsn> zJ#KIp1M~1EgSlHBVndKo;vhlDg|m3G33Y>2q08Oi>EtqX@8$CN;ytqxuaWA|m4u!p zLes+#NA#u4W$Epyxa`weqjc-B=lv7myTFQ>JS$~7x5 zd-Q3#-~IHVi7)bUi%6%`@PVBxdm-VOO2-AtiVP}gmzh>4Z}dXLR*pC=hIpACIeBe& zNLqtdtR~&}_%SYk-_t^AY4ZFd79**~jw+iQcMr=$|81=eEhNmL>BJ*!{Ow9S)-+t!cOQKXHpJ=_+Ap?|4~|gB=t%^<6P@S+yH6eg)?;&{3dp_1%}qG zd_OkrCF&R1n2~xl?VJp`rbU|Yj zh(5KVdcR&K^%3Su$yu#bPMoF+H3L{jT7vZs1|eg4MLVB|&Bv9psvXFWeGKu7{p7L~ zw`eBH^G@}5_&0m@578XhBFl7f0|_Na=Aq8*9msJY0GA_XU4NRcp@}H zZ_{{{?>!Vm=tbNL`gy1!`FE7Vw!%qu+S8zc?-6Sc0E#|n}7aC^jb_Ynr2^YZC#v`IPKr}Ptk^| z?Yxu}wc_V1oZ$=#FJEbOhMoaFduTAu7MwigV=pS2=6CQnm z&Q41!ipn+kKrzde@u0s8>ZQ&qJ~g&8C=kAH5~u#n+N*GaBhJxYT54hGJ@qA;2K?#V zAgmn`cPF`=y0=!=Z1hw4yWL2J`^OAsMeuBq-Z}Q>tEe-J033c^dfJ0RnTi{EPAo;CE4Y9d#-+yJTKDD z3(eZ?Y=}`xXB{crznIg{-s~U+R~s>yr~bE(s9el^J=P|tRqC<5H+Gv>=qTN~Za@&z z1Ibxw*R{{{y&YRd`m(fMr@cdxfJzzJ+tPf-n8Q5T_4%6;V+38k7hA~>Ovh*_>HeVl zmk0cf2z%vgR*n?s{B*bk&|VgQCeX*cyAp5FAe-)qyg{r>XDBAgl4ew?3Xnlw$n?#9 zduy}YZbNO3|G5<0i0i$!Wld$mNS91&=ktwJ#ugqel)k6~FNK+)2Z!htn~84=)4Cc_ z_jPgcEM}~5AHJ7A>edW>Tk5uU?q@e*@Jnzp!!ZTJt^%7(Z(Rp#JGY$$1nD(KYiHNel9?bC=0rgh23|m9G+V(`24{D{rZw@ zwrEUHvf`2GV$rbJ5MgI0N`d<6aVYzVB)p5{2(?{ks1X0Gbhlad>)Mo;7|X6dE9KN* zffQ=PMCG<+_6MSG&Xk_G;p=rP2yfEdh~_(Wwk6H55Z< f0rP^B=6p`ZLaprrjEG=8GH{uaQqby)Bxw8#n%yM% literal 0 HcmV?d00001 diff --git a/README.md b/README.md index f33c2a2..e3165a3 100644 --- a/README.md +++ b/README.md @@ -129,12 +129,12 @@ Now let's download the main scripts and add them in configuration on the fly. ![screenshot: import scripts](README.d/04-import-scripts.avif) -And finally load configuration and functions and add the scheduler. +And finally run configuration and functions. This will also add the +scheduler for loading at system startup automatically. /system/script { run global-config; run global-functions; }; - /system/scheduler/add name="global-scripts" start-time=startup on-event="/system/script { run global-config; run global-functions; }"; -![screenshot: run and schedule scripts](README.d/05-run-and-schedule-scripts.avif) +![screenshot: run scripts](README.d/05-run-scripts.avif) > đŸ’Ąī¸ **Hint**: You see complaints regarding syntax errors? Most likely the > RouterOS on your device is too old. Check for updates! diff --git a/global-functions.rsc b/global-functions.rsc index dccb8b6..db9eac6 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1900,6 +1900,15 @@ } } +# add (and fix) global scripts scheduler +:local OnEvent "/system/script { run global-config; run global-functions; }"; +:if ([ :len [ /system/scheduler/find where name="global-scripts" ] ] = 0) do={ + /system/scheduler/add name="global-scripts" start-time=startup; +} +:if ([ /system/scheduler/get "global-scripts" on-event ] != $OnEvent) do={ + /system/scheduler/set "global-scripts" on-event=$OnEvent; +} + # Log success :local Resource [ /system/resource/get ]; $LogPrintOnce info $ScriptName ("Loaded on " . $Resource->"board-name" . \ From 638258000beb96722056f5a52b9b7fad2ba59180 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 19:34:10 +0100 Subject: [PATCH 102/152] contrib/commitinfo: support updating the commit info --- Makefile | 6 +++++- contrib/commitinfo.sh | 6 ++++++ 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100755 contrib/commitinfo.sh diff --git a/Makefile b/Makefile index fa4cdcb..2e3ba0d 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ DATE ?= $(shell date --rfc-email) VERSION ?= $(shell git symbolic-ref --short HEAD 2>/dev/null)/$(shell git rev-list --count HEAD 2>/dev/null)/$(shell git rev-parse --short=8 HEAD 2>/dev/null) export DATE VERSION -.PHONY: all checksums docs rsc clean +.PHONY: all checksums commitinfo docs rsc clean all: checksums docs rsc @@ -21,6 +21,10 @@ checksums: checksums.json checksums.json: contrib/checksums.sh $(ALL_RSC) contrib/checksums.sh > $@ +commitinfo: global-functions.rsc + contrib/commitinfo.sh $< > $<~ + mv $<~ $< + docs: $(HTML) %.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh.d/foot.html diff --git a/contrib/commitinfo.sh b/contrib/commitinfo.sh new file mode 100755 index 0000000..21faf9f --- /dev/null +++ b/contrib/commitinfo.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +sed \ + -e "/^:global CommitId/c :global CommitId \"${COMMITID:-unknown}\";" \ + -e "/^:global CommitInfo/c :global CommitInfo \"${COMMITINFO:-unknown}\";" \ + < "${1}" From 903a3f44a0b14cee3fb150aeea5c8f807b8626a2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 17 Nov 2025 09:31:36 +0100 Subject: [PATCH 103/152] contrib/html: support click on code block to copy to clipboard --- contrib/html.sh | 2 ++ contrib/html.sh.d/head.html | 1 + general/clipboard.js | 4 ++++ 3 files changed, 7 insertions(+) create mode 100644 general/clipboard.js diff --git a/contrib/html.sh b/contrib/html.sh index 2fe9ef7..39589da 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -10,12 +10,14 @@ sed \ -e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \ -e "s|__EWORM__|$(realpath --relative-to="${RELTO}" general/eworm-meadow.avif)|" \ -e "s|__QR_CODE__|$(realpath --relative-to="${RELTO}" general/qr-code.png)|" \ + -e "s|__CLIPBOARD__|$(realpath --relative-to="${RELTO}" general/clipboard.js)|" \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ -e '/| id="\L\1">|' \ -e '//s|pre|pre onclick="CopyToClipboard(this)"|g' \ -e '/The above link may be broken on code hosting sites/s|blockquote|blockquote style="display: none;"|' sed \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index da54157..861a87b 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -3,6 +3,7 @@ RouterOS Scripts :: __TITLE__ + diff --git a/general/clipboard.js b/general/clipboard.js new file mode 100644 index 0000000..fceff85 --- /dev/null +++ b/general/clipboard.js @@ -0,0 +1,4 @@ +/* copy code to clipboard */ +function CopyToClipboard(element) { + navigator.clipboard.writeText(element.firstElementChild.innerHTML); +} From a61fbfb75ce42f5341ceb0bcbb521793c6f7f514 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 17 Nov 2025 09:53:30 +0100 Subject: [PATCH 104/152] =?UTF-8?q?general/style:=20add=20a=20"?= =?UTF-8?q?=F0=9F=93=8B=20Copy!"=20hint=20to=20code=20blocks?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- general/style.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/general/style.css b/general/style.css index ea9b111..191c0f6 100644 --- a/general/style.css +++ b/general/style.css @@ -69,6 +69,12 @@ pre code { padding: 0; border: 0; } +pre::before { + content: "📋 Copy!"; + float: right; + border: 1px solid #ccc; + border-radius: 3px; +} span.link { color: #863600; } From 4f778cb1c608e384bf75de267bdf9b7ea1facf00 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 19 Nov 2025 16:38:27 +0100 Subject: [PATCH 105/152] general/clipboard: add a visual feedback --- general/clipboard.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/general/clipboard.js b/general/clipboard.js index fceff85..30c3134 100644 --- a/general/clipboard.js +++ b/general/clipboard.js @@ -1,4 +1,8 @@ /* copy code to clipboard */ function CopyToClipboard(element) { + element.style.filter = 'invert(1)'; navigator.clipboard.writeText(element.firstElementChild.innerHTML); + setTimeout(function() { + element.style.filter = 'invert(0)'; + }, 100); } From ed9dee3c5f4c45da17d67fb685436d563c929ff0 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 17 Nov 2025 11:03:02 +0100 Subject: [PATCH 106/152] contrib/html: simplify handling of relative paths --- contrib/html.sh | 7 ++----- contrib/html.sh.d/head.html | 10 +++++----- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/contrib/html.sh b/contrib/html.sh index 39589da..098ba46 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -6,11 +6,8 @@ RELTO="$(dirname "${1}")" sed \ -e "s|__TITLE__|$(head -n1 "${1}")|" \ - -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ - -e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \ - -e "s|__EWORM__|$(realpath --relative-to="${RELTO}" general/eworm-meadow.avif)|" \ - -e "s|__QR_CODE__|$(realpath --relative-to="${RELTO}" general/qr-code.png)|" \ - -e "s|__CLIPBOARD__|$(realpath --relative-to="${RELTO}" general/clipboard.js)|" \ + -e "s|__GENERAL__|$(realpath --relative-to="${RELTO}" general/)|" \ + -e "s|__ROOT__|$(realpath --relative-to="${RELTO}" ./)|" \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 861a87b..656a63c 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -1,14 +1,14 @@ RouterOS Scripts :: __TITLE__ - - - + + +
- - + +
eworm on meadowQR code: rsc.eworm.deeworm on meadowQR code: rsc.eworm.de RouterOS Scripts
a collection of scripts for MikroTik RouterOS
From e10455fb18ee82480fc5e115a658c356f1e806ae Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 17 Nov 2025 13:17:17 +0100 Subject: [PATCH 107/152] contrib/static-html: split off from Makefile --- contrib/Makefile | 7 ++----- contrib/logo-color.html | 2 +- contrib/notification.html | 2 +- contrib/static-html.sh | 8 ++++++++ 4 files changed, 12 insertions(+), 7 deletions(-) create mode 100755 contrib/static-html.sh diff --git a/contrib/Makefile b/contrib/Makefile index cdb9f4c..f704378 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -6,8 +6,5 @@ HTML := $(wildcard *.html) all: docs -docs: $(HTML) - sed -i \ - -e '/href=/s|\.md|\.html|' \ - -e '/blockquote/s|/\*! display \*/|display: none;|' \ - $(HTML) +docs: static-html.sh $(HTML) + ./static-html.sh $(HTML) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 5516964..a45ea93 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -18,7 +18,7 @@

âŦ…ī¸ Go back to main README

-

đŸ’Ąī¸ Hint: This site or links +

đŸ’Ąī¸ Hint: This site or links on it may be broken on code hosting sites. Use Logo Color Changer instead.

diff --git a/contrib/notification.html b/contrib/notification.html index 902d328..a618f22 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -18,7 +18,7 @@

âŦ…ī¸ Go back to main README

-

đŸ’Ąī¸ Hint: This site or links +

đŸ’Ąī¸ Hint: This site or links on it may be broken on code hosting sites. Use Notification Generator instead.

diff --git a/contrib/static-html.sh b/contrib/static-html.sh new file mode 100755 index 0000000..2c6f595 --- /dev/null +++ b/contrib/static-html.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +sed -i \ + -e '/href=/s|\.md|\.html|' \ + -e '/blockquote/s|/\* display \*/|display: none;|' \ + "${@}" From a64e9bed80fbe7c2da5be5034732ca1b87ca06fa Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 18 Nov 2025 18:53:29 +0100 Subject: [PATCH 108/152] contrib/static-html: find static html files by comment --- contrib/Makefile | 2 +- contrib/logo-color.html | 1 + contrib/notification.html | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/contrib/Makefile b/contrib/Makefile index f704378..9417af3 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -1,6 +1,6 @@ # Makefile -HTML := $(wildcard *.html) +HTML := $(shell grep -xl '' *.html) .PHONY: all docs diff --git a/contrib/logo-color.html b/contrib/logo-color.html index a45ea93..1d67b4e 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -1,4 +1,5 @@ + RouterOS Scripts :: Logo Color Changer diff --git a/contrib/notification.html b/contrib/notification.html index a618f22..248565d 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -1,4 +1,5 @@ + RouterOS Scripts :: Notification Generator From e0b12a9050eeb1c231ace3b5b5186b34514e563d Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 18 Nov 2025 19:01:39 +0100 Subject: [PATCH 109/152] contrib/static-html: add badges --- contrib/Makefile | 5 ++++- contrib/badges.md | 6 ++++++ contrib/logo-color.html | 2 ++ contrib/notification.html | 2 ++ contrib/static-html.sh | 2 ++ 5 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 contrib/badges.md diff --git a/contrib/Makefile b/contrib/Makefile index 9417af3..ef0e41d 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -6,5 +6,8 @@ HTML := $(shell grep -xl '' *.html) all: docs -docs: static-html.sh $(HTML) +badges.html: badges.md + markdown $< > $@ + +docs: static-html.sh $(HTML) badges.html ./static-html.sh $(HTML) diff --git a/contrib/badges.md b/contrib/badges.md new file mode 100644 index 0000000..24bd205 --- /dev/null +++ b/contrib/badges.md @@ -0,0 +1,6 @@ +[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers) +[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network) +[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers) +[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.15-yellow?style=flat)](https://mikrotik.com/download/changelogs/) +[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts) +[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 1d67b4e..84365a6 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -17,6 +17,8 @@

Logo Color Changer

+ +

âŦ…ī¸ Go back to main README

đŸ’Ąī¸ Hint: This site or links diff --git a/contrib/notification.html b/contrib/notification.html index 248565d..a0580bd 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -17,6 +17,8 @@

Notification Generator

+ +

âŦ…ī¸ Go back to main README

đŸ’Ąī¸ Hint: This site or links diff --git a/contrib/static-html.sh b/contrib/static-html.sh index 2c6f595..7acf104 100755 --- a/contrib/static-html.sh +++ b/contrib/static-html.sh @@ -5,4 +5,6 @@ set -e sed -i \ -e '/href=/s|\.md|\.html|' \ -e '/blockquote/s|/\* display \*/|display: none;|' \ + -e '//r badges.html' \ + -e '//d' \ "${@}" From 70675a9feea715d9e3618f80011d948f222ac35a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 18 Nov 2025 19:18:43 +0100 Subject: [PATCH 110/152] contrib/Makefile: add target clean --- contrib/Makefile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/contrib/Makefile b/contrib/Makefile index ef0e41d..e755a1d 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -2,7 +2,7 @@ HTML := $(shell grep -xl '' *.html) -.PHONY: all docs +.PHONY: all docs clean all: docs @@ -11,3 +11,7 @@ badges.html: badges.md docs: static-html.sh $(HTML) badges.html ./static-html.sh $(HTML) + +clean: + rm -f badges.html + git checkout HEAD -- $(HTML) From b97a434a9c0c59d9d2b0cc8e3856f243f52de8eb Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 19 Nov 2025 08:21:36 +0100 Subject: [PATCH 111/152] Makefile: also clean contrib --- Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/Makefile b/Makefile index 2e3ba0d..5db0a30 100644 --- a/Makefile +++ b/Makefile @@ -43,3 +43,4 @@ rsc: $(GEN_RSC) clean: rm -f $(HTML) checksums.json + make -C contrib/ clean From 725eb834f439d3c7051a819caaa4eebcdedce06d Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 10:58:37 +0100 Subject: [PATCH 112/152] README: link the long way in detail --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e3165a3..8ae5b42 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,8 @@ Initial setup If you know how things work just copy and paste the [initial commands](INITIAL-COMMANDS.md). Remember to edit and rerun `global-config-overlay`! -First time users should take the long way below. +First time users should take [the long way in detail](#the-long-way-in-detail) +below. ### Live presentation From 30743c0e87e385b5310d304bcc0ba46f02f05a11 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 11:03:33 +0100 Subject: [PATCH 113/152] README: mention broken installation for initial commands --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 8ae5b42..bdb06e1 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,8 @@ Initial setup ### Get me ready! If you know how things work just copy and paste the -[initial commands](INITIAL-COMMANDS.md). Remember to edit and rerun +[initial commands](INITIAL-COMMANDS.md). These also support fixing an +existing but broken installation. Remember to edit and rerun `global-config-overlay`! First time users should take [the long way in detail](#the-long-way-in-detail) below. From 2feaaf36b2725dbdd3dcbfb43538c23a175267da Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 11:05:27 +0100 Subject: [PATCH 114/152] README: highlight the long way for first time users with hint --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bdb06e1..39404a9 100644 --- a/README.md +++ b/README.md @@ -58,8 +58,9 @@ If you know how things work just copy and paste the [initial commands](INITIAL-COMMANDS.md). These also support fixing an existing but broken installation. Remember to edit and rerun `global-config-overlay`! -First time users should take [the long way in detail](#the-long-way-in-detail) -below. + +> đŸ’Ąī¸ **Hint**: First time users should take +> [the long way in detail](#the-long-way-in-detail) below. ### Live presentation From fa64e8906bfa1f3f9bfdfcbc235fabef7076cf3b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 11:53:27 +0100 Subject: [PATCH 115/152] contrib/logo-color: add the copyright notice in footer --- contrib/logo-color.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 84365a6..e5bfb71 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -56,4 +56,7 @@ a profile photo for your Telegram bot.

âŦ…ī¸ Go back to main README
âŦ†ī¸ Go back to top

+ +

Copyright © 2013-2025 Christian Hesse <mail@eworm.de>

+ From 8a904dadf4cebe4a018b6c52140faba222ed5b80 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 11:53:55 +0100 Subject: [PATCH 116/152] contrib/notification: add the copyright notice in footer --- contrib/notification.html | 3 +++ 1 file changed, 3 insertions(+) diff --git a/contrib/notification.html b/contrib/notification.html index a0580bd..7a6ada7 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -51,4 +51,7 @@ notification and download it.

âŦ…ī¸ Go back to main README
âŦ†ī¸ Go back to top

+ +

Copyright © 2013-2025 Christian Hesse <mail@eworm.de>

+ From b65f3512d058a8349bf7ce4e6458271e4a9b1029 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 14:01:39 +0100 Subject: [PATCH 117/152] README: add scheduler with start-time=startup --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 39404a9..0aedfcf 100644 --- a/README.md +++ b/README.md @@ -225,7 +225,7 @@ cleanup add a scheduler entry. $ScriptInstallUpdate dhcp-to-dns,lease-script; /ip/dhcp-server/set lease-script=lease-script [ find ]; - /system/scheduler/add name="dhcp-to-dns" interval=5m on-event="/system/script/run dhcp-to-dns;"; + /system/scheduler/add name="dhcp-to-dns" interval=5m start-time=startup on-event="/system/script/run dhcp-to-dns;"; ![screenshot: setup lease script](README.d/12-setup-lease-script.avif) From 295fa3144a43542cb980794ce359a50de5c5b667 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 13:34:05 +0100 Subject: [PATCH 118/152] README: update screenshots, with terminal window Started xterm with: xterm -xrm 'XTerm.vt100.allowTitleOps: false' -T 'Terminal: rsc.eworm.de' --- README.d/01-download-certs.avif | Bin 1869 -> 2761 bytes README.d/02-import-certs.avif | Bin 3605 -> 2021 bytes README.d/03-check-certs.avif | Bin 8047 -> 5079 bytes README.d/04-import-scripts.avif | Bin 3932 -> 4805 bytes README.d/05-run-scripts.avif | Bin 1801 -> 2388 bytes README.d/06-schedule-update.avif | Bin 2200 -> 3129 bytes README.d/07-edit-global-config-overlay.avif | Bin 5161 -> 6174 bytes README.d/08-apply-configuration.avif | Bin 2437 -> 1842 bytes README.d/09-update-scripts.avif | Bin 1928 -> 2641 bytes README.d/10-install-scripts.avif | Bin 2423 -> 3017 bytes README.d/11-schedule-script.avif | Bin 4113 -> 2991 bytes README.d/12-setup-lease-script.avif | Bin 7642 -> 4230 bytes README.d/13-install-custom-script.avif | Bin 4589 -> 2879 bytes README.d/14-remove-script.avif | Bin 1093 -> 1854 bytes 14 files changed, 0 insertions(+), 0 deletions(-) diff --git a/README.d/01-download-certs.avif b/README.d/01-download-certs.avif index 0532ec3addc1b174c13c5edd6acc1294dbf36666..f2afeb545aa1e191f3e9382963bcdc172c40603e 100644 GIT binary patch delta 2533 zcmVVx^@fxj@{ETUPP`QrCg6)u3-=t(%-Q8j7*2ZI~%36X)iBbR8z$VDIPK*vbO z^x?IMK^v@alj9!mVu}?c6+Mc+Vu{}rAvhsDZ_k0ftIrid8S)SsjSUakEpzlRW^>C@@dZbY%E6<>9@0h15HL znGDstbi^J)dO*6pX#N^c3kg$&*X0ic(;O;0AA@yxlJC2kC1cu9exj6Jx$IIAfBqPH zy9jg~WdVYY^( zZF#P@*_44;awdAaA%kjY`(CEwDcq#|Q1!$7+t-MF$wc2gf;Xm1W0Pq zWHxCm@CatL|J^qYB*)sAlY71Zf0`p7D2`x*+FA@JzGnLC6n}$Krp8|Qo&hM_=%GKlivx1U#(%)O_w-3s|=fQhCqFs!Q+VG>null`-lFp9CaW~N!)0MXW*oQIyF zAXddw{VTJM6{>8?<=$LJcJuWxL+AB`!jKR2KzT%Js(e~Apyq>ze_7ZYYHZ#38w+{u z=(OsqgYx|#6FS)lJ%RzQ*v7=!AJ*X)uMGC*{jUNA+(uvUR}rtV30~i)0#D*B@}A`y zkyFRiR9Aw>tgDrML{qXVBh$h^>qbZO?|-8AexTWl6bXhxICnPG7)wtIBh8Q8D)&4s z+qeX-^~cG)U3fK(fB(qDi~o7NqlN<;ydaKn6`2MviU&lR4H|N-a^E)}z9URUYV$?D z&Gdkw5S@~R8IVLei)f0~)zq-jy?Yq@PGgaa>^-M;Z#bD7SWfK-HuO|Bx|H)RFjDun zE*%=Mx&euC`!)55Q>l71M(U9}5Q;0q58$|qI(`B5x{iQmJ&XD1OD(`BYJ`Pkir7ACNLLc%DE5Sj zIA>pYl7D3=f1Y?ZAvc8%J0o7Je&q)lhG^vLzD>sDs@~TiEv;YRBc=)^>OOJzb-a~4 zf{#hlH-V)H-8Y@odk6gZeGcm}-mdQp$4C}eQSXf^(8w!=PMD->6K$EK%Xf&u1Bl}} zM?0#n$bTxXNl3ww8|I8SC8o9r45n>ej?)jBAFq`Ce^~)ABBinoQA`+U;z_e;2Rg}B z%DB%m0^YYD|BCM8U%7NB#fsX(bm<*u)To`U|E*;S=*prm#gbX63O*i8(O|?c0{e$3+HF6^ZY3Vj3&|P; zGCDJqe+~)Em}x1{9I*+?UF472%#9yiJ3#%^8Z1f|M`1g1bKyhn_>jxQHM3T;TRkR2 zE5$Oge>@u$N>b4$)U&Y~3=k1WmR8b2lTk6o8jBEK?^{?Avf7xlHqIgRV>#=|`YfC4ct&MV2_fPKV z@f3NlHW>=5L1V6+681X%=*5XG7I|vN8j-Lx%SVF>s;%m#Y~As}Wi5o6yQqES`fz-7 z8b4m;(LzUj88bmL^ziZRDW)^5iMHOz#&-=63k;%)B<>TL^OZL2r<{YKT#i2XOmpeS ze-%^PNW#=|ETtX1;x;5#Z3*;s=)OGvoHW_?G$}8bQIeAa@oFv)n;p}Paf+P;>Kqr& ze}&CodX0aDy&{F&12w}`ou^}ERltLR9I<4FvS4!&(~0*8cMk;n875S7gWev!#_H}s zDHw~U2EwpeVyDD}evGnxC%7?RrN-NCf4Q`clDtGe;3bW)&m4E}hdy9VAfM@fyn3hR za{&VHYP1WPWIkVHi^NsCs)~(Tyg9v`Uc8Z$=HsTbezkM7A?4qGSY^7uT!atAQzE9q22VjzTF}61mL;7uRY&ii?;1_8xbKkU;3^rvDk`BD*Z2e^c;N zr=%QUEi!Q=GM3Y9WlGV?UHY}HA zr%Og9%T|I4Z_ahT{DaeK(lu!%vs}Q+r04g1#OtG}@fTSQm`a;=ST(7p z|F5!Nc?PM8>AfBQ@f8_{vM-*!iku1ZNIe-^LT3sA=QsxHZ<=+G%%MFOe<@E;cQ0*I zPa$Q)o$Y<}&r~MLQq;lwW@ePn^_H?{uQ5nM8K({xNPTTHUG$O7{CG>_toau)1TWwgsqTu!!g!+>MI-3b zQX)|l&DiY)nI{3nXc>YtPsBA9ru?;i|3kUR(?oHwOuAmeYXjSlC2O|5n delta 1634 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 EV9tqwM*si- literal 3605 zcmbVJc|4SD7k*}8j3xV$otYSln#C3=*_Dbiwn}4cgK02gXtSj(DO*WeY%!LU?1_jW zsmW4yg-A+fN}2=L0F8f3;Z`Lfct^*S_E+i00Bpkn^7o7*CtuZ$b*45uY`Ak6t)FxP79>14Y2<2 z44AfLP<(jc70OdWyni1~^ z)j^=Y`^1AB`iFNSzyLIXwQqHB^)(=7XJu;zUbHqS0IZGx=70b{KZ2i60D(XtkphCk zQX;}aLc;4MBt@l^YGrCiWmc}OEuM@tQ!8 zNTjfku$+j998OJ94fj9W>O(+W0MLejV$}htI0PmRS#1MUz&ZIKYxY|TPbdt|$Bz&| z3JQS*)ndGtfE|Q+G=iLX=QC=Yq$S^6Vchl)s5`s?c?i5@u!C#3kzpN zM8?LQi9dTTAu%mIBlFVbtSi}h`2~fyii(*fmG`QuYijH28(JT=wX-@pA9wZk^}l#I zFgP?kF*)^SdgkryyE*Qs&x>EaE-kNoU!_m!^PSmM+r|d-}DtiJ221<4}4jayt+ZU3ryZCh- zeA@gV`&*lshkx2w`$RygF=l?LA;M~t^xRlH_Ch3+p6gLwSf*8&k-dH zp|+-%Y=lYEM*A-RTKp6Ge)<}On80QIK^N|*1%c+n`O656A2Tqp90 zCA(_M@yL= zRi|`pK4u@ljW#;OT?{ye1{K+5$t=Ur3$Gh+Dpyo13>RX5evFtbUT&dYZWH}_ z$ijm~-u+BJWCzQ19|8~rTJjPxz&}P6fl)P7k?3D5N(yhX7pK6#l#;uie53M`v+nZdnz0IbO_1TlZWixpQOtKG^r}gpgw*)yl4C^Q=?kN ztv9ebz`fkK-7QTfqaEK!HF7!eQk$-xOtL`(qu0;oL|KO|z4AMAw8|yh6}FockZJs) z0@a$D!f(|w7@OKBby+{WGGN$EGwx>9v1{w#QCh~)KxLGy$;l62sGXiUoDV=5 zs$T&G2Z1;4t_rO(zG`B|c4stSwc03<(9-$aF5>l zyfftv%PWhz0sAO$#q3Bui=i|Ny^!RS<}&3WQIFLgv*^;r*=rE4BxC+G3{7*^r6UwbW;GR&?BPQJz z({<1A&y|b%2JYzXq^eH}=-djkuazWVfWVksWM{`uf)Xy0djM0`oB73uX}3f(XZD_u z)y)r>)Y|aC#;eB@hf|M;afIc-QZLjm3=~N}adw)pok=q1%6DwcdvIHEqnI4^R8w`= z3n?iFOW=RS>D3_#KoDuT;gg}hnAmd)Zct#i7j%qZ?m0f*bOC*NzeaUvaZd8Go{DZE zyJA=LoOQpZ@nyN0FZ!bR zm}y2td(r@sHw@Lwz{f$lJ&J=IwpQn{&S#U-D~nW;GohKWbW?%-CiMPl|};;<8U2 z4}DxXy8S2J1Tc;J`Zij6AWfzOm&>xh*x;GR-)DZ({+heZ@}gv(QpdF$YRk8)ux5|4 zw|pM_nOM2f9vrD<<}N#9v;9Xo8*#HI3@H}#KHuix0JVqcmaje#|LOjDVur`-tE^FG zEF>Y*C8cbp{wdx!Q%xgJjHa_GNFx&-w-GR~-`a4?tfBjbo{npGf>6RCR@8;-s_I@( z68x3zC`@wzQ{nf957VDbQ|=C_EJ}Yn!^f$Vr*1aTbV=W;jjnze;wvUnP^|m@tYF*%Y;eTv^u5}` zSqp7P$z!{^7d3%T>=pmg+SI3Awd%nN!3Y$z%a6a8%e1QKPSSCSsACR$pplF9cWz+a zi?@)QOHO+0loeVi-d^^c39CiLp8ip*-Nw{SO6)SP(=9Bpiz!gu-M%kMuYfF&^LCCa zb)*q9TbyyrG+qsz@cnW_;DxXi%p~`3!N=l)*kE~o4>QF z8s>knJZ(1HY!CJ!9~#fD_LuhdRjY6rbv@YnR#uSiKJwj&dmUJCWC}A*gnbS#5p2+& J?(Y4v{4c*$$>0D0 diff --git a/README.d/03-check-certs.avif b/README.d/03-check-certs.avif index 4717b3ea9cc9436ab94be0e471263f601fcf47c8..1f03ad2c01bc115ffec79e9fd3b60259cfcb4e13 100644 GIT binary patch delta 4948 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 SVi<(%h1X<{``P91&U}FF%!w`l literal 8047 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 TzM_&$pcb*RT)gFS!jJy}s&{h% diff --git a/README.d/04-import-scripts.avif b/README.d/04-import-scripts.avif index a5cfa7bf46733ae385e5cb9c8cc55364724c0b2d..27380eba1666633b70e4c4fd2746d27ad2f9205b 100644 GIT binary patch delta 4593 zcmVpb)cLEWzk$Fc2C;$KeW|756e-XNEWMOm?015^;C9-_15;CPDOk@Js zZY%XFc_7d0#pkGB6Em!S#>;m|3b9}mdAg4cOP>HeA)XXl$jERhRmJHCv`&GLhyDRc z$isLCyb+1WgV>1L20OD(5S!Hjkg?ER2k4e=3@irys}@2xm8=1#0}YcUO~ ze@KMo$HAU6(oB8d>4M*`#}7JT1V$WdPsh*q>m3&xIJd|*2D??U*YoDIK5#e5!$64_ zO1s7~?(HTROOA~k<37D)wro-cCgqS?=g5VBrYGY8N>tsX#FFoKW4wx}XvN8=lQ5%i z9|=0+N%`*_1`xFFV}p z@4CaiNz;TK+3G?eIFl(B0Lh{hz9hB{cR-{ zKYnpyHcIaipT>22&=Wz`0+WVE1C5&KL6yS#+H&43f&&cq8nTg&p0Wgq+cxLj({_qJ ztj&jwj9!w*oiCIAfN%&F0?WaQU5#>#YdHymm~-L((OZQ1ZqxLUhsn}$JnTzQ*CqR@)!kK2 z1~C+u_oas^`&X`Qr*L*lJJP3?pSydSOB4t>_@gJJ7Rl+XI${tKz{msU>5i6Z%RKDoA9PkbQEwW3Gs88fVH?C)2)BE*OPF+2(Sn1_v z*-4`FL|RJ@O7_Li_lrN^}gk^U>(5@CYqEbHONt#i8f5zRw(?U1 z0{*lZ<-?j$2mfXwe=^9ttW~qxmlQ7#KuryttGXR0IaZ_hgDF~a5jwLSET8KRCJgnv z8C(3Hv<9p50*x%yiWocC)IscBXQX(lJ5sn0hsl(m@2evac}|SRYCA(Rt3HjM+1H~a zmZnCV{?cA^lc1-RnG~7_qy9>f1zq8);jWnEGp`TFd>h2 zmY$I>_xEdM&R8a%{K2S7szP{$=>?ys8v2?b0Z+MgYUFhC#_-q3y*|DRi^MU0HQXzS zR+6UTOLC|ajwdHx{Xtbt`{Vn_(X2c?oTi4Aw^^^E&Bn(Co5-u4X-TzdTLOBa_2*E4 z9MFC{>pLv^e;FPUeWay>4m(IUXX|&~IdFBYF1qSB!&3cXki#TRphr9=FEC0v2u>_- z*<}08HM-6{ujUT@_1n3EBT)7lUrdP=SL@%R4tdqkv09)o+bf70;h;Py)J00b6mlZ_ z)##$5k!)t(x2nJpwVf8}oy4-%4cbnQEc2TZ5?|%Ic@0&Ja86 zYFf7NhRd-&6b11O%j|?pcY$(}S&Urm;Q?ieGy*bn`RJ9kydILG0ejCptbpbIzYP9B zhap-te=Y(#>*M*~fM*u(rb4^D-ci2--!0XY&5WI?8UpmmRu?`my-2Kt)8Vy$3mhpw z&#a8oJP#Q@4&!|1mMSzo*Z+3awle?;3HsXD7P=8Bmi+m+2cM|r-u-t=I&OPP53{&-z_*jco!uR{3O5m4 zMcKN{n@_NEkLE$FRAa(v3={Az4y;NmvUYp?Wt)1~-z8RXflf-s ze*#OuW_9NP&2J#?n`m?BpG$RH+y8n@io6!BWoH^t6YWovkG~yZ)M1AVHDuUgIamzy z#JhQ=zLDJ6z5;$huD^p|kJl>)d@=vM@L4G9=n{PH{iVs*L_qb~JYD?u)s-NCA7o>A zyrBJLSuX&6;hGuiRn?+3t*VX7aVn@A4+N7kw5`ZOygwE>pCf_?j zBv&w0(K)-S#&78;Y&%BsV2xx#z)iqy6qw$upo(PL*SsQVdg$b_Eq{Y_rJx@)@=LfwfP7Tm@;u=hCOe9Pd|=!V+qRUa zHW?2OT3%CjC=T4fi}N)dR!vl8{8^M#gFvmC}ias6hfA-O#!3PSv zA%4Wv>d*Kf63RhZkRFA-9pNr*bA+${h)quWeFm!TZqIrDbK4eWML&O+jdkM2nY)Qw zwdZ&V{5#FT3;k6q7WgxzA*3I^0%^Q%IzV`gRg>wah9BRpm3P1gRm)K%DCC~-bhuvc zH9-Mee0jE8qvbn#S9@9^f977X0q}zV+G8%j8GZpmi@Bp_eOa+=NFA!CS2Grh$Y7E6 z}jnNnGgYnNSOzU;gNmm_)?r0sfEP}0<^s9~?-1AuzfWGjkf4^3yyevj3DM(a& zn3Os(G*!p_x&;(3Eg!enYU=W`$KJ@z1?ifHglnf>-q4rBY1FnUanc3|R z)Qt~w$Bh%%xQeOfAG~rA9;Fa6I^v^Zqk?g50&l<^W=YCC2!4cjzUn2*p^K7oNtck6~tEmnH>v`3?#o9ubB-0MLS!WTFW(jm?FI=dSlbd&$g$o$l~n9!YYXGU@=$7rRgn_f)P?PRnnV~YTaTdQ^ors0 ziM{-4dONk>@r4#+h1-*=xy#d~s=w6{%G%I9W(m&f7$AirDK@2+^#ESbz#;_tw=XqS zjTjjg$XyfzYNW%XZik}Ede2k3 zvKaNKThDRd;AMC0==>#?Z$XH$GGBHc-iOcZf97rVi=0H>Z>%>X;g6|c@MN|3Tt~ zfBsuQkeD9Z?e&X1CAnh0P{)QZ^Kz5SuQ0To?bkvVlaVQh541r-0YLJB_V}&hC%_IqUxff5(8T zp}TGI1<^hu)pKn^|Fnc1igsDdE7sqX@A_f4BRe@wO2<1N80Hv((~|`xPmG-s%L>Wu@sl zi_8vg{ze2=8n4uV&pCYp{av`D<3>r-sGNDK?%e=z1~y9;2iM3!DA%fcV+`qEWqwRcbh%GPutvteNER+3ic#h9-{ zTMZubgsJN6-uaF{Ij^9HJ1jcSAl>ftPCO>L;h;mApN@DTD)6_x^D|;T>MQGC&C&S& z+#gVXBT`F}ZkWlD$9)NWfAR!}70DWUYG#`(yj0`KF=?y^=ep&uL52{7DB?d=+4L_Gipt9WHt%b zLXGfGLz~GQ5jC5G>WbLNh(073mfP&_r_thaa zNOPwAVHU-uTN-SpW$Ohs$9LSu)MU<5ov0857lA(S`0RA1prg-ZDmv@G5ESIbxC0sx;278hYNgK$)~_2GlBXM*YGqY}kYlixvrB{{q6S!ObNz4db8Z}LDoGBgG)+VIo0#V(fhHRy bgQ?9x$twZ`r0uOWEkTfn#C1|g{lA+$UIXsd delta 3713 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 delta 1566 zcmV+(2I2YC5{V9wcLD|Wk$Fc2Bme*aG?B$fe+B++WMOm?015^;C2~C2Br@p>OvnV> zgQg@`=cj$4_&lOk)2?Oce#zx_y_IB2YfF*m7V_GBm=2SGCTq+1CWD7r3N?w3G`qRa zu)%bFx?dv^V4n2#4lMttDXL6V%qdfd@7}!wb4*=P6A7ATUTBNoh;mvCJLRX-o)*)W#6vVyTkj~SYLiERO} zl#>Eqy*iTt}i*>nTF#G(Ro6j`m+%z~X#*cJyWI_SqT+J{S}RTEW+ zc3JB$*`GRg>wFHZ)=w9PkI z&Ul7^rxSYl*zCkRzwo|Qkg4G{e-Ljk@Hy!N*AM`9%072sM$ox~n_@}w9ni_NIgxE{ z#fOLtK?oW@wj+SZv$@aKWO8D6f9;2o=71fkV%TCFBNZ~R2;H4XZe-b#Soyv(w8ZOp zt!+Nr8P=<45Yd@x%$!Y?F%MUJNv1KWnCz2yl*yO?55eNvetTWXz%*rqP2xZ7Pb{}# z9moaZCu{3@p=**zp+Z8TnSb0|%;uo(B1HQi5LvhaWL7Te%->JD3c%($Dv2tD!K3ua zi#mKH`a)Kp*!B|kEam0Dx-X?!cspIZPPq&$Z+wP>r;qsSroJ{er_uLwvQz4iv#4X= zpf4-z@VImvW_*_cKOV7Kie^ed z3H|#%s^pQv)xjDnqg3+v)rA5J|Bgbo&I)YF2ASx@E=ZhNg?grY_2uohEcAO55EV8^ zM3Pw5v(f>Wx1I14f7Ny_1F!LejXTwnViwI{x3&BQyFN%DXF*DbPMwZ56KTYzeH&g_ zJ;Rbgs)wvMtMf*E_=B99#g&jJSAar;O@JetTeEcRS0gmBYPiNWV7Aa>Ko z7r@4??uxSUa%&5YdKvPy((?5hMi-0^4xEKb2CX$r8hHh}zi_k2Vxe|)o%g7K^SuEs4ey->!- z<>fpIk2Fn(VX{vAMK#^$^ubPYxS1R~y<$^8clttG)|^F|ld*~_9JE|`Z2SK?I#{C? zYt8Ybnlo$`f3_)CaGYfjr3Cng?92(LHJYvpt&PsGXyqB04|!mN9{&&Ipwbc0cJ%ag z9gpvqW$dIBHOG5O5Jcm-s1oxZh`t&5>)KWkx<}2EgbCYThmX0~s`5aX-gsG=+Ak6_ z!tFr@0)pYwDbXbCK$0_`HNo`$F}d}4+F%wGyzvu}e}iH}zexU5her%Z96-W_dEr7D zy##Wio**iZNxGXUoYZ`3XN?kIE$zVjzLEz%u??D%s1ULPy8h_xe@Y%s_`{xh9|WBU zjCKY5y;(gX_t;j)=<$Nw1ISgy@2#CRu%B)sf7v|^uGE6c6=~uM**ybIISatV2(oWu QFMw%G2#188z*%8-C@)+FVE_OC diff --git a/README.d/06-schedule-update.avif b/README.d/06-schedule-update.avif index 7c96f3aa6f71be5f821c1eb1b78ef947e447a330..158e13f53d0d52ead604cd8a4e2bcf62baa190f3 100644 GIT binary patch delta 2927 zcmV-#3y}1f5xE$UBMs|qWprTx00000001G8FdUInCFOO8cbxoVWjCK(0 z{g7P^@ez`W-X$9EtvE8~PONcjF%7DJNP4;AUN@;?Onu+!pJ8xT79d3~f!179h?Q|t zBxRQ0u7b%VAL0-${!X}~}HHna=)w@_jn7Mvu)3<+y0L5v@;d5ABvwl+*MmGbXI zg;{ucUw5`6?=3LX;5#odIaQ@F)Azl9M><6FI_8;TR{|_x4&l&-lTZvi@kD+z`(U z=MQ~JpBSfAm;oLel>dnoGI@rsU{Fxp&mV}5H9GT*QH=wyMK%5)?>eGgm4 zXr#4OS;Oda0LHolE?m1U!uB)dqbs&DPa<{$EO+lE<$P)&MWJ-vCaFz-{e{_-h}8H$ z35{A*9uo7}`{>|KGc9C>5gKF}GA<)AT8xBBK@)>uv{> zhHpO$@Bm&$Ar^$@zZS^+aat8ON?jkSXC3t$H9~ z%XX7*w^*6G-x{3SpjKOdq;GS-y3e^|=qIMf@drX(tBQ+*2OHHU8Pg7U>#t|IVuB{w zV9Re%O&V2zNZpfl^Q^?_Asn_VCUM||M&^lKcdZ3T6J!$G*BCYJxJ;pKUMEc?9w0Kp zrv^T-t@KxgHDoepbG9-$H_a(A8IUmejjSlU9#JHE;ab@7-fII}l zgW5f9N#$XszZf7yb&>2sdIk)!3P@5`XAcU;qY-2P2bxN6oG4H4R6F#^BUXoIC|-f2 z9PG=zK+t3V+$UT0CoZ&>MV&j)eOKe~TX#^+c_c1+$d=tIFie9I3v$>zt5v_7l_x-- zM?Bynx%rEUo}4Ow0$=MZ-pqPt?m-+Wq)%1yFL%I`Ep*E;T?r-L{Skntr><;6O3-@s zNOE#1avRP~ZUNw%wL|GZSQH_A2rmOQNKWox88afJ9-2DZ|oaiQs)w+3k?3vYntss!2-N0`_3Bj`WTFSi( zw^kZ@y1+)FYU|p~4X9LMi?th&KTmIFUh?o5#XOcWf&53C+o23QOxV%}K zts$xV->l2~bgo+R;jF@#D8DeGvW%GrTGkE93CftTbERHfD^1=dc_w^fX;3!D%h3I~ zw9a#xFcL$5YWmPnJT?8yNb8I6uL+;9NlW#mZdqN`4Zl|*i9`dB^4rAe%&qW?q7mri zY|bp!UT_AKd=%pn+9fzv=^8Fs<}+hJ)sC-qBK;txq2aaN3RvHTTZ?8nuTM1b*Z6#u zO}yt!#_|leMv(mBVmp4kn35Gc7t9!Tnt*8dM!JK4tAPlSBqu}n?eHH90b7{?81}uc z#bVUwc7k9FMSRG}r&)44hmvm7%`!B0(=0N=@qECA;6Ozh)M^Mg1wXxhQcjQi(L%_h zlR5rv3`mw@=Ku8Pq`t_N73ckOj|BloNwy|WuCc^U*qpE8J@`?*!^YB<#&xP6Ax+)r zm!(>N>exyc(!U@@fmyhEXoksi=I`;9RT36;93ck1CtUH=T13xgaOfCJ=svpr32@#w z6LEG)}ZVT5DoG2A6VzYfY(iB zdU2Ycv^z+!uf`($fQn0XKW~qu1)#DR48v8BkJ3J5{75`qOBoe8Aja8@j0?$gGyMjC z;*WtdPaSPOmOY?gox1{`8NFB2f7xjy_1|YRXqKgac|+l%XT1)qCX$MmXI3~FSCmo%&@!h1KRMJ@ zjJdD>=!()1RYGzTzUMYT4^a2>5@-hJlv?-ewb13FgPi7B3+0BkpwZAT`EtRs+Z;CH zhElH2IbbHU{^r45&!a(n;H0J@dSnn=&jD4|xmkPDJ zFiACXku+2^f*hPj+QoT4IF9urGyE?LD?!VIh#l-WirFzuww-1eu3(1cq(n8Ffmy;1RF@C{5Wx2cM;@_I1WHq zr(`uG7Sn04kH}ZSw#lYaJtrQ6lzb7DIelA4-Ah(6-petcnTefS8 zclE{BK@>d?^}?@0M=VE*ga$`l(ox0o9eVrzrdsHwJ3C?YL1vw%8uw>^C)k30bz+Le z_8Qs^Usf%aWtdA+)v3^Yys^@RO2nm_dTFI$<;QO4Js~(g$qnwro+K5)rt9OE92)|(C3HCTd zHMI}6;gKl*PNvzjcC_540(AYPz>*b1=x9KaWW@A5E8QjWDeMra_drB?*eeRmW>*=C zExm=Ovt`a&|CJIEtfsxqBj}F9o-WsHzNsLmqljeDs4yq8U*Fw-!l`@&90b3(aQ-K_ zb_i~}bx8y2>YLd2wK~{P-&`y~qU99aXQ26<0`cL{08Nx?%B0RmmZUERec_bp0t4P$ zeO_oqP)NYMw*qm|pDZo7rJ*PtvUd{&GOKa_m#H{#Fe<`M>U6}G>9fuAjv7+BthHD|J93kJSPFD)OArf}|?8*imr_$(^@(`{r6$4uG zw`=(d`1VGTgkX>FHkU#-kk`Y)Yny2ru&??Tlkn5g^JH3)pESr-m0v6GyAeZeeSGA#8V-+7$i%$1KWNWF%Ch@LGf+kuk%UXbI`%2t~ctG(u}L*)ZU-~%`fnELaZ922<$P(0fF!h Z1liSMOG(k=UcPsBwJVuijv$~is6Ydpm978) delta 1992 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 W`PLjlrK=j-)L(Alaq5asm(4Jzn09sm diff --git a/README.d/08-apply-configuration.avif b/README.d/08-apply-configuration.avif index b66af1a7ad18f9ee6b4958b1de8c5db463d58382..ab22cae3e05eab8ee3b2b878a726890b1fbb2ee9 100644 GIT binary patch delta 1686 zcmV;H25I?)6S5AFA`SrSZDn*}000000000XkuV%P000004sdC7Z2$lO000310016o zY;R)#0000)000310RR910RR926951P9{>OVC~0YKW&i*H0004zoE?$u90e!<002gl z4FO1h1}AM~VRRAz3I;eOvUsc#GLj5LWB_4?7*N=CsI&?Rm<%8Xlx9B z@pIqbmwkpM{6Dq$b28TWdVG-gpQ2rwV1ZFz_@8{Lh|_PmKn5ncZ(qfKucTxVEsIGE z#wKHxy~Jdi1a}{85UgMKPj@!y`7)wG5=Wi-%K43mtD?feU~Ir zx9vcq$4F!$uU4gi9?Z*3>tydo@iulCjf0F=-(Y%OUv+3QmWDk(kP6*Z*=hWLn!gjr zcN_UI3W%hB)m;_E0MYC^RqD+s)QT;}K=Ahp{%@P-2MW7zIUPV93_^`|f4-ON$`_2m z3J^(pA}*a&Ruze%G5N`M2+q;17bZlxrx3e)M&F<9AuvHQyXVB!EMq+dIeg%RFmM@O zJLl}L*{p|Mlztn$olO`{+#9feFh&85<${X_J{?hDllh52QlcKIQEO!b(J;|FqTKj8 z2`G6$)zTo%`vA0_L$cY_wZRb@oT6S|Q7H^oSYIC6)y9*|h7xDf(AJYaYLemqlSXk# z@DrU9Q=^W{ux?C^P4ObW0g#0qP%{ z{-$nGb)M=|h&phW$tXm5*#Z?8$Fhf^B9TbBmRLa~7xON!lPYCp(0mlKj6o01{v$>& zn%CVwWIQm#giJfh``Je2=L#QH*_oaXDRZ&kjWr97)5v zSyz2Z)g&}b#5WJzOB-5$4bl|{&-X_9Z{9rh%wB6dY#J_1Kaw7+Pfe8~Cso6W7TFbJ zClxa4p6F^AyaY>p*X{$bQ?B;EaPu}eZ(%Qj(x_EW{xjgue&wl^1MWD8R z^jo_z4;ZRMCeQe5c$HQG?bVmvR~ye8Zepuaax%&^Bd*fp(PLqMp~BPYI15pO;2L>_ z@CF_ssW@DwYHZx$KU}D(_Q;o2!TElW37u?&9>DJt(MrKWe%QmlnZSx|+3vF`qMNX)Z*k?1xBM0$8f{bE0(+QYrbmoPr z8+_hQnvArRkImCsih2C7=0HJ7-(`uoP~q*lj2=o)4|PMtx+{P6Z)l%Xb2YwSU7*x~ z^OGM-zHhQQ2kPx37uMd%?R;9$;B7t%j04s}8TO*kkxwg9<4fDi3Y4UkftB}SFeXK@ ziTdo{vn7y!FEY-tbn>#JB1mZFI$H$WR=vypuKInDYC{x(!P`S|hyUQoJsPF`8wq7x zmsltw1Gb@$7#=6sFGhh4+s3b2{3IyR_X6UtRp?^gv=cgw8t|dg0+}Ypr3oBO=TbLQ z{C6=wC$cEe8QcvzkB;C+?Aoy*2d(dZeDGEDQSvDtpL_4&Iq&(N-#MJ$`Mf*;0Q7iK zaRPP>p9dg=VC0TA#xQQtKjL-+yT$EXVU zQK9l00(zSAL&7<5<^+HOfKMRDT!oTeD3@o5EdZdsAkE_Q!{nRDD`Y6)!Y%MO*fAD# z$MBGF`2wWBD^S@vmd}G7ZY1-C+^+)wP~`+ha^zRSmj?3%LID)r`2tQj6p8#u0T+sp zAq}7h>Tu-Z27Bkb6W=BG0-ZISg>SkA+5$GL{3Gj?y#Nc=xVX7M7s(d|K-Lc&0TzQ%#GtW?ii$WK zRtZm3!7D4{N$MJEL@HTVhf1bU^bE|G>d{OWQz%B(#-9y@lYM02xxVEIt!!W$yTIA5E+RX1=z(7<#n1~kKY?u1_+aI zN?HpSk;sNimKqr^WBzDmZDVWa=;Z9;y4r2c2JekNzMD4taRRx#9YOry$f)R;U9oYy zlT-E|IGFltTISKL?3`oAb5EQ-S9t!y#Y>lqu3fJX->AG?BBQu5SIc9g+wXBTnL3-FgO8) z)~93CS)PjQ2n`w|5leK)C@8PPEw=P}uNfeGtfXbY95$SS(d1<1B^hgquE!lbox5ptMRFZ!G}%}G*73boH^pk7bGnkV?@pG-b@)k4xKbJ0XWyX{=3)@P4HoBZsp_YX+Ih5fZ#RdLN*Po2un zcBZ^uS*r8yU4kTRYcSc)J$FN7Ea4Up~H(PO6Qg> z?|WuWtWvwy+BlWV5NU2->DWx7-VO|?3O1pil=>Yz_;dZ!J`K11w2f)QUG#xEQh+PP zTL${c_zvnFDO1pwy5gFfVRgfjk#Ui!3qaoSeDu`P8TfViwUtV&u=hi2s>`0W4>VKV z-lP>f6M^S{c7*JiI#9yd7z%BAe{y6MGFs41EuaB!apw8{B|PT*M4U~c>TX_$(z8EO z&zkHd`uHw8y5?R9mZaPx6x`dp>8rIK^NzC3|NjZLp=+>x~V@*hwCA z=VcG5I+^u`ca?cw^0K>Qnx8tbbBKLl;LD8yR!0HnVRY_}%!~wO%}N~eo^;A)b&Jw; zvIF7w!zLd}GiD^~dP{CxuyUcK3uy<~hr?PO`@;M&y!3#wz|S$2=-U&Otb*9Q_nl7( zM#T21DCadyIc>iacJ^&~Q8^^7Y7roWWY1s0F_>m9|g$(=x; z(Vy#dPmqri+xJb<>l5;WE|M!2pHt(F;oCM(3h?|yVMXJKWS*AGyq#5+rS66Y1j)SD z3p>BHhTF=}Y44Z}@M_BL%BpB>u8)@eBdOQG>fJ|gsTwIYU0%L!d@eWs<=QtbQPsYe z?qq0vyzQM?^1899#B9nndt$FgkH|rK(X94lM3Q=b<$z_i>koMyA8GN;#qIeax#Hjk zNymt;y$RR6g1+}RTDtT3ZQV0(XSNC-3C3P)mgZ!|oSYK94p33N^y^UDE^(ypp#7{x z4*M9v{g*8so26kI>UqU)({48oS8hz&(%}>;b-@_harKTIBTz`r^MuD?)A`Ddf4b~w2$=eJh6X~ znzKVqL^MiNcKOyakD5dEddYv5n0TFZ*Ge5+;o;xK>Zl$oToRZ=y?~MJNlBBo1%Y?1 zRVznAO1(aZ5x2`+ds)8hV&hP!qi^rly0Z*j-5zO+kIs=}7HVr5c@+Kf%6vZ8ri!%Q zT#|<+B@Go+=bK-};LE4ZS(~{M&)+xb@-@`6x4V|E&YqTh+5Ks}`=^=0!<(Y`GfuJ5 YsSidUC(c4dfoaqY>zTcCgQ7Ek0U)B8WdHyG diff --git a/README.d/09-update-scripts.avif b/README.d/09-update-scripts.avif index a31d60b3a0066d1ee68abbf79fd48aa6d77ffdd0..e713ac2c48e8902e88b1309c660128a9d47032f5 100644 GIT binary patch delta 2412 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 delta 1694 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 V659%C*l99!+jD6bz1FIc{x6~x&wc;^ diff --git a/README.d/12-setup-lease-script.avif b/README.d/12-setup-lease-script.avif index fb4024e2a730947774c6f165c7c5e3b191a4804c..2a8bcb24b00b57757e0ce3e70169bb29a9fef0a3 100644 GIT binary patch delta 4093 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 literal 7642 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 literal 4589 zcmbVJXIN8fv)u_Lgx)*Sf}k|PP!;LDh$u}^q!S^K5JV6W1O-Jv=}4E}1*F44dQ*z@ zVyH@_2%$^A3Fmy@z0dvi-8=i4J!@voo_E%}0RZ50^72L5dLx_wf)OJU;UtAb*g6@i zN~r<>=ql3D%a+IyOvJ^(>v04RjL*S|0^x*_cTHHH?2@Isz*Ai`S=;pSma%rpQ1 z3=k^>r#t}way%hF&p=iH0L>&|RRqHQe3NsAlaM$PTZmuSdS8)J_i*z#Ux4G^41w14 zK{yee*vN_Sbo_e&0MObyVC>J2Bp&(@f$~HVqCNs;??H&n2n@=R5D7*CBfRbqoF0Yn zL7Z18C@2V#+SXf2{W%}80x;QoxOuwUyZI27p#jJP2_-fJ3TaE^2nGT`q#$rGDPc$w z(!uupYIJok1H>_eRR|6RP61M)l5;1t{}T!MKbVuifk7ky2_Xg&oP>ah{p3XdADHDI zOzZ=J|DF>d>T==HR8wFn2DFA4x>(||faK~4@KC!>HsAW$d; zB{ee*H5C;#2O|?5GY=>41s+arZa$cVFrR>!AUC&&+$FIqQgAq&S6D$wUi!MkRk$>9 z2nY&=Qd3d0)6lR>^Kg+FO3rl479xOVmVO@ffkIHNyoJT& z8y>-hNhObj;`MAJEmsl7M6GI9UPsUT@Vj3 zUXQ#V`}jTye(^FS^wsOI=$P2J_=LpwNts#MIk|cH1%(x#Dyyn%YU}D-+uA!iySjUN zhlWQ+$Hpfnr{)(HfBam+{aRkx+}hsR-P`|ja7ffe)cG&_TiO58#X!&nCM6{yg%EXt zz>kT-8A!?arN|joZ$WI)Oaju+DVWuwK9sjW1+SXmS?oN&QL@6|^Fo_MY3IuRGhsph zFJ=E0_TRdu0BRBt;pdSs0Ls8tUKm>>$84KJ5wq4OHg*f($)$I1_OIo5D#^FA zI#W?a^=Aib#^p-KHsEUyd(AxzbCkNEbyJ~VLFsZGw)g>l({rieXwt@HxM{dxK>E)^ z7k-AUwea7NcX{r#&@UoWjlt>artz(h>W0pM1x@7y1_6gHEo%-7VDi_KQmZuiU!ose zu`DIF4x5fEzr|W_gi|r`i+OL&I0xkA8tT^p)gvD8Gl2D`)N^$*5v`46KKD6iF?5%) zk*EyUwImVPbX`o|fMdqjkNK8&?-$)TDXYX3f+?nqbOx;Hx{_R1o^d11ghREZEaMZt zQm_54iYAx* zT>Lb2+xU*$`dGGse*RAs*O%Y@sJ}vOIzOhq_c!C2o#|_^Vf1mI!7JbomFf%gBNnx; z`!+^DNm0biIx7|GR(&SB)EK5rr?)KD5v|J4Dgl))I=w#d8NE4+IRFR8-Zh|NTXM~QVri|8*t0{|V=@A#cy`Jay!=9}9&y>&O zM#M@>ysol-DOc+K^b=-yu+_?)&%TIX?&BYARAMeyst)T3Yr)Y&l}Pa<7ohA!6h>ODXi} zNR7YYJQ-Q<=dTmVrueT(vCI&Q7Oja%PmXro>;ibg#rW;8+FmwJ1gfaV*1rhFi5K9SpcSmcyCw z;%RN0i=5SSvI*-l?CH#tT>#+6YjfKIZVWLz$(z5ae5%6a ztD($`@NbT82zXP5-R;g*E%0$y;$8DxzN)W4dXiB~(~xq3PKDy&2|5WUl0jQPYlhE` zkm(zXG;@6LO@Jvl2-ToU6^`uJwjW8#eH1}|Q0#Tb$;*o>wXm_f_d7i%h86W}rHq>s z=aNC2D{j?Vu7=L&b(ZQ)PBQ70<2Od#G!<4j_F2e8-fYDgJK4~6iyddO(6l9N%b|3! z;r8KA#^p2t56yu2Z;#}XvvkHLZ_`^&DA(FIK=9z=$(1w?HaYZnmuV#I1qJ@AwPJw+ ztXxn$@&$Ta=IbpL9vds2VnTkFx?BiEP1a6i#krKY3egPHCo zwFAPDDywOt!I_1d)twSDzNOhE%Vz-Tj^By7`S3b_1*cP#P`h!VKA#qH?x(f_#Qi%- z+UicB;N7tsqpl1ULyv7b2RqYl#~H((HP6{5Mujhi@5r>>vdj@(`J!k3_{oK!L8<|2 z{e|uaWf7H~N3iN3I&80HtfSs%07_2l+vPT{ICDAao*GwZS$QPuZ$E^%($aqJdK&o!s6=q-LK4AuZ#w<)XG?<3yi(iksS0t$V zS0FZh0rq5X9kGAmN?p>B3zPoP1L-s1i%v|mtCPqrMt~A3FI1uE#>byABt1uC-~h(L)$L|x zn%=?^ZeOhO$}fs8kdVZ!Ey2{(%HLmv>-Ave$!Vn62H#iG+}rAk@{McB)iB>eU}t1* z+*Kao4QTXmNnmua0e1)Erv|iC#(Nvn?XqPy9xW+qQ2Bj@A4uZ z{xecu$yq93__pNKWWw<%*QYJ^@LIR0xtc6B!XQ9$;;f@P&!UMDMd9QYKR#lFIE!0< z>w@!|GPlK_b@WF=VHNpioRavna#JlY)o_S4&#%$pPAWMbL7?|h`pq?W|GBdHpH%i? zKRq7jTj+Ev6x!+O=BTSY*8lMxmj77OGmQ8&lcF zw38yijuDr9Jijpa>U@yxLUk;Q1W_#QSE_g}*yQq#-`H+h4kxX4KJERQZ29VUV}$3+ zT{NS2b;5mitXY!bi*Q~3u{NG8oh4RjE)Sd7+r z@#wRn3nj$L(1R)ZZBd%GCsoa+^!;NspQ$`G42vMTvA{j=UIF7!N34!f4D}!NX3dk= zhx!IRj%bso2R^yCRogX#}exTT$B1Sp-x5&EIA_rcTt3g_SYAMa-h zXl_>@KW!%yIZ5=DRob^MySA=)>D94g<3L<}dv}w(|GwScDW`*ckf@~sGFBsFWG|ti z-hb~T&`Ma7zef?Kz5pHyzuv3<2HQT3bG@0$ZZXoM-M5dETu)HuTtc7p!DE(SXNOC( zlp;K}a(LYHRI92FS|OERSp16yA}VY| z+6|>c73@W=`CnFYk3E~1&&6fltdn`>XN0k^+rKQ7Z2pv_k@0D4drme`7Roi?^5Sg1rY`M~sA-Ni>ITZdsi@4j>Ex!YXVUS^t0d?w<; zKIFo+Yh2PL+@Dlro=l^BRP);{q&C~SrU|l(nR-^g>IE~sYAxEQeW9ql*{YYDxPDO9*tBzyzQ6$&s{>&53;Nw{T*eIzpqzywocZ%af}Z~tS?783#heVdoC_hOR8h)v_xYBM!jGZ;U7JqY4<*kar225 zzfN(SdSxf=fP~Kj9;Jy{Bl=qYm2U@H(423LfdRp}y>KcAGQpDJkXD&su22jWXZ1at zaTnbq$r5wJykQPBYoDb*B?)1LbCRfeUCp`+#CW4S}Lx{dNN%R+DR*KHHqu(NsM?^dEmNgX>C*c^6nu%)^F=* z=Mr)>?-ABntfwoq>0N-Yv7^(pxQm)kN#|lm2CM;}rAw){U;ztxYrqd#x;EisVQemT wpuiKfKv>d+invLs_GT&7Qn~jxb9$CF3 zK?*8GOY9^=JXP6>Af>lRY451YmajoQCe6)~d85QW$%M*M#o&Q%8P z{e>ZLjrHCXxqTKt4MNG+t~1{=iso=sp?uhAYz%+#bKl>W zeTF6cKehOCGS>Kde318_qFtI`fl*)hpM0u_({H&z1}3?0U&Vi~q+}5-i%AUSCt#sC zVktI_j7B!BD*vy|{nYqv82T~+Nfh@M>1RG}m*Q%JcK^H}w!Ap^_^D}&4F>?2NsKba zCS#So#AKQTcOPxzs*-Q*ZV!J*hx^ULAvnaY5MYF+)jOFoaT6pZX0=b+s+H~x-GeY_ zjUFEeU73AnK9vlF-Wnp)t^Kd*jTbUMDYDJIouBD3|5*3mOdSuGUCw2Fmn2cQ?Lec) zNMs?eR;7R*%*#ycWba4uHg*_|gN#?-V0v9&b!ak{hCM!z3f)!NY5aehzZ1uI8~HE_ zh@^hiT@}Ru(d;@^>dh$BiY>-K@b?P-Z=2@_3cGMQ9Y7rnLXCERzL)FD7mUFQ5J`F> zE}c|X6^WrS`N?(&&e5$GCPcZX5W9Ou-=FOvFhMfA=fu@4V?6~qeBgvIa2Z}Z=j^Z9 ztcP8cejB`zXQfvVUotKADt2ld z(X&l0;H^x&p#V|Q^TkBo@J$2%6{!~!sUhYcLvql~0!eEwR!e`5hX_u!`eQ1^d6Za6 zC)n}5dZ40uuaYFma;{gCA@BD+Y~4>=>Bi!&n+@5(R_9^cKuf>8o{r1t3%~tr&bFV$ z#9ZAfN=uqK6U2pIXdK+yP0gSDFv7%LdVj?WU3OEY6D7fmtWfB2uOb+^OlB<>?u=F%#9$zGnK5K?hpqGt{hOd$g3GRsh3wE_!>5(q@_z` zFTqwU%$ciZa}5uqxc|RoW6xA|5K|1NIR)7=4$p-47l6ed`5#h-9{ z(Op&CZ3=(B>|=sr*7uZBy)XT)P~h5{NfbvZV|3n?%JK2RVWUyjD#8{Svi&Le#fQ@; zoqwrD+BA|f+Y{^4??PN5co*4tBy-0qR?Brth7bFiubk)oNfNykJ1O24>-xEYmgc5W znFuKb&s^71I{L00b9Fqnzp&j<7wNal0$8-0BOHIQ=0HJ7-(`uoP~q*Xgm@zNMr*j5 z3>k~dOAFlm^EJL-U7*x~^OGMhrscPTXV`+1NHr zQaHk{SHEMjwEyrf1RQZO0Rt#&D&Fvcw;2Wdx|4gA4{UF4P|(A4Oe1@@6P+ z%x`}c6e4%4NSML@^&yHzqE@5lEdAUTP5aZG$KZ*kaOG4pwxLdfvUrX{Jn@!#%I&rh z_*YGgNDB7=$MP8Q^(kg5WL@EXY=fC@J!acBqQTw^ccn?@rWce7?XSgRU$j2;@k~jMlt~d0ATB55_C*>4JAtQB@!Sagn^rv}AoacK9taaW#7QZTTx+s{pQz1X00KW^ nZlUBO(mpI+l|vk;6sd5TzLR%_#3eJE?OJR!%^dx_XT;yP{Z1B+ delta 875 zcmV-x1C;!}4#fzNBMtIxWprTx00000001bFFdPSLX<}h^X=ag3C+=V7)H2&v#IDrm&W^4-C z^@yS?d>UOYEW~3is0zSkEO@i0q)InyO9lE}&Bb39*pz%w;~_J_Wgk|qzS*ss(6T%_x!Y65<6 z$DeXCk%bx zV(w6^hp@E$1>S7_Z0 zGh>gQJ!@nmV}=D5s>9L)j#DZplE=^6ifr$<1`bu~@KvZl7( z*Sf|W#lS{3Ld=orC;S8>Yl?oqbVO4>aL8*Ko)}V3rE5QHgIq{XnPnxrKPT_gdLLBG z^u&Rw;6mYRXnv&j?5H(p3nDnGQ21wBqb*8k$~=1d-agHmY}*H1e|+(#Z4Uh0$l2+; zWk@d{5Ci;7jq^uAJ`%$O{r%|)wW5D1DYr|g-N`V84?G{e)EAsBpzBHO28tg%k6EW% z!){#i3HFMt%3&U-@{V6wC?y>)t6(ZBDh+5S_`^;flJ`18!E$R7BP< z|?{58(UPgpd0flm^O{C5|GfRK?W Bp%efB From e6faf346c20b63ba1c0a137055e335e2e1761679 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 14:58:39 +0100 Subject: [PATCH 119/152] doc/accesslist-duplicates: update screenshot, with terminal window --- doc/accesslist-duplicates.d/01-example.avif | Bin 5208 -> 3634 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/accesslist-duplicates.d/01-example.avif b/doc/accesslist-duplicates.d/01-example.avif index 11b3fc5f21ace72fe8f36ff62b9439e90cd39a90..d290a77133ff12670c3ea5976b4c613bbc443831 100644 GIT binary patch delta 3436 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 OPfh7{|WCGnZLt@_EzNFZoAL8!h0nhP* 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 From 6718b9078042fc8bd5a5b910f187966b96dd3c6f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 15:08:33 +0100 Subject: [PATCH 120/152] doc/mod/notification-telegram: update screenshot, with terminal window --- .../{newbot.avif => 01-newbot.avif} | Bin .../notification-telegram.d/02-getchatid.avif | Bin 0 -> 2841 bytes .../{setuserpic.avif => 03-setuserpic.avif} | Bin doc/mod/notification-telegram.d/getchatid.avif | Bin 3896 -> 0 bytes doc/mod/notification-telegram.md | 6 +++--- 5 files changed, 3 insertions(+), 3 deletions(-) rename doc/mod/notification-telegram.d/{newbot.avif => 01-newbot.avif} (100%) create mode 100644 doc/mod/notification-telegram.d/02-getchatid.avif rename doc/mod/notification-telegram.d/{setuserpic.avif => 03-setuserpic.avif} (100%) delete mode 100644 doc/mod/notification-telegram.d/getchatid.avif diff --git a/doc/mod/notification-telegram.d/newbot.avif b/doc/mod/notification-telegram.d/01-newbot.avif similarity index 100% rename from doc/mod/notification-telegram.d/newbot.avif rename to doc/mod/notification-telegram.d/01-newbot.avif diff --git a/doc/mod/notification-telegram.d/02-getchatid.avif b/doc/mod/notification-telegram.d/02-getchatid.avif new file mode 100644 index 0000000000000000000000000000000000000000..0112449cffcf63e4f89bc46ad215560ff5a74cf2 GIT binary patch literal 2841 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 Y9icV9{#F+HI+QLMdDl}aIO9I}f1!IY&;S4c literal 0 HcmV?d00001 diff --git a/doc/mod/notification-telegram.d/setuserpic.avif b/doc/mod/notification-telegram.d/03-setuserpic.avif similarity index 100% rename from doc/mod/notification-telegram.d/setuserpic.avif rename to doc/mod/notification-telegram.d/03-setuserpic.avif diff --git a/doc/mod/notification-telegram.d/getchatid.avif b/doc/mod/notification-telegram.d/getchatid.avif deleted file mode 100644 index 779296915de91a9b21e2f05685e34a1539d9c73e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3896 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 Date: Thu, 20 Nov 2025 15:11:43 +0100 Subject: [PATCH 121/152] doc/mod/ipcalc: update screenshots, with terminal window --- doc/mod/ipcalc.d/01-ipcalc.avif | Bin 0 -> 2515 bytes doc/mod/ipcalc.d/02-ipcalcreturn.avif | Bin 0 -> 2205 bytes doc/mod/ipcalc.d/ipcalc.avif | Bin 1729 -> 0 bytes doc/mod/ipcalc.d/ipcalcreturn.avif | Bin 1247 -> 0 bytes doc/mod/ipcalc.md | 4 ++-- 5 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 doc/mod/ipcalc.d/01-ipcalc.avif create mode 100644 doc/mod/ipcalc.d/02-ipcalcreturn.avif delete mode 100644 doc/mod/ipcalc.d/ipcalc.avif delete mode 100644 doc/mod/ipcalc.d/ipcalcreturn.avif diff --git a/doc/mod/ipcalc.d/01-ipcalc.avif b/doc/mod/ipcalc.d/01-ipcalc.avif new file mode 100644 index 0000000000000000000000000000000000000000..aaad6167a0528cf308337f0dee87c076c1ae50b8 GIT binary patch literal 2515 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 MeH(b0sT?@*Ux_{N6#xJL literal 0 HcmV?d00001 diff --git a/doc/mod/ipcalc.d/ipcalc.avif b/doc/mod/ipcalc.d/ipcalc.avif deleted file mode 100644 index fe726e8c323ea28cda327d70c16ad80fbfcdac4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1729 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 k<~uq}Z88kVkt#Vo>;1CtQ!d"broadcast"); -![IPCalcReturn](ipcalc.d/ipcalcreturn.avif) +![IPCalcReturn](ipcalc.d/02-ipcalcreturn.avif) --- [âŦ…ī¸ Go back to main README](../../README.md) From 77dc0565a9a93004f28647b3315eba5ae92625ce Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 15:17:54 +0100 Subject: [PATCH 122/152] doc/mod/inspectvar: update screenshot, with terminal window --- doc/mod/inspectvar.d/01-inspectvar.avif | Bin 0 -> 4232 bytes doc/mod/inspectvar.d/inspectvar.avif | Bin 2838 -> 0 bytes doc/mod/inspectvar.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 doc/mod/inspectvar.d/01-inspectvar.avif delete mode 100644 doc/mod/inspectvar.d/inspectvar.avif diff --git a/doc/mod/inspectvar.d/01-inspectvar.avif b/doc/mod/inspectvar.d/01-inspectvar.avif new file mode 100644 index 0000000000000000000000000000000000000000..1be1358008388ec650c82e8974859237a0a5846f GIT binary patch literal 4232 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 literal 0 HcmV?d00001 diff --git a/doc/mod/inspectvar.d/inspectvar.avif b/doc/mod/inspectvar.d/inspectvar.avif deleted file mode 100644 index f1da1d4d1bd2685dd596c851d4100623463bd455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2838 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 Wpi-Ml?@^$dcvS}^Lq&v)tok3qyD;GZ diff --git a/doc/mod/inspectvar.md b/doc/mod/inspectvar.md index 7daba15..e5c5629 100644 --- a/doc/mod/inspectvar.md +++ b/doc/mod/inspectvar.md @@ -33,7 +33,7 @@ Call the function `$InspectVar` with a variable as parameter: $InspectVar $ModeButton; -![InspectVar](inspectvar.d/inspectvar.avif) +![InspectVar](inspectvar.d/01-inspectvar.avif) --- [âŦ…ī¸ Go back to main README](../../README.md) From 2f4e83990a4133607a80ae64cbc1b6deaf975a2a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 15:20:44 +0100 Subject: [PATCH 123/152] doc/mod/scriptrunonce: update screenshot, with terminal window --- doc/mod/scriptrunonce.d/01-scriptrunonce.avif | Bin 0 -> 3072 bytes doc/mod/scriptrunonce.d/scriptrunonce.avif | Bin 2356 -> 0 bytes doc/mod/scriptrunonce.md | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 doc/mod/scriptrunonce.d/01-scriptrunonce.avif delete mode 100644 doc/mod/scriptrunonce.d/scriptrunonce.avif diff --git a/doc/mod/scriptrunonce.d/01-scriptrunonce.avif b/doc/mod/scriptrunonce.d/01-scriptrunonce.avif new file mode 100644 index 0000000000000000000000000000000000000000..461c3981d0e2703ada931454c5c99030b35f50de GIT binary patch literal 3072 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 literal 0 HcmV?d00001 diff --git a/doc/mod/scriptrunonce.d/scriptrunonce.avif b/doc/mod/scriptrunonce.d/scriptrunonce.avif deleted file mode 100644 index 27ccd41fa5541090b5c12e9f50c653e14f6f0e47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2356 zcmXv|2|Uw{8(-#_l4~mW5#?%*5JGb2%6%(iuHTFeGs+RuYZ3`_i~`+vL1ul z2=u{v9%&4d@%KiB{J#W&FaQGkUwwoq!0W#?oEQKb_*Xl|$f5uWjX3HIL7-y{KgytE zf*=rt5g-`=2>N^buOi53e3*`g88e zuoNTNGlClfL;!yo2n51F4o{r2L7eyz1A-#ZsE{B8DuS{3B#1SZL7f3Gfu2Vi!x)b- zA7hGVW_)!v(AyKs3p&oOaqiV+l(+??R^P_BsTlw>#_cIymEbt z71-@Zoc#ymR1)q_A60I`qe;?AMmp?3$&q#<0c;fca`CB~LZ?%2yyHmSp=iRtY{)0! zzT*X6D`9f$*SD4*IkN04E}UZQQEUiLJ_?#uXcPFu_u3@Fwc3Kra#7|h*2q|9}OJalfNELedTbgmGst3eUn3^@E zIxCitVYr{L_D*F5WUCHXwVoga6o@RuvivNv)Fy8F)DBb*ch2e%6 zV=dRH!YZrvw@z5Ske<{wThC-kOY0@C9d9=gAcxF`G)9ArI(!Cv5+brXxjnQ|+&N6D`{AA~;F_FhlG}j}{ zR;PVDD8xYQcQ`bs-*2;y$o_@Zu5dV0V{awKIfdhOokk78AwEFzh+_g~WFhzpCIW~?|-FT+O0O9S~Q zLiI*nqB*PGTALEvU2Wjahk@W3p_P*=@@?yH+ZS~9WZC5?J?$a(*N1gX7h&a3-x4LC zwH>0{*!XxVxaMR&Z8z>Hk6xp>oO3-dF*cziuoJN9CEb2}sP@;E-$PBU@K(#u3i7lE zgK0&rPnqe=cQz|0?cDt;d?5Fs-8+2!3Q#UoIMGDvW()LyII-z>xykvZf+!da%elr_5y<3`jw2( z56eWv5LCimK4?~iD5yPP=UZQ@ns!144#)UO{@6_4K0DWmPqf z;aH1%oWzeRuDlaGC8kLZIk4MAZIjyRaW6qsS@QK34^16kC(cA1_e()eKr&(Y&qn_+ zAv?oa*=#DoSxU;&(Xm8`jCWY%31q(9GoBYBKJqF`Mlm8Pjyd=TbJDXgWAyibfe+|m-OLCXr}+Ad}@|?)x>Gp zSMi637MY^l*b9;+uhX(=apo^|@XVd#BjW`=x9nP)bp22Jb1bcDR5y&K2*c;ft4@5W z=_tcYx(qgJJQ8>vu{Y8csln2pKpzrL+wK-EDDk)j-ZG^hywI>i|BbQ6`RG1vZ zeMRaDaUZHy4`#+m&Yn?z^*M6Qq|WtP^KO@FJ6r!) zkq42`82eK?pS~DpzPHUq5Zl_(c_Z7EmlK?eBXj2OrJTMKc!l2UGyi??^6gqIdCk66 zGyVY_h;HgtiHu98bvy+~i^D&VyUCUdb*@u!U};Y91aDa$DBADNj9j!Lncuu8oAZfP znAvIS^EIPcb-UGc=n&YwH|U>F3%THTR3n@KdQ^g|Rq+k-YG-xqgsSnOhN-qyp0?SG z!wh0N4+=VG$!@*n2-yat^AWt%W$R0i=3IV`XCbL9v3b^HufbYgfiK)++F6Or!B3iR KdXs}{75@h@^+E~& diff --git a/doc/mod/scriptrunonce.md b/doc/mod/scriptrunonce.md index 1fbb697..db861bb 100644 --- a/doc/mod/scriptrunonce.md +++ b/doc/mod/scriptrunonce.md @@ -50,7 +50,7 @@ The function `$ScriptRunOnce` expects an URL (or name if $ScriptRunOnce https://rsc.eworm.de/main/doc/mod/scriptrunonce.d/hello-world.rsc; -![ScriptRunOnce](scriptrunonce.d/scriptrunonce.avif) +![ScriptRunOnce](scriptrunonce.d/01-scriptrunonce.avif) Giving multiple scripts is possible, separated by comma. From e49f68c1f23a0f154ab578e8d3db7860ba1d0b30 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 15:25:01 +0100 Subject: [PATCH 124/152] doc/mod/notification-matrix: update screenshots, with terminal window --- .../01-authenticate.avif | Bin 3870 -> 2672 bytes .../notification-matrix.d/02-join-room.avif | Bin 3745 -> 2604 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/mod/notification-matrix.d/01-authenticate.avif b/doc/mod/notification-matrix.d/01-authenticate.avif index b897943b1fc7d8c7c0ac6a9f225733d24dff9e37..d5b80256da1b77fd66351b3c19654a9427d70135 100644 GIT binary patch delta 2522 zcmV<02_^QP9`F>9A`SrSZDn*}000000000XkuV%P000004sdC7Z2$lO000310016o zY;R)#0000)000310RR910RR926951ST>t<8C~0YKW&i*H0004zoE?$u90e!<0035# z4FO1h31w|$VRRAz3I;eOvU;o%GSCuCWCGZ3EA=XQAkXW?=cr#3Gpv5b%Xdf$v0xN= zx{nP@p8!1}o)lZi$Z#oD#pwsMPJxhz{sBqI!*~b05sAoy*ofK&JF`@)GLFldBv`So zQI$7%G89AEf}$~w2G#{;gByWVE~P;dg)_Z>5b4=a`$?qT|?>gQmUIWoi31ftQj#w z+7}%A%iBR&Fi^KV?PWJ9y=lNiyfxB9^`zbTaQ*%S3^^3Rt*q&m6@WeWPpBcyDuB-1 z!MB4@Il(a(^-_x^!Pfq#m~;~$w9iO?l#uTKDALSOn$X0VZd>CzS^H+8$L&=%T1cto zUbRr+*wZe`S;Lq8FCy76((|c4Dmi=ZMC*|_oRB79*p8b0R3@#Q6qxo=6jh=DPHGhd zN%;%pu}NLkp4wT~_g6#zk#yMQWAg;rT+m$uo~_Mkj9-{?;q$N`(Buc;A6TV-8TQ-0 zW#pJRH=YDD+A|-rIRl2R*)u#l(pxvCn4GaHd+aK;d)rZ~nPN`fLOInq>~?O5K~Fkv zEcmCKh(1?gBr;mfTB-zER0NWIhwp>ZbIrr-)Y(vz!RnuU0NAB>et+jqeRQ9j9I(_o zh-oE)_jkZgtm~#5OWZLh{Vwl+EL<^Ey8Xop49EOU{2=^xslOQKwY^E9v-S#V0)O@$ zTJXLphr626y8aPhV$2!j)?B*b6*E(ekF;-Km=Bh};Ea1#BR3^94Epyx=}WX}{;=Fm zC$8hK&1?cm*ZO3~_9Im|;k1;@eE1BI(ol z8kr-E8WdWueQv6$;gt^y2C4>z3)*$JX~I)*hg@$g(s{3n4B^oSa;DIm9d8~?Z>>Fq z9cVns)gR8mVE5U9(?*Ru4s`g&tNRY5~UDw&*jU4SoKmZc)hN_9eUsCV*+Bm0B6` zh2$;~R5!qa1EvCDR}cNr!H6&zaz!hD@KaN&@@(1$PfV<7*5TA3qwRV*zctJ*(dWLI zD5vC6NV{y@OLAe(7jFeJM1j!i@zz8II7u}dVnTzr#<;Yx2Gi1iSH~CMWUc${Q;GR_ zR%+t{824#u=@S2ccD7vQf@$x}8iclAZ^ctf8cke3C;Di?PTI(zxdk3j6uUR@0tT58 z2w{ifDy4qSD7xcm(CEslhAVk0ceX&UhT5mk-76V`;aXs| z3abNS;at4MlnT>-jceRG1lL);;z=K-nc%+|RyS((*w2iXfh|Y|fOJbQlg?IGobqEm z%=4kzaLE=f|D7uKKU=BLHi`*t$=`~B(Eglwp=S8#I(F4@KZ3`lIYQzM8tX(#Bm3MOd6dk5f^o*P4Odsb->BEBSvUWS;HRC)o4lU+{sQ z&^SZ(&C8vq%LCei5^YvQ| z-5oeOnBjX=$u~SxW25(56~9Hd=Znpbu;H5bt-e%xTa$s&LkyU9lgFP(-3Yhq}(lx zDtQ2ED*S-Bkchef%f_h3__W58skw=IY2VpaS5P%%_&9*wMs|B%5Z180h$cOL z&w+15+&}S@RMC61xS>T1!X0!@g*xU3<(FJ%iwJ~#4`(mw&!KF^cLlsN3AiZc-+t8m zF{%N=C$S(n?Nih9`XOn36ZNUDWji70hUa=;ov3FmkD@gZ1+~ecw>0k?4O&*eL;x%1?S|DVl=A k8d0_j@^cat>R5mlI~Ha{vyTR7UpikYnBGl(YzzrTa1N}~U;qFB literal 3870 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 U730Uad4+?KN3=Qa{QeI9Kj5%V`v3p{ diff --git a/doc/mod/notification-matrix.d/02-join-room.avif b/doc/mod/notification-matrix.d/02-join-room.avif index ad99ffde8e4a5885c1c44d361beeb4927fd694d3..20c4e799a41fb361dc107f77dcae49ca26214ca8 100644 GIT binary patch delta 2454 zcmV;H32FAB9jp|PA`SrSZDn*}000000000XkuV%P000004sdC7Z2$lO000310016o zY;R)#0000)000310RR910RR926951S82|tPC~0YKW&i*H0004zoE?$u90e!<0035# z4FO1h2_bD{VRRAz3I;eOvU;o%GK>;TWCGZ3EA=XQAkXW?=cr#3Gpv5b%Xdf$v0xN= zx{nP@p8!1}o)lZi$Z#oD#pwsMPJxhz{sBqI!*~b05sAoy*ofK&JF`@)GLFldBv`So zQI$7%G89AEf}$~w2G#{;gByWVE~P;dg)_Z>5b4=a`$?q9LVuKOd&HWzDqHB9gCe%K!H}Y|Llb#ZrO#-W%@Y4alptY&RtTBCB)>i=pi z-aA#k2Jx6hIT4$H*LiNgQrf}19d|aM?8Q&b8 zb#Dw4ZV{N~n5J!6U0Nl2xbWQY&?iRH%>J0{Up2^E5y~|B0;}4~(n9cM3cPrZ=?#K_?OyzJDxw44JV?x>L7Yr#;RO2jb>IPqyZ`?Ut! zAk7DEL=T3Rekhk|eAp6nOd0!s0kJM&Ca0j1+Xy#N#V#h1^@<_pku<`WN5Gtqw$!d} z)dG@5X7(VetHL2*2pvop9hZ2A1u$L)|J0rkLc{+Yd`MD4ZS_F-m!Q<-J;eli2c43lGhI zdD?|bhqEmQYW6J<7XH&Zanf1jQg)bTzYiAglpYZ#^b;t%!)N%9!@U%K>pbINXU!Z0 z++P%a$8?foyFIctVkRJ>VCfSuATllOUs1d5O>;3Y|Gw{y z8sB^gEh}PNN+S%zr-I3U7n;h;a_R4T4;eeQW-oH_UKh%oF8ne94TOdwKEo(acRH54 zNeR`{tz-o<$d2PCU4~AeQW>3A4&!KJDH@Ous8ixn82lB7ZnT3{>#Qg)SFdc9json< zBA_;lF3Gv-DM_~W3_&q>V&=kjNH=CaFwyjo;W02^Hdr?zmR z0TboWvwp`bwQbp{mes}O{-{f{CiJ6^cphMN6aC~iV3i;b==^vX4GV@z<+#PXtFr8{ zix2rgyNlD+7_CLEfmMRywa>U*Hx@TEre9Rzjx2Rz1x{|FJ{epP4GsL zGFnNHaHjUw3h)do93W|&vN?Ax|Bc4$?RSH%j>dobtB( z3QsE5VbY60QPORRlk2Q;Nz{uiBDE$GXOcoA-uyNIU}G?PM|S8&AdnRdX_c{&l0flG zmC4MDlh2jOVZT%>Pzat?s$qtmx_4>o5W-1xKvA> z8udD^Wh!uhZ;z1r$3BJ+_De##>~Ie0a0ZbW;8r!%S~GB-&|ObT>#^@f{_R~|eVW@= zCuMhbPd3#RTqq-M8Kw_O z5QKu;N_MTMlR$X^(+wy^HH=;+@1ie% zZ`6*w3>H)^R!pU?_*MnaCvHvuH7a4l*sg}}N>8rV*vDFS0jO20Sd=(zD7kTgcWGn{ zz=iSH@`KLPnD@WglaBb@)Tp}&_Ei{IF+X%g zW>3noDQNEmmmCRrH{TjveB=T#L!tGimM9tE5#;SAXg#-ei3bmvATnlQ3IIj(_p)D# Uq-Y@J-%`9eS6JN$d7K_Pho`QO2><{9 literal 3745 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 K&!ZvF6aNEFUlig1 From 699be25b64a8b67a99786387c8b0407f7e939590 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 17:05:46 +0100 Subject: [PATCH 125/152] general/clipboard: use textContent... ... and avoid having html entity encoded characters in clipboard. --- general/clipboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general/clipboard.js b/general/clipboard.js index 30c3134..cbcfa4a 100644 --- a/general/clipboard.js +++ b/general/clipboard.js @@ -1,7 +1,7 @@ /* copy code to clipboard */ function CopyToClipboard(element) { element.style.filter = 'invert(1)'; - navigator.clipboard.writeText(element.firstElementChild.innerHTML); + navigator.clipboard.writeText(element.firstElementChild.textContent); setTimeout(function() { element.style.filter = 'invert(0)'; }, 100); From 94514a7c75badd034c052d566f15a530243b6b9f Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 25 Nov 2025 10:35:34 +0100 Subject: [PATCH 126/152] doc/check-routeros-update: update the forum link --- doc/check-routeros-update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/check-routeros-update.md b/doc/check-routeros-update.md index a45e075..09458c1 100644 --- a/doc/check-routeros-update.md +++ b/doc/check-routeros-update.md @@ -31,7 +31,7 @@ automatically is supported. > of view. At the same time it can be source of serve breakage. So test > versions in lab and read > [changelog â†—ī¸](https://mikrotik.com/download/changelogs/) and -> [forum â†—ī¸](https://forum.mikrotik.com/viewforum.php?f=21) before deploying +> [forum â†—ī¸](https://forum.mikrotik.com/c/announcements/5) before deploying > to your production environment! Automatic updates should be handled > with care! From ea9e843ae95b7a4cc64bb504a135d7a420bf9c5c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 22:07:00 +0100 Subject: [PATCH 127/152] contrib/html: add a class for code... ... and make sure the notification generator does not suffer strange styles. --- contrib/html.sh | 2 +- general/style.css | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/contrib/html.sh b/contrib/html.sh index 098ba46..03eba23 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -14,7 +14,7 @@ markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ -e '/| id="\L\1">|' \ -e '//s|pre|pre onclick="CopyToClipboard(this)"|g' \ + -e '/^
/s|pre|pre class="code" onclick="CopyToClipboard(this)"|g' \
 	-e '/The above link may be broken on code hosting sites/s|blockquote|blockquote style="display: none;"|'
 
 sed \
diff --git a/general/style.css b/general/style.css
index 191c0f6..6f75803 100644
--- a/general/style.css
+++ b/general/style.css
@@ -58,6 +58,8 @@ p.hint {
 pre {
   font-family: fira-mono, monospace;
   white-space: pre-wrap;
+}
+pre.code {
   background-color: #f8f8f8;
   border: 1px solid #ccc;
   overflow: auto;
@@ -69,7 +71,7 @@ pre code {
   padding: 0;
   border: 0;
 }
-pre::before {
+pre.code::before {
   content: "📋 Copy!";
   float: right;
   border: 1px solid #ccc;

From ca487376d6ef71302a1c15446ae178e12ac7beee Mon Sep 17 00:00:00 2001
From: Christian Hesse 
Date: Thu, 20 Nov 2025 22:16:40 +0100
Subject: [PATCH 128/152] contrib/notification: use rsc.eworm.de for default
 link

---
 contrib/notification.html | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/contrib/notification.html b/contrib/notification.html
index 7a6ada7..baa659c 100644
--- a/contrib/notification.html
+++ b/contrib/notification.html
@@ -31,7 +31,7 @@ instead.

[MikroTik] â„šī¸ Subject

Message
- +

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

âœ‚ī¸ The message was too long and has been truncated, cut off 13%!

@@ -40,7 +40,7 @@ instead.

Hostname:

Subject:

Message:

-

Show link:

+

Show link:

Queued since

Cut-off with percent

From d4979146f99a9171d71d50c0940e2995d7b83fa3 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 22:19:53 +0100 Subject: [PATCH 129/152] contrib/notification: disable the border-radius for logo --- general/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general/style.css b/general/style.css index 6f75803..c6b279b 100644 --- a/general/style.css +++ b/general/style.css @@ -41,7 +41,7 @@ div.content { } img.logo { float: left; - border-radius: 50%; + /* border-radius: 50%; */ } p.foot { color: #777; From 544e8094de540fb9953fa5f0d2eb4f0d89ba7eb5 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 20 Nov 2025 22:35:39 +0100 Subject: [PATCH 130/152] contrib/notification: increase font size for heading --- general/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/general/style.css b/general/style.css index c6b279b..25569bb 100644 --- a/general/style.css +++ b/general/style.css @@ -48,6 +48,7 @@ p.foot { text-align: center; } p.heading { + font-size: 120%; margin: 0px; font-weight: bold; text-decoration: underline; From 1f6c43d5ce336b611d741549acba1413551548d0 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 24 Nov 2025 12:19:09 +0100 Subject: [PATCH 131/152] check-certificates: show lock-with-ink-pen symbol in notification... ... also for warning, but of course keep the warning sign. --- check-certificates.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check-certificates.rsc b/check-certificates.rsc index 3300bee..93641ee 100644 --- a/check-certificates.rsc +++ b/check-certificates.rsc @@ -231,7 +231,7 @@ :local State [ $IfThenElse (($CertVal->"expired") = true) "expired" "is about to expire" ]; $SendNotification2 ({ origin=$ScriptName; \ - subject=([ $SymbolForNotification "warning-sign" ] . "Certificate warning: " . ($CertVal->"name")); \ + subject=([ $SymbolForNotification "lock-with-ink-pen,warning-sign" ] . "Certificate warning: " . ($CertVal->"name")); \ message=("A certificate on " . $Identity . " " . $State . ".\n\n" . [ $FormatInfo $Cert ]) }); $LogPrint info $ScriptName ("The certificate '" . ($CertVal->"name") . "' " . $State . \ ", it is invalid after " . ($CertVal->"invalid-after") . "."); From 1ac0147fce7c0f7a31e4b2b1d802e8daf4d6f1b0 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 24 Nov 2025 13:17:27 +0100 Subject: [PATCH 132/152] sms-forward: mark every message with an envelope --- sms-forward.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sms-forward.rsc b/sms-forward.rsc index feb640e..161ae6b 100644 --- a/sms-forward.rsc +++ b/sms-forward.rsc @@ -68,8 +68,8 @@ $LogPrint warning $ScriptName ("Failed to remove message: " . $Err); } } else={ - :set Messages ($Messages . "\n\nOn " . $SmsVal->"timestamp" . \ - " type " . $SmsVal->"type" . ":\n" . $SmsVal->"message"); + :set Messages ($Messages . "\n\n" . [ $SymbolForNotification "incoming-envelope" ] . \ + "On " . $SmsVal->"timestamp" . " type " . $SmsVal->"type" . ":\n" . $SmsVal->"message"); :foreach Hook in=$SmsForwardHooks do={ :if ($Phone~($Hook->"allowed-number") && ($SmsVal->"message")~($Hook->"match")) do={ :if ([ $ValidateSyntax ($Hook->"command") ] = true) do={ From 678fc3307e9858f7ada84f6bbf0264d9b6758cb2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 25 Nov 2025 09:50:27 +0100 Subject: [PATCH 133/152] general/style: clear floating on hr --- general/style.css | 3 +++ 1 file changed, 3 insertions(+) diff --git a/general/style.css b/general/style.css index 25569bb..3d08f1d 100644 --- a/general/style.css +++ b/general/style.css @@ -39,6 +39,9 @@ div.notification { div.content { padding-left: 60px; } +hr { + clear: both; +} img.logo { float: left; /* border-radius: 50%; */ From bc174d7f1ffab55832d558ca78583a58dcb92ea2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 25 Nov 2025 09:56:40 +0100 Subject: [PATCH 134/152] general/style: add a margin to notification when floating --- general/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/general/style.css b/general/style.css index 3d08f1d..c3e8690 100644 --- a/general/style.css +++ b/general/style.css @@ -103,5 +103,6 @@ td.head .bottom { } div.notification { float: right; + margin: 10px; } } From 84c49c0f7e5710a50bcf047269cc021c8c4abf04 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:41:23 +0100 Subject: [PATCH 135/152] README: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit README.d/notification-news-and-changes.avif ----- >8 ----- [rsc] đŸ“Œī¸ News and configuration changes The configuration version on thyone increased to 138, current configuration may need modification. Please review and update global-config-overlay, then re-run global-config. Changes: đŸ“Œī¸ Added support to send notifications via Gotify (gotify.net). đŸ“Œī¸ RouterOS 7.19 is suffering an issue with certificate store. Fixing trust state for all certificates... ----- >8 ----- --- README.d/notification-news-and-changes.avif | Bin 14861 -> 8680 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/README.d/notification-news-and-changes.avif b/README.d/notification-news-and-changes.avif index d91b8a085b061f256a8b69d900cae6894157034d..d2e8aa7fd896c631b4d0ffeb9e9878c66eb28f00 100644 GIT binary patch delta 8523 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 Q)r+`k(1qTlNY7eqmV!Z From 9ef3ba5479fca6a59bf1e825ca5c74c1d3e408bc Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:36:36 +0100 Subject: [PATCH 136/152] doc/backup-cloud: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/backup-cloud.d/notification.avif ----- >8 ----- [rsc] đŸ’žī¸â˜ī¸ Cloud backup Uploaded backup for rsc to cloud. Hostname: rsc Hardware: Board: hAP ax^2 Arch: arm64 Model: C52iG-5HaxD2HaxD Serial: HEG08Q4FT32 License: level 4 RouterOS: Channel: stable Installed: 7.20.4 RouterOS-Scripts: Commit: main/3287/699be25b Version: 138 Name: cloud-20251124-092255 Size: 180kiB Download key: lteX51vlEnrV4OSXfUngu8d ----- >8 ----- --- doc/backup-cloud.d/notification.avif | Bin 11629 -> 13346 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/backup-cloud.d/notification.avif b/doc/backup-cloud.d/notification.avif index e533908f8d90b0340e59488c269e70775649b218..5918a6236f526ea921ec5b43fd534b10c826a257 100644 GIT binary patch delta 13225 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 delta 11517 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 Date: Fri, 21 Nov 2025 23:37:01 +0100 Subject: [PATCH 137/152] doc/backup-upload: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/backup-upload.d/notification.avif ----- >8 ----- [rsc] đŸ’žī¸âŦ†ī¸ Backup & Config upload Backup and config export upload for rsc. Hostname: rsc Hardware: Board: hAP ax^2 Arch: arm64 Model: C52iG-5HaxD2HaxD Serial: HEG08Q4FT32 License: level 4 RouterOS: Channel: stable Installed: 7.20.4 RouterOS-Scripts: Commit: main/3287/699be25b Version: 138 Backup file: name: rsc-eworm-de.backup size: 372kiB Export file: name: rsc-eworm-de.rsc size: 377kiB Config file: name: rsc-eworm-de.conf size: 3.26kiB ----- >8 ----- --- doc/backup-upload.d/notification.avif | Bin 11776 -> 15905 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/backup-upload.d/notification.avif b/doc/backup-upload.d/notification.avif index 83cfb18aabeb4cf7725154fd08a50663458d7863..3bcc1f4d7d51213235a240b7e1bf674ba4d6db73 100644 GIT binary patch delta 15806 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 IumPF1*iF}qXaE2J delta 11666 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

y>~BhrpmAV_~8K?;QJ4Jg#al~fTm zIMaFCVo|hci50_ei0$qw78LxJ*sdG71DO|QwTm|Bb;~%@wqTCexgB}Hq+@gEtiy@` zjR_WsuaL>KZr6s`)Mi;cBT_n*P35+v(v#*s-dmUhX@)^V22+x}as+^8&t6st5%BEQ zMXv0$sB$9d-QRzFWvlP|-MISW3}bQ3=RZrKZa8wnH2U+K0~mi`@#7`!ZJ3cjP>qu_biX3ZV}YaltfG%7Z%{gGM)XV=5o3jNG$>;ZodoH}q4CfCL+jC`%r5U%;L zt;dsf^mV8(eTuEI4FzV12{rx#Cin3IHT!2r&O3u=XgD8p5gwb?Q@`4qTDoX5aq3f`t|L-A3V9kL*9G;Niao9SiDU6uy3G0(6@?*asGwDCe)8&S!MU|D4V+YIP z0{s!OoODJTu4p^AlMCbVy<9H!`5N%zBkQ=yx|HQVD0uW8TEzi<1l3v5v5VbdssNOr c1A>QXZ}%nZXP$&}4L)eRUkp-e#9hepNspeM<^TWy From ac6aefd34c2070217ecd296745e8d9b93f7182a0 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:37:35 +0100 Subject: [PATCH 138/152] doc/check-certificates: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/check-certificates.d/notification-01-warn.avif ----- >8 ----- [rsc] đŸ”ī¸âš ī¸ Certificate warning: rsc.eworm.de A certificate on rsc is about to expire. Name: rsc.eworm.de CommonName: rsc.eworm.de SubjectAltNames: DNS:rsc.eworm.de Private key: available Fingerprint: f21bd7e64eef82b963938fecd07ab0210194129d7829ba08c2d212d063f3b07c Issuer chain: E7 -> ISRG Root X2 Validity: from: 2025-09-09 13:30:10 to: 2025-12-07 13:30:09 Expires in: 1w 3d 11:37:06 ----- >8 ----- doc/check-certificates.d/notification-02-renew.avif ----- >8 ----- [rsc] đŸ”ī¸ Certificate renewed: rsc.eworm.de A certificate on rsc has been renewed. Name: rsc.eworm.de CommonName: rsc.eworm.de SubjectAltNames: DNS:rsc.eworm.de Private key: available Fingerprint: f21bd7e64eef82b963938fecd07ab0210194129d7829ba08c2d212d063f3b07c Issuer chain: E7 -> ISRG Root X2 Validity: from: 2025-11-07 13:30:09 to: 2026-02-05 13:30:08 Expires in: 11w 3d 02:25:23 ----- >8 ----- --- .../notification-01-warn.avif | Bin 0 -> 8798 bytes .../notification-02-renew.avif | Bin 0 -> 8792 bytes doc/check-certificates.d/notification.avif | Bin 25274 -> 0 bytes doc/check-certificates.md | 5 +++-- 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 doc/check-certificates.d/notification-01-warn.avif create mode 100644 doc/check-certificates.d/notification-02-renew.avif delete mode 100644 doc/check-certificates.d/notification.avif diff --git a/doc/check-certificates.d/notification-01-warn.avif b/doc/check-certificates.d/notification-01-warn.avif new file mode 100644 index 0000000000000000000000000000000000000000..e32e54b365c4d55cc65399b368ad1681dabc3eb0 GIT binary patch literal 8798 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 I*plx51DQ0%FaQ7m literal 0 HcmV?d00001 diff --git a/doc/check-certificates.d/notification-02-renew.avif b/doc/check-certificates.d/notification-02-renew.avif new file mode 100644 index 0000000000000000000000000000000000000000..9ff1400a467198c11b9924a83193cc02dfff5be6 GIT binary patch literal 8792 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 G;{O3h1ev4& literal 0 HcmV?d00001 diff --git a/doc/check-certificates.d/notification.avif b/doc/check-certificates.d/notification.avif deleted file mode 100644 index 7c250da192f5f0045edba36cc55e0e7246cd75b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25274 zcmdqGb8zKf(=WPX+qP|MVrOD!V%v5m*2K2$WMbQPCbq4U`MvKs_j#VWb?V}eTXlO^ z@9ti`c6Wc4zSsZ&fY8Lr-A>=d+ywANf2Fm#36r(CzKN_5lMny^#A0pir2p6VMU-Yn zRu2EA0swaAhED%e|0}J`4gO~scsp|^>wkPeU*ELmRMm1 zskM>*KSLuaNe%cL=Bt!1h5~#5K>s57hrhc2xBRmITmM@YFc1g;mp``wh*DybVqb~=DHH(sTmuLLAi=>Q zz`-CPARwTiAfaJV;b384V6l)<5K!^33Gnf-ad8Pr=_v?_X-RN#DLJTU8JSpFSqUh( z_&Aw)=~-Br{{{hqf`WpDfyIP_!(=AHC1U=+O`qKWBuIcQ&=*)@05B2|2olg|KY-w? zPB5T<=)a)+1quQR1`YuU1r77np%L-#NPz%@f`Ea6ehoU1_m>|4iUfvC#3Tfc@?9T- z*dCSHKQ0%NsTvM_^EJ$j{KQ@c3T|iAl*RscCun1%*Y$C8cF`^$m?p z%`L5My?y-ygG0k3qqB4K3yVw3E2}$ycK7xV4v&scu5WJd?jIhXo?rgr`it{_(tjcQ z4_ruJxPU=HK|mq?;sOG8{RbJPu+8!tp7R4(x1BV%C zbW+wGvg^Ol{z3MC4OqbcBV_*z*#CiR6#xqY^fh@PNB{xAT_u6|9O;ae&fTkti9ZxM zp(H07-kh86;N8l4pE2&~{yr>W_9m0c5uf4y2POxC3xy9TP?I2HIiUdEL~X z-yQlzS8qwyC4$E!WB3OWJG9`gz9@*0gYpnL1uPA7XHI;IJq*^Yucpl|#;`v?63OI2 zJp$!h=2$J&+gF@U6@Di=5JAKX;&sTHc(E=0Xq`!y{2fMXlVlF7Iwu)Ms>(A0EyxKL zI*ixZ*j1uIcVDl?8!z^IAwoRztpc74A~2G`aFBaC&Em*0A}B-mXi$Tf_7A(n-J>L= zigT3IURle?d7`mEl+2ZzHDYZ*j~^!wi7KD{G=eTQ()I+QNL-mzNwkqd1vpN$7=&Je zkBYSypIKD}X$G1?{sA6y@!Wgj;c6PEeha$C;5^boy%yGvM6;(_m9)vNRw5i(QZVzP&O3qF2udq6*ZqR=+@K zegd`WIKLI{!ZuaPvR%2kDpzo#H$KO3ImR3=fG7fRLgqP{RG6>jD2(tefZ61^=V}$ zMg9Ij8WYtvK1XwZ)ajFY!>zpH#l`4Chk zxWCALfh^ySo1R08D?Iin3aiqU<<`&@^(2-h8*!*3f$WXNfQXFdI+8Wheb22lLN9-oW9)NmDNg?wTq0#4u0s`mB>&0 z8rr-YI@BaeOkj=`+C%i1ody%QYbEb~Mi~dqaMo#$?ra!LdJ|jISGB@5a^{H^i13fZ zzxN3TjB7aSC8QWU7s>>_LDkqCx%1Qs;NP?Dr3J`iuZp6G32jcT1xD|7ZjIj!=;Zma zR8N*za@rzmYnAcvGLF0%bar z7h|?sn&l_#K2m?Q=oa&_v=v2FW5Z-KsTjfb;^kv$d$sP}svhOQ#_>1qp**<3`q^jP z-tO}G{+{Hsxc{x4`3W#n#(n!OZk6pT{p0LSM9BK_xA7jVa-}?mozMuLYK7THX z3i$pX{O^lp;Yj7M3!`gKtL_s}UHi5C*(hoj4^8uYhoSpEI_5qBLTElEX4yBuHD7+G zPr$UOUJ+s0YS4FiqiY%5{2xANJM~$Np18Yd^(vRyqYbV%N!mZoOrR0?i~N{Gu!-ey z`1YcRr3QrA?Yf!cx_2@4KLJ1w<%^2P57T)^oU&R{Z`Uz_}OqpYT0&QXlB|Yz8>gZSHHb|5DL(n~gsKdWN3>L5n-;+pUPL8@d(WrRA^b#s0Ny=~zD_um|=v zQM$)p3nIKrnN|K7NZog-&G(47dJgfsDBFgi;$)AqGwHShNNGs~HmE3cz8_#)(Y-Vg zXK37x>vZcyF&jO)PcB-yRK%mE+c?X6u@~`q3Z285vIztUqiHh zMkd$mVfwmEklbN)kBdFv&HlW}jvY}(Nfc*n<0FPOa+!gjJ?cl_p5_;Tf(vQH zvRQC#Sp=;P+P_CY)4#HMKS^9`U&Xr+O&pq$nXjkk@V#39`-o{73QOgm!*M!ndO?_G z9QVh=>l`RuYbB4M<{0xIFzlSTM!T*{G5V)!)3s63kxU>Y(~B0%x@Dui`(7(ZV(!m& zXTAi9ep9c+l@n-v+v1cmz${O&1YWq;b7_EjQH6%aju5-sjpwicb`PU?0V4lwi!MPh z)bIc2?0z|L`HX(nb$aG|1g9IU>v`?@A^Mx)<(1$CM9~w@#>Io;&96e>bVJ|{N$n&g z>=QspgYfbw{|>71VgOz3x%Zy(d^Uz@Oj_DAxfAWvQjP|;R|-}xOm^lP+T)N7E z)|HKPw1u5%PAiBF%%B9I#QY9<_n1c)w;^Q*{`^p2MU0o|C+*hY|-O91kj)uP0gB*_wIX@PLa zYQNiE=}h5cQtlioUelnJwzun4rVVRB7R2eaf%qQ6-|nfL^!VUo$QV?P6@ry*zP=U; zifh;j@hZHSmb^G+Ko6E;_E67c&I}j3ss*aZ?}-vz+JZzgKJ z;v*!an$Z5P*^3MiW0@<#8hRZp7pho0U?fpblc#c#q(n%$s$b;3!c&9>7p`aOGM zZS+Sp+F?X~ErC98KU(^<&~%YGL!@YzuM=+ge5>oOpYDPU1tQrCH`Q4O| zLRDuJF+)7#8uO;vHuD~VuTXRgegaDgKyO$;>rNsT(d?gWqn20NpL-^|(D2#70%c^&#`G z0u`eLK^|!}QUrH3L0*BN$$J1pqz_SB^J*<{N7-|HVf7jSrwW_V> zt0zZWw$YDCxSkTqKv@b8c78H4MH*@$pZbGE79s|r>j0S2EB-ppMU8xI`dL!K)((tl zfaPX>MGsvaOWOZ|%oR6^n1Iaflmwa-B*8p$^gl5JF$kaZ)?{l@2QL3DHRBf#G7Q+w zdW)v6*d$UX68AK~?I$z31y|#-6SzJzT?z-R<<;Y8He=wcD*ZH~)rLi6nX6u!L*uK; zN1Go*K3|`4&xhyIj*I2qy}F zgC{*-6~JuyKLHaYBRW|&(=NCP_opA;C!80J9Ab1ljPx3hJ zM>9k0`#@9U=^A!!r=!_2;g*_uZHT0Tyz$|n#Xzk+uk8W4?z(Y1nn+qDcpfs!FM{8V1W%nz9C!$55h2$RaL@Xq6sH_$V z-$YW9A_}Y+Ab7vs9qf1BV+a*St!k+EXPI+83l4fj3-LNl0Ce-}NhEU!CGD{jql8Ti z99-euapCi_ZH=AcYm>I?+|LPt!k*o`A5J)rhdRF2zQz)Ib9{NQGiYB80hj-}ye@>z zg2^AM3=xALSXvYZgodC#{9pHn2H{0<+Vp9L38@sT;=>=s(Q;IIFnydZPL$DwYW7&T zhrFIKV~t-6M0EfW)MarEW0_?B_%`X6{5x*oeve<`I~CK)-5>N$Y(4EOp^LX>j7 zQ3AiCCE6PMqI-=beGlnjuHgfK6w5)qWZPKbc*Yg4^&NmG0z=`pf^IuFM$0ey(a&fc zEME06Lj_=LH6x?c69SE3o&H+Gx|C~fYz@QkT1%m(>cbzR8^OIElG~{720Nh+a#_;# zvf2MuQME@~;Wh~9!F|d0N%Zl9rp)t${`Z@J4(RsBKaXz_E_(M50(amA57_HxcmHw| zutZV#H1w@$)|xQssv@qptZ&pY0D`Y<>x}}R;1iI&_zCD@_&^1ko_Fk}h|o7^4~#o= ze5Zl=K#4*41WcX!ZYBSHJlo;C`UJdvG`~OlUKJ640v>pM&2J+PnV*ZPIjy3zG6j@Q z%&f6D=6^y0(QjzBWJa_AzHeG;nXGjA%7o1 zln84HNck0>FyNcNpR4`dbDJmh*EJw$x9<~h`?B@8{|V@gd6MH5_yh=4emxfIy-|YX zfB+DrrjjKk^_fyrV1H970ErpMiRWSws`~zWu758?5W7!4Qd7vLs&9m_{1bp~C&YEn zC6Gy180lipJm`4Pc^k{U4Zq=``X3elXB74q5%$GnXh|aIICAw1%oxn=D{hyU`%B8_k{mZ z4bb$A_T&E+CLY}XZ$kXr5v_ypZ?Mq@yri$uQ!C6|YSh=UNTp-Y?5)e`>Pza{J;D)@EE%No@^n$+3Xja@)+ANjltm{)@z{yRw z+s2Qh?-Ty1&>V4H+Q(34=3s!S}sRhoVnX!;sR0 zILE$am@4`=6?zB`PkC-ABL86Zw98zYQCO(|9PYT8lDu6;VM@1g530I5d-6Wj4<=uZ0K^e9kYCJ$iKrJ_3V zz2<$7nElX&@A?+HZo;3S2`}wdvE$a-X83l~VnE>wVRnIVgapMFiup(<`4lq=K6mvz z3-9Q_+asIb=tYQ-keas{fSKf)G+dqEW<4R*IwYPnc-4olb8)5<=#EDt!a9+BdYxO_q z&I~f2fOfe-%dnPD^CZ|sMN@7AskKUBcfq6UY2*y@mZIlm>k7HTHElFbCuWc*TtG*E z^mV2M%3-7h>WHz6BQ>N0DI1G-@g~3k9q>RZ~)IK#x@z6*T@<%G}X8{zX zWIk&CTtTFjFxwwSQB*jc3fGFHo%nl!qP81|Ee@rg4{c;J&5JCMXS2Chv?@);W5TBg zCEbO$SjKs#rpNW?J+&`GT0_x;ZPZ_yMV-9}VjjOp?hc%apVuqON#KP_YHh`;S2fMC z$|y6MV2(%&guvuWY2vR0Ww>aailQL3?_5i2^3ipGezNxfodS(UbN~r_LR=JmcEZf9 z18tfWdKDN2L6UZ#^eTx!K^LBoYXV_<6VzUZizj|7Ye`#)M71pBR=P5lzj(!xnyIlG zo)3+h<|M4EQS!5d7}g44Gk<$@+vy!iCcQCI7j68xQv_xaj_t9e^mAzKfE3yK zB$&wqrdRSqLyf5nyC@ca7qn-puY(P2SG}C05H^EEYbZs)yUqT4RAy)uGf5Vx@{0v< z@)}{moQW5hfrs3vqcUFFje}`L=Bv zbdMd7t8-c5B`4vg?HL`BBq7FSOaTk*L#{g|b4&v8TTfPite|8%=#yRVh#KOZ@6PlK z)r{&@das&lBy(m!9bW1C;`|#D1nvZKAyOCMV(*53!@lmMC%8N9lw}6>$yl{ubs10s zw!Rou$9=Li^(S;EUH7DSdFi{-82PGV$xt!8=E?qCZeu^unYW>e5#0d1$*TY#h#q)U*9`g9)Y}k!R~w#3p$dckX*}93 zTRqT*k2Eq?(%nkYJ8vq{Zr-KCVto!sa?~Y(=mB}RN_&VmCA+QVc!fzR-}-G?Bw!Z* z{`q@_llS9zx58QoW50zA!;c(Dg107pWGc+iS_A?CKRaCLW8rR!ZlG!=FZiFf*7r)w z%TuWCcl;3%3{ALo9u!!&89$l$qHkqP#=2BXE-F+6lR*{p^y_~dhL8l$Pan~s#Qs`R z%DeZbDk^YQP86T#ZK9BpK|b4}WSw!Qysz4X>^jKB4QaS--}4i9A)=E2MafTnxlLfO zZ(8a{Cyng$7xFyj|EWSF*4*Fe$|HBcaDu9ljmzG2SBpF@IIQXeeY}PK3z#c*+0UH9 z?7_)z{~Efyu!&D1jx0T*_%k9%9}K~rCgdb7c(kVh8sVSb)TL`PxRHFJeOj z(w_ecUaxac=D^?v{I?oL63N8UFd+NwM)!?*!P4DV;^@Q7jc-@XOkd*gvO<6~HJ^By zvZtI*B+P+3qpc73J}TV2+N zCx5LIPl_Ssm#-SJ*mwlQ^Sk?cd-vopOGQT#(>dhx9vAoCfDx2Jwc2mT6rSxoZci5X zBk^sP<@RK>aadC_fmL7iTGhU&{HneI2VM`}fbLZ{|7>dVq8r%9f#_vv#)m_~t1z>^ zr2&UpAgcI?T2J3%`?sq?2OOLxFG9wI`AhrtX`S+8Z}~S3ycuo^=p8cBHLg>D_Ul=Z?u1e;p)<(|VQ zzp&17qAXJ7o-lT@=SW8GZ!BpbfcubG;X1Pz-g(Vk*vlxUQQocT<4;&cfJXtz%JuNL zlXkWduMWzX?lt!EDnae-7_(iL?5L<*(k6188F{_`X1KmJ#f(44ejH93q%rwAY(zdt zk_Ak%b}g;AE^%b+PNwQ+WpoCLK1~wikMD`T$o2X+HKFqbEiet%Bjii>+l=ws2}8z7 zJm9wp*w&i0`456TMD}e!UIy~#AvHRoR*zA7g{g#R-OF%Gw>YZ-u}OA12kNG;T1eQT z`}fL@OV~U1#}LBKlONq(&jXA#LnSpYAEiDUlFOXzOOa5G3|h`%f1;hcNU&OI1SwX6 z0y5i)er~FLgDq!8)Zl9G3{`#f-oa~F@ow0q!(L1_KnDMm86d^8(&(uLA!n1tU)T#f z?e}HP@WtetmA{oX%QG&~PDW?0aCsA(tym(t9+lvH9`(R42!IdngMeebIdU-NB56t& zb6GpoCy5JO(XzwP;p+? zk5xqoFRKWH3mT?Hr5csqQKSPYbI9umtoO{-kON8bw&>inHMih0;fT>eA?I8U+y=Y< z5(BZLpDwbm5@!2osERTkLJ9g}aaV-+`#@tCIREIN7ml5zX=YYcm^Y)T__(;ng^@=1Ng&RfI}EBY_-} z9YOu+B)3dPR9=^FxrS9s9pV5ns9VKh{;KZG7z@H&F%g1kHI%-I*zeIcA<^LRJjbQU zafF@l_Q&(3m{&CU4AW;{wfM;rG&~~ST?XvB{EdJhmlKyWi*5~!BRp#K6ew2y2So#) z&k*|%r;#M=Ife zb`9%ND^73qC65ISzXl*04m&{towHM4Q`8tkUUHXQ;$BVWM_8x^j9Kqm{z#&vIg`G# zsj^iC_oR{WKn%W!zM{|K)}|6Rl{8x=#-JZ!sF-G1N;>T4bunJFY!&9aiwt6#*7wN? zxZl*Agn59|tI92j_;3!E)l7Y#NzL3=Bnw9+(PaDMTudf&BOpZ(=)5N-P=EizLeh9l zAuQjO2GKxCTXmj&RgxvxUUVoUWe9=%nJyL{6b+{zl8FTpSrqJnE+t$lnO7@!rDmLe z%*m+}aurCo^vHrqiFrxdx{w=2J7;HwY>SdaR0*au9HT`X^IY<*c-eggdvbC5*7f|! zF8pNMjP34oE0z-VT^^9ju2ILdk-;$BGz@*k4GGzva>!*SJ10#Eg2}E~C-;Zzo5!i< zY_5 zq*%MvXq;&e2sW~~8tw&sj;fr|n6xcQE@+)G)k!mW&#CZM|T3!Pxxv9Ru zljOaPvL^dzC~^$FN=2EfP7(&g@Vw0r>A+-Q4<<*z==Jzif0;1vH|nxXy&lb9?+mFq z0-R%2-d4K#7jesZ58m#|_ImARaAY9#XA-TT@YOA(t#Qow;l2$XK>T%Qha+lFn*-k4 z#_{E9U6)?bqBN}}x1E~sHdOuCkW#ThgHtmFE1aWND)PDN zyE7{auS{?UQ-M?|p4De2(lZ=y6w%x@qB-)E{Aw^gT)1bZ^;;{Vbl4|jqv!Bh>KnuL zo%x-BNw=e~MDq$_$^n9@yCx7r+iQP7!+V#YMa~##oDe&q8y4?WbZlhRPfBF5tQg<4 z-Cyd3*e;i$(?eI~UA0uC*17?-bIBUt%Dg2#LpQ(O)0sR@X|nubUF1=Dq!W~-F*Uyu z_+%Quyn`p2!@!LS3(DvO*CRPJeHpfp;<`7j#(QGR>5e=-yjTq;O?1hA9yNx(9{{x1 zHcJA9HUGH|LmTY$Kz9}e&L(E?T4#R%gT=YA4J+moC@G7Ew*)Bmpm^t9--t=g1#u{o zCOY}Tq~>2fh2t6P0jCrQGN;mm82STUpl}m{MB;qC(Bt|fH$}(WqQ(j9Ncra87mj3d zt(JU*8sbcq3p&Xt9hg*-vv9TzRMdP~Mi9>2Mv;a?n>AhYdvwv)t*iS`)4E}>kUUIN z>)|3JltCFQ2aZqUw>Dy9eTnU!NTbZ8Gh>5A4EYS`;@`H*U>#C9kflj*$xV1 zYFpNGos(UVRAmQvW(y@SDj_TjPg^nS;Lu~PXRbaSzjX_dDD|ZJVC9iyX>GpWGZSoH zoH?jgK%Rpq*cQPG(H>}2hn*eE>IU_$h;_%O!Vf$(sDT5Sn;r}OwjVp7qBzFVK)B|p zma?I}^-`Gan?q?)mDALLgKsW=Qm>>%0){`um1^at`t=TZY;fE!!Q7NRipZcGP92Gb z#Y`mY6gn?k94v21M7o&E8?xt2xRmGHtcCz-_fC*g7TEBIlTI&kvOCt*;amONZeCS# zdQ8|eJ~s2L`zd94C|L!iCWxE^IAtS3BlvX8&{nT&3Z+4NiF5}kHJwdXNeC}lHBalS zbC$;|tQl$R2N`uG%5ovWE&GpgxO5~QNVA%-U3Ds;ylwUM{fcDLi4K;i80qBws``uh zQkiWy#-vWIt2(7wvR@qb%7nDnh?A3U&-MaVG$0w@K_diy-exQeSh4bSE>$fB5;YB1 z4T5gr7Ncqo7G93xQ zNOiWNiR_k^cf`(XIKH`XbrU~?rhHGRTM|8JdSWJ0G09JRzI7QtxF~Uj6~@yXq$=TP z(-C+UQ+!=UmWBPrPip?6={oM<#kl8Gpb{gQsb^_>&`5u3KAnVJH>HE;-sLDX zLr(l_H0l1Ab5}~T0RRNE&>$v5ruhOlb^;K+J(Nx zIt|R1n0|$iW4q`8UI!V=3)Z;GcAuN*6D!0;2!B9zN3}}idU|re4`>}}SfzBMHD`lo z?YfY*6NI(jlM28PJ9VW~jn0r?Zg4#$><8t#iLH3ib_!NR$8GOP6dah&n~U0Y_oW{! zwuqto{ry(Ol42|Sm(iKE_?^I*?JTvpzPHNww(6wUpl>K;3`_4u3y+Rn;H#A_l+?Gr zrQ$>-Jg80WZm95xiJ~9GudH0umbTP;Ny_VY^Uf?#P1e)WJuH3Z5osF<+*SmojnW7| z^?TG9qob%NRk;~=nzXgWQobQ;cnsS~?;S@o6ar^ob-$VP^Gwp8QKKP{z^(t7yw{6> zf)QTjq#!jNh+%TeDAuVgN1FthDmuA|ul0-evV9HF*;?c{i<1Xssak(aP-;j_;+f^Q zf#?^3`%s2+AQaV*0&*X88+2nABm#LRY8ig?cIl94X8T)K8^e)_dm!klJmk4yDHFv0kCX^Hi&4WzwJC!Z*ctIqiCy z;8W0$?w1lT+flZ183>3R88?Hgu!B~y=FWVB5N4&t+W?#)i>dlmeuE#(95iTbY-ae5X!j}so5Zl7A_8E0{4N+AJD^!? z!+ra;S6KG9Nyc{G);8|D2z`G$k{Q3cweu}|0Qy0Z-D5vG^4+`7wJg^??VMIr8u*xS zQg40YkE_hRRuqbZh)sN{;K`l?KGt=(m>{{U1sJcl_L*X32cI%Xf25PY%Wo!?iedcW zr7@79ix01IRf15?`ld`uB1IlFj?#r4O|BkRe@xDnrwf_(%w%gQ`fjJq7f%T; zZef4wmU~=W$99l#cOf1ku5>%~ex~>PJ>HEjw)mB5e=46PkufTz-UVi`_SvK-%pDAn zVu>};F4dkRwFD&@fx@lV;CV~BOtr)Vv@A|5~!!%w^>B12p9dSco6~21S%kVn5iY(pzK|86I6z2Is%Pa zR`YWLysw^1&@jkdz1qKKw3qOh{?qb%StdTp+K${I>4v-nYgjAPX!vU?AgxcGBs+1X zz%c;&{B--CSla!n<@?t(|(mv*4CAivBD0s2D+qyA4+O31D>6BxSD2LdZuXy z;aXKtXougnN0FmLW3YTFuQbrIQQ%YH-1OSYJ|5VwBjM%?HLd#tn&2yMg#8r&-|RZ( zJI=*|RUxkX9gkROAii^W`vu95aQKyo%h0EiPmM`(Cn=T}RsC*5kCo2ndBQxXe*o(Y z=cs6WHGR^bdIFd@!eDZWdMD*TIxCHH+N@nGp3Knb=A0PqiV|=81y(UNW>1uwC_r+; zuJY5Ki~4E?5y399O|=|q254Uk>V%_&*;?FqaHIps+pi>nAF4^KSyAD#!kt9gPHe8P z;g_~{e^t3leV?o1LG~glk*mOQtYpt?j^QTBv>oUm2@A(NC(PGRrqXoBw0KV`f%&0p zhkM(O=iD=owTpS`1v?v`pa(Wah^|XR6n; z+K^F()sndpb12O3F%2Tt%`VwZN=MdJfMAzq#eV5^tY+28Nnezi4^wF_M>%#Vifj@F zHug&42x{x+jl)K)(`OVkJriIYL2`+>WU4F8=>Q4&_tmX<%4~FMguwD7gO@Zlr+3R+ zjwpWffb90s;|)SBC>LH)H2);Hz$3u0|r3{um&QUc2qrPPF7yzA$q#H2e- z&K83kyrt=TB;0w6$db^=f@JmGQfeLHUC9Ko#QWYEH7gH;=kmGIB~V;Opn*-xPWzRI zVO?SDwEI!54xJ;P5gd}?YbOeKjQ199Y;YKUgH|=r&-g`VuC~l}sP(Pr9!&qdm#y;N z51+J0e;F~&nI6%rYt9uD197gfmUVmPTqz)9O>g0&mX3VC`CMGNz^ z7BHm6o#=c$RjJdww25tdvKo~Dm5ws)7z}t^P}y8{&h1adiUg*Cb_0U=6>29`IaV*7 zE~0b-mL{bM&Y0eQ~+=k}87#~EkUupfgqGZ@@B zt66<0u@~Uu*0wdF$zVr-sBf)M2i(a((Ejk6&f2j#NmBXGCCyqt`DLUmVY;Kz&Bn zXK$;8ZHV6DL3|wPcktiChzpUN(I^5Z1V-t7F6~BDAqQ%2@!I4lVaMLZSUjkl_$O{UaFkhP(=i+gqGC|e_IrT`kJ5*PXLrUHS^9oxi9EV* zZ&%RFL@Y`HH*RTDr^VaXYq3&uZ*@PH#a9hAStePxnD>#1yU8_Z+&ud<9V^x~YNGA$ zu3}iChP=trlu@Uh#hjqk?_F(0VOdKGh8jgaz!{w)9NT^pDD?s+QpdYFFP3h~YY%*; zZa)0TT7< zC(Oum)uA*Qlxou~^b6k|m6B&PXvoJAsu%nr`3@<+$Jem&V14XQU}t>E_%T+MVt@}_ zVHo_GjxEut`6A}!Ro8Gb)T%=0M;Qa<1iJWIx6}tq2w-hwrbf&YIJ&Oyq`*|RcxaqE z^+p)lor*tKCDGq{B{{AnZ;!nid=9hhojbSRCNsdNQ_(`O?Zc=&6$%U#@-W$m>avKC z`bNGlZGcGiA2=2~;KQ)NK5Wm??b1t1Q}~W~R(vbev=D{*b$(O`Jgc zyqvy4o6dD9t0guzwI~^I7zd+SzZwIpb$RR#m1PR*0F^J1oe}zsD`poMd%md~oJxZ10sQ4;4_B6-fwo)EVr_~+uMxt2Z%|@{A}l265B_^ zB)X=V31>>N40C8?-g~ALV+Cc&4m#w#`3%iXosZ(5s&3h<^byx*EJ})DU*&DVcup)R zuT`-o+bwwSUsXQ`vsc9TjjZk%(5C4Xm%U`y<(1f_TAd^A8kcfSLP*Gvp-?-;GgG1o=?N@ICo&CXvm_rl)~f759!Pa_Xv_p+kBrOPB25iBKukuYWa)fo zr_?4buS+$zY9S7$iZCFFA3g7Zt6vmXsvyHGibQB9102S94J&8DH~DIhm}YD^1DnFa zC@JxO?wfGm6(m>+RVs&3^H`C&#Zo-|dPf_6O4*LrD?x>bc&9czzeb9eC|naJ0IXnb z;renVg$JOxrkKRIK?=Md&Rw~$S*)l~=`kK)Gmq%$=;-3!lY10}mY=+UqP^q}@J*&N zWNX;GX0S`^5y2`c#=quCH;#_?B@@ZFGCF90+Et^;T28?BW5>UHf&j7BHa6?ZAHtec`#$; zF#o6HMJ~Gx8zuYlndx(jm4{Mu1BKzoMuR%-YiL0G6jVG3@Rd0@Z6R( zMf>LN2+I)FvXm^Alm;f2anott`z0($E+gJn3v^?XB?t`h0vFWjb8z(^cwYmpZS&ePOIwp|VTKsfHyVWEmBctD08E4R3 zwUJ%tQ-HH3yllw(oxy@5GyG^W_@11XUPN=(~sT zh2UXmwQu_r?D=N4w{KuA?_7WB!D=(ZuM&>OniELehGR#Dx9mD;f2An6_5=aPYY)eX zFF`QA6W5M9Omsk)w^?@WBJ*>3QxY$na3mB;J1UU7SxFgGMw@9JT&fsOY#ICJs#8$q zv}Y!l2~Aa$zDvI3xM*nVI^;xp-%DCZtw<=!a0p$%4GMDhc zU7qR&=8?M^_QUW}gyy4~5yx_4EEj$LFdvy*KlkwNex==onb=rLBrwl$l`{fcQC|?Z z%x+!p*km2 z(kk%8*iWps)pM}U4{^p@wz*cwlqTn0T=|%jcpV)L3Ga8c#y^g}e$pWgZRPL?9NG}_ zjBzd*yypTnHq)|Q?JBBALA_ATwCOAfYYL9y-Bm^{T&afvG4WwK3!hw(Ppd1;c`n~S zV{wYTQ0rS@C_{J_Pg&Q=c#IXa5pC#!_%qq&b@bm>U%{qgIG08rzlQ*YLMPkBVjDu$ zhd{go@ypW&Jzx`WvLbSg?2WQvmm6{*@@fX%WJd#QdGjAW zd@t4b<;GMlJ-BTyGib>6m*^^-Bd-0(A+^>xL=88%`Q|CogEl2kBY)cretof1B0II&iEA|}L_xrUPIVax6 ztShVdTDZj|C}B?$?!Kg-b?;Pn#!`A6_NcZLfQeBOUPHOjKP#AvZjD12i zf7DIIW~M;4(}>GZRDY<`VJc9zu%OT;lbUlCY0Sl;?*p3W_YhVe8&&GjwO_%-7X|1h zrZ2q<;Nc&)&ZOp(vzd$pTDk8abEQh6hLW#o1VMZZb0qwI)jH}bfNh6uzqn60-9~2? z!1M{g`t&1p%;YvkVzK`j)@X1sp{$aK$pjACJ-gLeU;ebDP!#vuTLh@~(vNeW2Un_Oe2dk3 zX60ZE(tZ{cZ$9$W(Pkh&>FAKN(rC^_CcL?~>##7}!zj((KjPd56K(JaZaj23L+}1V zCDM#hSS`Oh3X|A5lL?ghK_&e+olS3At7zyxy3818(V5>UI>jTHh?+3Id7}Av8gmt1 z!`4n7IAIQ9IfCM^uRJ>mV>c{H1e(ES&ULk3)veC2_JPuPsCzn=P4cjS*~G!t4}mv5 z6@f)1hAAwt`tTg7%b5d>`-?Gt-ttJp8}T|-O8&Sgrr7s;)Kh#g3>AXFZuHEPA_Iz6 z*aG>k#qenE{2<};i<>HfVfiQDw%O4UYS&OIvtDBxdN#ju^lg+yw|@wMs@kmdsL$ov z^y|W2arq_i>PU~;c?a9r6n*na-Kv4OCl#bq*>czd_YLn*maLovx$G+CZkfqas`CN?O>sXzUE^xBH9N96@EWPeG+Ewx#LPrjXkr{}O5M_%Nt z#6zTxW&UF05D^Nw!O1$o&BH94xM@;28IK1o!Hf8)hG$pc4ooA_=C)--;2aVTk7!3N z_7kYwS->fAth855Ls~xlD#>f>@k$+*85P%FNZ1?v8oFke>}=<~gvd}CS)Y}TVNd)4 zK+m6zD8=p=UpEX;wv#KTJhKZMBv%Wm&%bG(Z(UNqJhd7dK-b+PB-1xsD!Yb# zRbhWYFZTpW{{YA7_8Qg!Bc5XEn3n`gNnTx?5i!}1nv3;>8 ztkPYYuMJ%g)l4=+*IhS%Yw`1GmcOsf8XSdhx`KunnkkjKB2ZAx!I{bma9c?sQGJ zpa<&l%N-P6UOAIMet9jkum$DCjX(S($z(m{MB_f%jj5u+fE5X5-J%>?zqOqJJQ5}5 zW%2O5ZOg#;DnO!dlgf5JFIJc&^97FHTDPT5GeB2KRJPy~8V5>?C@t5#)QR=sHd`)m0KdEJTS#v;wo=t6a%;*9c&w zNkv5-yjI^WAS}MmS9}Ort@y)M>$YFOYG2BkdmbM4EWilj!hsdxu@By{!LEs$=m(Q@ zJ27XW0RJ(GF2pfY7foedo_-!d9Y1Mry%7AUja z!k8?IvV|pBitX?%$@Ga74IeW|wO|73{MKCD1iclH6_`27`J6+d(@z3BdO6&uqGP#D zy|*tz5;)?0=g_41l{;HZA|u0h}&OOQ)bkGNS7eG1%u%t8_xrRUopZmE9GYJ zzi47LT0T0#)#n;_;+aH=lqW1Xmt*;(A>W&>gQV&>AZk8=xp9Lzt6`;9>xsg_*=8e6 zQ&?c~VpwR0+i1ZpO|Oun2VtIj__(LF`f3M9$#JQ3`3EEV53_F2QQV|V)Q&X7r5K_) ze?nTOg$#`u!+3=*Gu3$`%S0+>%n@us*>b`p>9PqWMSSv&j_|F7F*L)QC;^W~-9R&& zei#I-Ovu{D^B;53pUVQf45$qt#~t~Y+P~B?G*nJ@2IZM65lWdnZqFt*Vn%<`uH?`Z z>|m%CNJ7N@x{0HhBW~TBrB6<#WLnI_JX=f9pIxDB!u8g=N?+g z(R7sY2_X%O&DAbQixoPir|~DnCXXTL!Z#XaTIZi~N)NyOeEWsK{_PJ-Fst`u6(Y2; zk5c@TZ>3{d+GzNFL%>!~AM9aO1lU^wkBue3HG>jsLXGzXe~9rjecoTj(ZY(r1)hO} zNVHi?rJ8J`TudH<=#<$Cvdc|CJ<{bVUxUS95If@F)=-6}eZJ-)R9NRQ8AE3ki{EA) zaP88eAo~Z1P|3y!n71WC>b{K{p73#T-)CC*n#DrAwR}pET}?^Mczl24M>#Q5)b9sf0bS21t+I;KDHxgAsEtI(d<8!T?a!ASp}BAZ5{(D&G$-Gx{-m%%7SBuL=xR1_Uz1DDQ8p`cn`%=J26*#Rs8k`%NnIFYrXK~OtcA>>1fTa zcf*%QwP+eEt+DYM{{%kJwMs9PNEY+N;KxwV)^fWo{5Kw6cWf)M*(aG&vV1SnFnyRVzV5*)hs<4h2a=U1#D0ob0`t=WUh@zHrGxC;gU_uzb@@`ONKsos=g~6$ z52}tW*;C7ec#O|#TzEl#`IHwH3{gBK3jVW5hhuau!s`&!1<1tTXKZe1#D)1H7TKNN zkVK**3ZPNln3fH?5RJ0KveytQy3IW~=8T(ED;8hF}xbdCs z#NW4koJ~zHqwEY(J}PMc3e3VM_#i#*o*5Z7Nuo}(A~)!J6R)8cRPHY<{@IdlH^$fW z`1pBhq2hUB*3*Mi8&NH7NJ6PHT3NEC&U+6&n!p^Et_q-#&t^S}*E)1I| zl8eXb)sAv9TSc-xkYAao(L$sc?P0C-+ zq@xh!&%?QfAM)nyRr@UktW;gQh~vFr26_~l{UcnA%*zs%a8c*>@`XMLVBi$W!!On< zM*+e{>)KWQj^0FJg!E`SUsJ{@yy*^K4ypaT?Gy?n#}ZA0VWpEw>2HBt{C7~;;x?6r zFhg_m zJO^g6ursDUmO$aT#v9jkQ3AXKGnYib@>3z^|Jx8jVYi29k;R6Qf)N~jPygaY zF#j)xNSU_{5qISoe^}y2a82+g!s;eQGdM zRWxZsB@I%B)x+M!lm1y#Fw-dy;fvCw$}VPD3xwVXyu;r95FMJc;y5I)}C2;d;$PRu*2c+!7r?G)dOae?1@YO_Ym38=r zN&sPI(q^9`99AaoURzPIvVkVg!|YbM&3GE zm41qVRV~gnGr4FwsU*ArQ&bo9s6-{O1**}58FNd-z{9&@;!V z0vj6_kYv3GI1Dx`@I5N&u1}V6AMq`p=2P{e7nsmrIXL_ji%7MXldd5P znl_)Sfka;c6UpS=&JT@Lz@+Ig*4r3vQ^76*GM7>DA`gdyr8k|c4M;SLbSm^Y+|!Eq z9^#FFU#GR3#)TN|!?5YA0wdv<#n;PRX;Z&P4m=FU>J4me&JPQ zDufQ62=HIK_>pD_iv-&m&laR4_YTr96hEx&z^+GGH5W_v*8UnEj&?ODX|Rv-d#%l5 zv@U2x?D}Og--0^p;+V47^>KqP_GY^%@pH~l(g%&EV(ISu*N_hm$|&n7y%5GM$$zEH zt>IAh+BCVnCa8*1V$7fck4%!ZH|T@Aj;jFp1a2EMZVO!!b`<%5g<|t`WA3+qkLch;QH>Jh1}CPx@mr!V zaJYumvY42X)Z@rv*`*NNX-iI!z|p;luIcfDyn)+yt?MIPa9_yRrB;E5iSoAx)adIS10mwyPC{i2lP|NhwdR*8(8N>78|85Lo8kadeM?9bJ;`NI8 zC4jK64+u1anFcu3?9qRbU{Q^Z&UBH-rHC6rG}FbQ%(^dCIcN`!A>?S@h9*|$`K4D$^rfQ0OMD|asHY7a#AaRYTKtK0Oy_Go-aBxE>xWc#eU2}n+7RpCg| z$^|YOlLlKS+B|Ltx5KnoSd2UYzJ&5pe~#e-BUvq}7_8+>nW_B`(|Guo&Bw5~F-JQN zCx|^q4-a*1!WtV6kJLSB;%Hj#w~SY5)#lAbvM|ijTTHuh-%={u2Fr?t`l|dGy7q~@ zh0dyDsss#39WM88eTm%+eX!uu{~GMnroK|Q!K2apS~~vIP)oE*<2xxEV2>FrzXXT4 zh6L=_7+!;2cU2;P%UP;hX)9u|Bab~85ut>05aX>Uqnt@Chr@$+2I7^->V z*GoVxr6S!Wq|c+FijxIpM)vATC2>cKO%3HvNo+e$91r?CAP2NDlz zv1y(u#^kJJ{_)YoI{4h57fyxgTTaY~JJ(!L>`b_{H$gX|zb`*AhXD=P0lqFJDh;VN zdHx*3S7~Bnp|O#Qf@H+LaMJx`RBKSI7CdS6{Vv+_YR{jQ0k8Pp@WVmpL%Ti0;8VrZ zM0F;EWC!l(@jc5?!Q?n_#`rdQ_tF@Dqwma$CVo@zCLfp@;;uv~OfsJkJt_IB=LM%! zf_>-4Q>T$$VokPG8P5w#`d!p+&DNXhb2Ys>O6El z+yUR=z_%-&p>UvVQfJUraVRf}va^2_uJ|2kuAo}ed$dUNiEIVX@ zSazbFW`}r>d^Ouvpg}92o+4}3;nrL|pLKUiM6G=f$4bDr#(t#@F zBtTj~_A%DIeb)ca*`s_N)>q}VEe=4@!P|geh6_L}xXA#0$)Y={7qNic_bmkYN@^im zP5)m0yaG-$JZ}<$r+%_UzeJm$Xo5taz>H#}t+&X3xB>DZSL}|q?t{Yca@*#g-BSj$ zRBph@oMRB_<(6~||1mtU)$twcesowL{26#i>K^;9T}(1m7v%kfxBZG$t`nu{v4-h0 z6&@5N6rDji^V~)b)CCnx`Uj;2^U+}F=LEtr^T6jiY&3_94@#e ziS#NWj~8}o7@K^}TE~os$OMZ++uWtxsQe?ZD|8+GW39#L%RR*l1GTo$KhBP*wwe^O z-XpMb5iJbOnI9CQ%||Q@O6_U8|51RudSgD7SVAWPk+B3=Tgm=F*ViLe&P9U7a5NS@ z2)L{X=3;22JUA25-xsap6KFplT_$0-;TJODTQ@`OtSC-(u`s`*bh`{}1yR={pS#LE zT<=RCT~qlXxN+jjA#TrJDk8_)9UaRkM-e#&(=126JHhu0(}D25lhY8-tJ3!XuyKw2 zXeUo+tNzKaM^v7Zd*m*zXPqKxrylxWMwlkhPXK#ewNv5XCko{?^KkohiMRBQ5B5e; ze);sK4%Z7h)2!Wh-4$QH)}(sfi~p6Sv;b6vS*TAM7R4c-Z?qV=o31*HqojmA%b0&A zXPSa;Cd*d~qQgGklqPV-fsWck4MzB;8BJi56DO%2WzlouLbl}hEtQ_t6XDYS3=HSQ z>XT}A5hqzZr0$(E@f&o#5L3KTv)rI)BOQf`cnq*ib+(FISP<4b1aq;Id2sx2JK0z* zT&1r`s4X4f+reWoWV4+H)L;?z77PyPfg{w8F2b%K{g;m;%6csQm{m)V=i-q?9EZIu z;&)|Cb&LgF0p0s??4xri4n1VJ=C~E)1=~&DW@#Z^=aTm?iYS|B=_E*{RTJr@0K-Sn zG>ATv{}vNo12LEjqpm9b?7h~MTR9ts&Z&sy!xM|myB4N7)Z(|q>T!HE1QSp7L<2N? z9-`eFJkWgxi5MZgo~Y6JFsq!{kTo)qzLW=Qs9TQ-?~@)zMl&-M=zlxF{I?c+SmT_| zEpv&XfaC5)Xinx}1Bgj*?p~MFlL$FWOTzZl4|ucnQ+c9SP5d4|Nw{GB@BTxE%sI;{=rEm)ySmJ^K)6LxbAYp>N zd#)4~(P23{)d_b`iYz_NJ40|Bb@StNi-vOyeW*bG zxb_h{;<}&W#mvyQBkN~ld+7@c-|_O*>o7nzK*WM|CR}1EfM6$XZRp8XS+VF6v@#vr z%i8=~s(sQEJBv)FY5afS3%m;cYv&laPiPKy9!c!prZ?^8g5l4W&OO63?tR;(?N8C# z&)l7r^kGcXmH{OZ*Vn(=t$K((Y@W{X=^qcMqJ65jxK2fH5Z%&ULHu=#F`uw@;vs`f z8H8|gO|#aNNSK3Zlb&Gj-Q8~GCID(fapjp3`ivuktHsBJQY8CNw-j(9{?!zLo~@I9 zyfLLJWL4nwiM1g71Q8A+L7!y3l}=sU#Xrk@n&z>sk;F<;z2T)q9&-k!(5U?7r5l8K zPiq7xBz)G9wQoZTOK_k%2tX6-F9)I3f8^O#;Q}qlT%+&R_i!>`(n)c$-COKx#QOmS ztc~tBFShDE7V+U3R!>ox0P$^0;1SLJWmy}u={OtGOSU=Q1%VT9v^I>4)H%rd2PZ73 zJUpls-Rqn`3DZm)ZUQRa!ahK^&Jh#c^hVx%wX)^vcF8*e} zQB8+_x5)PanT=oracLJoq8{%p$*sXNl;OL>X{oT*_Uz9~QY$7Vu+nC__fX&*M>o(d zgwYH2Gy}O&j^dKLcY8^&J+8G2tQ!%OewlF9m*b=>b>lsqW^0~R`S)H?dD&=b8sv=Z zJS;xYJwkhbrrnvp#=ykJnYaS|xTu%2kh>ivI!X9uJ@mkZ_HnTPX7^Cusp|jUI%@^N zqGr@;`Qz3T+y2QFW0!o=;`C1VYMuQ0tgBnf%YJ{63b)5${ZX2Z;eOc?2XF4`i_SA| z;7T}cNDt)_N<&T3ydE!*FCWB>ZpzoiFZ9~nUx=a{%~l8dO0?sRkhB$Tv5TH8Y96Ul2AFUz5c2sOb?KQJhn{1qziKv2Bdq;*sar^&FI?) zEhMELRg7{>P#~oK{?|=maFM|crb`OXjHXYdF}_L!2==v9s-WW@#0Xv#Zbxhty>x`#sQR}kXs^WdCs!;cJMad= z38RR3qN|%a)S$`AY4ZAM+^(g#FFyPIuni5Dfw&;H++jx5 z*?VMUCvK(Q!7s4*uXFN9Oh4BKqXHnucp^G>bn#6Srxj~HLjSZMt@k4`V#NRCarbU! z;3mH*A-7>#K$(|tTm2KYo^0zec>&-SF7X$wTN?JaJu(3MJ=tRVIoXsMUqnN8$R9?f zw|f?K)+N(rq1U&kfOR|-?i$oAWiPZ4>sdX#$Bl(eqkD2LR(SlCs8;blhc3M)Szp?g)}>&rp|M!&$Yrb6YNLc*)U@DnHn^&QEv6n&v=tjx{rV{gKfqnW~s^do+_+k<|I9R8I z`O{Cj!X?p)81}rY!=#`o;=}zg6$vE_99y|A2HPTXPH3lajoa2HpBH9+Yj?XSoKV&b$j-EO~&iX6ycTM=E-KyX3nXs~Hy~0!>Z@%X?A)o8scni zs%#|KI&jtrt>PfP^HI~)_9umf0^F^FdGAVuP( z-3a)c!u*S?@)>jOdr|7#LENW)4ZHxb8y5F>T(qz-spVH$0z)>YFR!_HE_THymUWnEK-pLsamZbn^$n9HJ%Sg!5XN*V_7)*s8}?00m8dk8OAL+udhN2avMrte1F5{J22MC`U9CpF-B#N_6i0$(Z=_0{^Du3 z(rajcWOBp?)gvlZ!rvk%Sxk|up6I|GC)vdHknI9#j-$(_LTr^f?|;`r-(Ah|(QxXoPZWEPjVaPCk#qeb?E7gF=UjR`sr-FU_(p#h z9dGr0Qx=XuUA7C^9Lry1RqcI5xDD?e#q9bOny=cFE;5H)RFIE!KjJo$OYEJa@Q=6w zc$5Z5y|fq98bv2N?s2&?fhnvzsX*R?Ow;bBFLC}b>UT#eLX zDNw;yocpa$X#aD175qaiKmRMM$#P1d+wwHqoo20e*ep2-HjR|4_U(jA2S!f5@QZFr z25Ra9h-)OM>I$!kGZgCa55aYJDF>3Y!o1z&eHqmdexvWYPAH*bbd;NS%n>9d$O9X) zD~qlEehJcF%F@nH==g6-Sa(Gr+206>ze<^B8Oml|az?|Apz{HnjPkS^>Xi~n*sL-y zz;fp3!YZ|fn@K3%2$Ad^B)mdl(eY4u!Vs6EY&zsjC~*Z8;%ra6V$n*%q}m?1gDuTj zLE2MLse0sS4=BN$$EqU~pdCj4mvH2$Mda8xlRFA)Jt)_m+_UdUrz)bJHpErxX{ki5 LpG`Ottk=MR`F=Nx diff --git a/doc/check-certificates.md b/doc/check-certificates.md index a9426db..b8fece0 100644 --- a/doc/check-certificates.md +++ b/doc/check-certificates.md @@ -19,9 +19,10 @@ Description This script tries to download and renew certificates, then notifies about certificates that are still about to expire. -### Sample notification +### Sample notifications -![check-certificates notification](check-certificates.d/notification.avif) +![check-certificates notification warning](check-certificates.d/notification-01-warn.avif) +![check-certificates notification renew](check-certificates.d/notification-02-renew.avif) Requirements and installation ----------------------------- From 5dbd419d1a4a938a730a62970a026a85fe47a110 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:38:05 +0100 Subject: [PATCH 139/152] doc/check-health: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/check-health.d/notification-01-cpu-utilization-high.avif ----- >8 ----- [rsc] đŸ§Žī¸đŸ“ˆī¸ Health warning: CPU utilization The average CPU utilization on rsc is at 79%! ----- >8 ----- doc/check-health.d/notification-02-cpu-utilization-ok.avif ----- >8 ----- [rsc] đŸ§Žī¸đŸ“‰ī¸ Health recovery: CPU utilization The average CPU utilization on rsc decreased to 64%. ----- >8 ----- doc/check-health.d/notification-03-ram-utilization-high.avif ----- >8 ----- [rsc] đŸ—ƒī¸đŸ“ˆī¸ Health warning: RAM utilization The RAM utilization on rsc is at 88%! total: 64.0MiB used: 56.7MiB free: 7.25MiB ----- >8 ----- doc/check-health.d/notification-04-ram-utilization-ok.avif ----- >8 ----- [rsc] đŸ—ƒī¸đŸ“‰ī¸ Health recovery: RAM utilization The RAM utilization on rsc decreased to 75%. ----- >8 ----- doc/check-health.d/notification-05-voltage.avif ----- >8 ----- [rsc] âšĄī¸đŸ“‰ī¸ Health warning: voltage The voltage on rsc jumped more than 10%. old value: 23.8V new value: 16.2V ----- >8 ----- doc/check-health.d/notification-06-temperature-high.avif ----- >8 ----- [rsc] đŸ”Ĩī¸ Health warning: cpu-temperature The cpu-temperature on rsc is above threshold: 74°C ----- >8 ----- doc/check-health.d/notification-07-temperature-ok.avif ----- >8 ----- [rsc] âœ…ī¸ Health recovery: cpu-temperature The cpu-temperature on rsc dropped below threshold: 64°C ----- >8 ----- doc/check-health.d/notification-08-state-fail.avif ----- >8 ----- [rsc] âŒī¸ Health warning: psu2-state The device 'psu2-state' on rsc failed! ----- >8 ----- doc/check-health.d/notification-09-state-ok.avif ----- >8 ----- [rsc] âœ…ī¸ Health recovery: psu2-state The device 'psu2-state' on rsc recovered! ----- >8 ----- --- .../notification-01-cpu-utilization-high.avif | Bin 6481 -> 3680 bytes .../notification-02-cpu-utilization-ok.avif | Bin 6797 -> 3988 bytes .../notification-03-ram-utilization-high.avif | Bin 7527 -> 4253 bytes .../notification-04-ram-utilization-ok.avif | Bin 6637 -> 3703 bytes .../notification-05-voltage.avif | Bin 3829 -> 3883 bytes .../notification-06-temperature-high.avif | Bin 3519 -> 3659 bytes .../notification-07-temperature-ok.avif | Bin 3727 -> 3839 bytes .../notification-08-state-fail.avif | Bin 3474 -> 3142 bytes .../notification-09-state-ok.avif | Bin 3531 -> 3266 bytes 9 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/check-health.d/notification-01-cpu-utilization-high.avif b/doc/check-health.d/notification-01-cpu-utilization-high.avif index 326e7feddb23d52c83f43050e15bb75f29b6c6c5..7fbce3ceb0041bf5606cba307c143ebd46ee4386 100644 GIT binary patch delta 3534 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 ILtHYMQ1-#8O#lD@ literal 6481 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 A>;M1& diff --git a/doc/check-health.d/notification-02-cpu-utilization-ok.avif b/doc/check-health.d/notification-02-cpu-utilization-ok.avif index 811ccd700714ce29abe0bea3076ad0fe87c6f45f..f8e91a3a21a8f528be3a27ce56e2c8f2f172f4e2 100644 GIT binary patch delta 3845 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 HO8Ng~2uSB}2Y>&( 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 diff --git a/doc/check-health.d/notification-03-ram-utilization-high.avif b/doc/check-health.d/notification-03-ram-utilization-high.avif index 59155c563e96f10d48e4116d034cc5cb7840d51d..9015b4a318625c71b066b4aac1e806dd23089739 100644 GIT binary patch delta 4112 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 diff --git a/doc/check-health.d/notification-04-ram-utilization-ok.avif b/doc/check-health.d/notification-04-ram-utilization-ok.avif index d995b9a198bf3de91e117781f89535c6f048f343..8f949ecf50cfe77f8ec077962d31c4715f70705f 100644 GIT binary patch delta 3558 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 BDh~hv delta 3629 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 diff --git a/doc/check-health.d/notification-07-temperature-ok.avif b/doc/check-health.d/notification-07-temperature-ok.avif index 4afed02da806b192859d23f3731281d50ca209a8..8f509e8d8f702695e30baa9f7af40eb33100b789 100644 GIT binary patch delta 3638 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 IzJQm)Fn6N^SpWb4 delta 3526 zcmV;%4LS1v9giK5BMtIxWprTx00000001bFFdPSLX<}h^X=ag3C zzN*Sz|HLjeZ}EgkIyt0bSK2}o5wc5U>5nmAAO&i@MVZc<1nz9&tHaA^fEx=e`hu5w zHc$k4a5w!+uXnE1rg7qk3uzmpQ~T0x7+bYM34jm;2XX^9acV8TU$p$p#ioq!0ZHk9 z%}Smq`PYqR(Snm;z&(X(T3?Dv2sT=(r4wz-$2@d;6g6{iO4b^pK#IFuCqaUgoo>9Y z`H1}zcb9mNDS%8Pu*)P=LtSx91dNOv!5=WmfT#NtZrAKFtp%^1mZ%MnjIaKF6x)2s znDUN!_)r&t7HTjz;T7wkb2Zd+1k|8^cx$v`T&Lb~( zWGy!$4wq3Ik`tA)e+_N(TK45lrx~kVp$xgfYl?Q;yT9kkF{7`DH_I{y`vrr84p4$= z)%&I{VqQ0t&*Mi5TH>ac+_5kGL#py9Q!vNr~6=qlFIK}FWu?vD*J4}c#M?a zj-kg(%%LJxsq22!9h3YXDr`EXFwIyRSt4#DqKC1i09u`~e>0{-@AfVZGKrk1chG;V zISPzOF}!>)?2p@@MDYrHEH?#z!$hx7ZiU1qGI^k*(i!nRF)$JL(N0hClE29KtU)a9 z5pozeAjIy>2|8G5pKbGjbleVdH};@;&F#qWa0yPh-&N+HLN&zTcN^QbtV5^VcY}M< zN4x*NVCOE1ut^$e6MOUW4RxHEzg-IHgAm~Bmvh%BdZWB`1nv?&4IE~FjT5i%&2&&! zT=aGtNSnt-lG?d>xsR0> z@N{te6-xJDHdaWkv?)@5xilqQ1Mz0_d0xAVIp+VJE%Rl#NlptYLHH*ikkcGo5V|B1 z#ZnsQZ8Kll@SAXWJA1P)0{}Y?*9Fr~IcFGH1`z^3W4l5BtR%xeNe7Fae$#-JWhVbv z0pSdBjRl|2bnZo96eEs>C}+P(5OwP|{$l1zCD=ur9r_=~_A_azl7 zpyE3gwk@FGgg425BhiTPleQwP?NFi29U{Xb70gLr*n^+wI}Mf>}i)M!3u%=9rc_`3RhggNGL_5Sm+@45L+(Qjt_ZgAdrHYyM2*F!l7b_ zn~>*ZiP6-?KXtTLQKGNN(r@z13%&(Y7&?t4rqoFi$Rci@=_J30k|GSh-1>vv8@PKw z$2bNA*l0>;rfFII&4OQ^`KeG#zl-T6l9aesbEw#Vu#h$Yw14xNZ8|r;jM}b=ItW22 zcSorX%ni}CP#lCrU+56i>9*+#{m79)9hBgAX6ROLe=yYd_9XtUwgTUskS3NXmQ7iy z5UH9NiW`eYk8~oBhqQF>?%cjcbT&l- z7_8%eibINzCb7}sk6%qNz8!33O#gEtbPqpUk-hIg6t}w!9>Otc`|zDo6;n7N%@=6`hKy%2SImgD&{3n@gwB7gtif+ex-zkz*-ZB7ZEu8=Pyz<;0OMsCK;RRNKzD zIyBlC+4BBItpk*=Di)^NuLyao0ek8r)t?D}uakiAj_JrvOoH(PKD-?CK|jQY)|;*K zf(WVt`JWszN)ShQwNS+39U#)(p8;G1ey)TxGtt#kZG$DSy>X1a&>^5`ZATtFcFF&v z+(??f#5Vraw}z5g_B05ZcU3qwYVN|rvnn5*Z$&gKoTS|lmyycxI=QSLZuE9q2B$rL z4+ren?oD!g7RXQ<7#+K?W<+~2mB1?gA{mw7H?dRZPWbWrl2F8x41t|5LZ8=u z_e^P>yvZIxXGF0fl#9^VpjCOvOhpoh>ZT++uP!K1E7OXeYcnGJb8Ml0TwWG`jxOq| zvX*kt?b`A1CZqKfC=YOYU4}w*c#P0K(X6uH$&p7L*Sn3xFRDArqKO`9G~gW{f>n+3 z7HdUAmlarhaQrD1*!mZZ1@bRc9O{SP(jjQj$nCbo4#Du2*{Z?4IAlovZnJD5a!bK! zu6%eHelqCy>H;kg+{Ln;MTI?oX@-l*{F=4rvt2WotDiH(wr#JH~J8)4d!(vurW+w%~;x$|! z{3|;rRS~%%#bk$0Yx*jy&3TCJa`2X-^YOb6tA8eb#+X9;yRB)NrrM)lJb^%cb|oa-zS_ilRAw z{}8s$9tYBD*t#mB2jXNMfb85jgN*)gqKz2u@5y2Sd~cPenfD8fEW8aKz4{&w>Uj5f zzY=0h&4;y?3<&?_f>u?39$UY`modR2^}e}uZ(C{j#|*$Z;%lVy(vBK~U0_Voj}0zU z9~IbdVL(dk^WNqqdzhdn)caBRY=QHM(K43%-!=g0*n_sn7bxE-USVM-VA{L)r)e*) zv)Z@JNGC_TJxqD#JB-NKs|@e4N<0YyJyd<&;+#m%nkchqIB*Mpm$!a8v!fvc^hi5pRG?qmrfy zUZ+2mF31jGD_Upf6AGBo0}^^5km1BuxQ;F9j(JHFoF$FI(M6?=Bj_pSKwm37b+^V4 z%_njkiU7(_u2=!M)5Y4<0hjl!-Gx(;wZT<4;38KiNd$y{5w?Gpv2_ERU~IXiRk4=h zl__g^)GnN*%gxNzd}SJ9_pO5=^%HL1C^i@=-j>L1&<67e=?qSFst zP2%l<{+n!pnBuT@%;E-bET9GIflaYWn?5QAfsmj;I`!j<`&RL4G>voWkE%3j^XvUc zGBZLi0(~ieDEMb3&|6)A+|gX_ipTElhHb(gTkl1yzzmXTLv%aT2tXe59|a=<#z{5n zn?EzQuK*?o()af)w!gw*Jkjp*ZS*P3f8HA)+|x7v|KI(EO7ay?8}OpXuHUBPag;yi zdhwz&)S4TtJb;GmKF|I-8Li4DHm1}3YCZ+ulseIW?G;=L&+fnh?k*}SN_d*h*R3Kg z2Z=6N4`+u5ifg3NO)bkY78OH)tq|reOI1Y0Qz0ZfRbMv6`)S2{)Wdr>Z8BqP#BW$F zy>9|hYO~Yl_%aRl7f(d`UnF=RU35LHH?mc=%h>rB7fHeSb9Ixs*mF_&H5~xThZBop z#Fa;XDYUCiy}+fL5s8U+{7gln$a=2wrLr>7a|muX_o& zbeO4yJw}*!<_o;F`G6ydh;2Hzb_xUU!{~fvjU<5|)IY_&;;}32UIU&^+CU>5zS?fG zIt-=4Geo26Ig=9jrmUXw5ZbbRH2kSa*<^MV1#`Scw)T07^D^9S|3uIY$|hhw5Ql@e A-T(jq diff --git a/doc/check-health.d/notification-08-state-fail.avif b/doc/check-health.d/notification-08-state-fail.avif index ad049ac8b2c29635a4344a33be929dead82c1ae8..8ba7bb972b7eb6388630d2b711071cdfa0debdb0 100644 GIT binary patch delta 2936 zcmV-;3y1WQ8^#!rBMs|qWprTx00000001G8FdUInCB{#$} zskEz#P?g)AvHY997&OX$JGuaWdzV19`I&Bd4G6Pnq4cKonq?jCYALl2v-UkgfF&Z| zz)ND?Hf@oTn9DM1&0tN`)v0@!!M~4gPC5DTot3A zyYIm{%&~$&{4y)ZymUh7jxG4}V_0FlICL)rfpd$BGf~4G0lx0WLP*4aU6IWsc|%wt zLc{ar9gTojQ`I$uIj3uVLB|Yw8c5sxCIwYhpBx_KM5hb!9U85V-<8Io+c}lr_lN}T zbs^)>(TCEz^b$=h6*>@`q*a(*Y9tkcwCyeYR=>R`@K(DO&R+$g0{iN;!r;$?pD^_( z9mcEFn9j!@010ejru-L-^e zM9_My5Tc?t=T>Ut%g{dbxyt`lER#`SpLS1Zw}Svopj0YKsC__yAwJ_*XlnkaI)P&v`);3Z0wd7Rzdma z<`cdGI!KM;E7!Jv^7&e$SH_85z6v3}r&doEnvWt}OfOJYN)OWziw@zx5B8gFx1CJ+7#O&<*WS5_zAi;(CT-PwwJE4jJ{(7K9L|jt z!90A^AKns;`Xkra-RmlhM=u~kx8(UVpUY?pgTo~U+EjvPJBs|PwI#BI}=nefsY1ckekX?D2~f7M=9TT z0ba{ER_URY>MZeD{!OC~Pq!zhm%EXALRv-)F392>dPPrhLL*e!ck!8ZyC#A9*^Bqr zk0^MWD1@<}loqY*bFh=n3nT8G)eWlt z_82SMephD zuH^hS`v{Vn#xcN}lsAbg(iWBv*47dwMqtN(Ov4Php+9tN1?%LT@?l9D$10FEjE`4> zNuYf#)gY5a0dL*uw`jT6+|)y~OCRx;Xcy`lv3QHmm?5Neg1_|l!q<0BSuODfD zU1$0dNMey90rwwmc=D+dYF~W&B7o-RKw-lqafG!-M)6ckylb8?P>N=^&M-T@zf5d) zyWP{)btUU^?tPjtcVw*;#BEB~S0VqE-bChMlTq<5?A$7>LciN)N1g}YU&AT|v|8H* zR#9#kZbv#uqQ0!wC{x{SA)k-eed6SQoYe`jqw;IZ< zGjFFjq1-2jf*}5=T|#Y~Y1;UTSt95m=_)`n`#bNFjS}}6;(!B3^Ir^-QusWd!e5H0 zv253OjQZTTzm{W-CPPGq%afD^=hmrf!q8IK7@`TKXd7OgZM0g=lh?Ah;*h7^{YlU$ zqvCUrR-Q1o2-|8jqmRXE=zj-)q-X*E_yE*Fu8Lrk?>(-mkKU?t&;;>_-9pVWTZixe>PrfS2QT=t!>Oi1k0le93jF3eEUa{Yg?T|JMrQ0m zJoc3Bm|64=2Z?NY`~=dUy|wzjS~_aHgo_j1C+e8be|m13dR~z=+s^6v;ksp4GP{N@!lSNiuvo;sg9i7yW2^&higgFYr=|&XcJzs!&SBsZ zoP3Ky0-r=!VSoSjl?^y_+4s?ap&BowJ}wMXp!@5Lamh>(;{FeR;`7G^y?u~n52n%u zeexXGN_T4Zu~frqrwu{8$*hQ7m39nY$S;36Sn$7Yb?==fnVlbI=6kKNzDca{VMXy( zt{(Os$Wn~sm*||H+3ND>4+?IpG}^g1S=@n2_C-@ z&o4S)JtVte}u6X#xe@Iv!1v?`M;PY!GcrEk=Wx(P}NUVXJ_-A zge&46gep69RpiS!P1287NK2JGRe|Vm)Q>t@@y0orG+_RVTRJF-M%_fp-x5e?w9#-P z5foQC;w4@Gj#3jA>#Sgcn&BAMx1Rbsxi;` z$R4z&=tbS>t637v!YYSD5b-kslIwhd5YAMt-a@Kh3n=ZXvpbizw#3IemcxU(9fQJ~ zhaAo-5TkE>{lj{lc*khO4LU46{Az+v!_*96;QF$@9O`|lfV%%3xw+{~vxq?^)vOpq zkfkC|5W3P?(|mpN737DQL5K}=H!cn|PCHZ!O3GCMIB?qmw*&{sWS9A@ZdHcTrkJ70 iI{sXQ+I<&VG*dH^(09KeO;0vsHP<$^ssw*{i?T2kq_8^x delta 3272 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 L8cPa&?^OSQ-HJ!q From 3926d1207098633cdd2a30d597c8fe2af350825b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:38:53 +0100 Subject: [PATCH 140/152] doc/check-lte-firmware-upgrade: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/check-lte-firmware-upgrade.d/notification.avif ----- >8 ----- [rsc] âœ¨ī¸ LTE firmware upgrade A new firmware version 16121.1034.00.01.01.10 is available for LTE interface lte on rsc. Model: FG621-EA Revision: 16121.1034.00.01.01.09 Firmware version: Installed: 16121.1034.00.01.01.09 Available: 16121.1034.00.01.01.10 ----- >8 ----- --- .../notification.avif | Bin 5077 -> 5723 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/check-lte-firmware-upgrade.d/notification.avif b/doc/check-lte-firmware-upgrade.d/notification.avif index c440da59460bd6de4e5958bc992c5e4d1fa45cb2..2c2f692d5e473b0945a80d115f03b438ad73aa38 100644 GIT binary patch delta 5542 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⊯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 From d60ee59e77b8d01d0fa3fda218b5f28dbb3aed1c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:39:12 +0100 Subject: [PATCH 141/152] doc/check-perpetual-license: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/check-perpetual-license.d/notification-01-warn.avif ----- >8 ----- [rsc] âš ī¸ License about to expire! Your license failed to renew and is about to expire on 2025-09-13 12:12:23 on rsc... ----- >8 ----- doc/check-perpetual-license.d/notification-02-renew.avif ----- >8 ----- [rsc] âœ…ī¸ License renewed Your license was successfully renewed on rsc. It is now valid until 2025-10-25 08:42:46. ----- >8 ----- --- .../notification-01-warn.avif | Bin 0 -> 4044 bytes .../notification-02-renew.avif | Bin 0 -> 3944 bytes doc/check-perpetual-license.d/notification.avif | Bin 4004 -> 0 bytes doc/check-perpetual-license.md | 5 +++-- 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 doc/check-perpetual-license.d/notification-01-warn.avif create mode 100644 doc/check-perpetual-license.d/notification-02-renew.avif delete mode 100644 doc/check-perpetual-license.d/notification.avif diff --git a/doc/check-perpetual-license.d/notification-01-warn.avif b/doc/check-perpetual-license.d/notification-01-warn.avif new file mode 100644 index 0000000000000000000000000000000000000000..fb6b56ab49bada738b2ee356b6a70d890c330d54 GIT binary patch literal 4044 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 literal 0 HcmV?d00001 diff --git a/doc/check-perpetual-license.d/notification.avif b/doc/check-perpetual-license.d/notification.avif deleted file mode 100644 index 70ca603d4488773dd8a476ced8c89506407b95ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4004 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 diff --git a/doc/check-perpetual-license.md b/doc/check-perpetual-license.md index 0335fb5..a32c4c3 100644 --- a/doc/check-perpetual-license.md +++ b/doc/check-perpetual-license.md @@ -20,9 +20,10 @@ On *Cloud Hosted Router* (*CHR*) the licensing is perpetual: Buy once, use forever - but it needs regular renewal. This script checks licensing state and sends a notification to warn before expiration. -### Sample notification +### Sample notifications -![check-perpetual-license notification](check-perpetual-license.d/notification.avif) +![check-perpetual-license notification warn](check-perpetual-license.d/notification-01-warn.avif) +![check-perpetual-license notification renew](check-perpetual-license.d/notification-02-renew.avif) Requirements and installation ----------------------------- From 094215aec72a796b345cf4af57ef7e0c6ed15d18 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:39:33 +0100 Subject: [PATCH 142/152] doc/check-routeros-update: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/check-routeros-update.d/notification-01-found.avif ----- >8 ----- [rsc] âœ¨ī¸ RouterOS update: 7.20.4 A new RouterOS version 7.20.4 is available for rsc. Hostname: rsc Hardware: Board: hAP ax^2 Arch: arm64 Model: C52iG-5HaxD2HaxD Serial: HEG08Q4FT32 License: level 4 RouterOS: Channel: stable Installed: 7.20.2 Available: 7.20.4 RouterOS-Scripts: Commit: main/3287/699be25b Version: 138 đŸ”—ī¸ https://mikrotik.com/download/changelogs/stable-release-tree ----- >8 ----- doc/check-routeros-update.d/notification-02-neighbor.avif ----- >8 ----- [rsc] âœ¨ī¸ RouterOS update: 7.20.4 Seen a neighbor (MikroTik) running version 7.20.4 from stable, updating on rsc... đŸ”—ī¸ https://mikrotik.com/download/changelogs/stable-release-tree ----- >8 ----- --- .../notification-01-found.avif | Bin 0 -> 14735 bytes .../notification-02-neighbor.avif | Bin 0 -> 5737 bytes doc/check-routeros-update.d/notification.avif | Bin 6392 -> 0 bytes doc/check-routeros-update.md | 5 +++-- 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 doc/check-routeros-update.d/notification-01-found.avif create mode 100644 doc/check-routeros-update.d/notification-02-neighbor.avif delete mode 100644 doc/check-routeros-update.d/notification.avif diff --git a/doc/check-routeros-update.d/notification-01-found.avif b/doc/check-routeros-update.d/notification-01-found.avif new file mode 100644 index 0000000000000000000000000000000000000000..54dd2df66c89607c0006f0668dee71f9583fac55 GIT binary patch literal 14735 zcmXweV~{31)AiW4XLfAcwvB6S?bx<$+upIUW81cEetSP(y`8F@?$f8zUHOw#0t5s^ zWajK)Z|G`i2K3MVLt9HTCR{f_}cHMX;H{B3OG{%>V?APE0|6sD!Ut>J&UfA+62Fkp}%uzy_z+nN|U zqX5A`a*k9U)y780bv=2q5-)uZYfCHq1>I!E*Z*>=O(;n&Qp2KyS<8U!TI3} zzM)%C`@zeY^6MugR3#U9gy`d`FnW;PuAVNS6w+eAHV^jJ-Uh%@IBz(?W`dc|LU83z zDwaPZaT;4!>dtH*&H;JFKI0{)(vu=%P6>I4Z_srv_NtE ztN;E+e$8^4>+y14RdPx_Uh)2Jjw4B$O(s3|R2XCVD=F&59KF==u-^Zjj5oC3x4kx2 zVpCQFvhybBt+#8zRDrnV&<0gjk2cGDh{ICXGfRLO+Z0_PK^v@Fj2*1oIJcelhv$n` zp($c&H`nJv;|M>STS{O{+I?H`ZaeD+rjqYazD3_ZkoJ>cYyN~1RA2AgRfeXf1d{qe zBjO!^<7OXvH-F^ee= z7bO*GP2v=EyM<7zd3T-^`nbSUvStO+%T0$I79)+cdu;evFVo7Iq%Zuq?QK)AK7Ab{NU&Da{LmquBnqW>6wsO_?P&s5SlZA zUR(*9ZU@5fk$u74-e$L8b4aL}?R?|x?~wb2VxDY9u|MCCFs4ZnAjO-*IlGs4;QF*MT<2DWW$^?WRcu5kzU<^@7FD-Ir*gFpbVZgS0L$4l6_$`if0d!{)~omD0WWl0l+*pR zWWi}}A89We($G-ksX(yJsm+mwarg#@VZx1{LO#*02m0a2&iVK=gf@0z2_t^+IY*|E zZ^hW`tH|#)TAQ;v4|VaisGf|YRJH8G?ld{wUkK}Ho#U*RS>G5l-Xx`dbNZVJg|lV4 zp3csjv|qW+eX-Uz0Dm~~T{3GPIHfL)y|rR*+8A7IfpNzu#auO7m<(vaYI&^|Kh=g{ z=iaxH?SS87iWCLsMIXVZWIjbvOCxcJ{2Mid*KW->m8|albsUO^%k)sFoCoah--n}J z#w>+4ZZgoY_M=7BfWd3<^bl(kCHL;eKrzmO(iM8sp7EU3cLvn6;?>bP@3p`FK&e#Q zw^?8`X2gj_0gn6=JNS$bnA^CRSIHvXau9_Dl#@gBxJFIUNv&QX~1fS;u}l(+5RX4oOV-lh6qsCr+~WEK7T`N!N+dl|4n{v!Lx(UXy;@ z!gHkl0K@*ip4z_YoQP~ah?0}vvJmu4yZlFAcMW5p($3$*Ex_5A4Y;55)gU@sUf1bnh^dKX_-E@E6prk@jLJ9yM0u zJ8$E24d0u#$tQ8?2v#NyiaPHCx@|(EP~xr7yeUpIKiGNhHy{th$(CG z8aH5;(@PERrx7MT45Pwr>tt6f)T8_opfk%0*G zB3P@c)tL_c=55aidfzFh)yNi`r9KdLCl4FN!=?FSvPcevPUfW(>e9jQ&M^=nx#1jp z&1E<0btaOm|>&warBiIw@UTO@*-69Aa+#w8tQkX6om$`rfKS`99|a7g_G0_1Hln z_Kc?=s$ShetG%wa$?x9Ljy>z>WQW9JQLlF!^?ae|C)}^`a^82iZPs(wan{fflF8Uc zt-@0@=9hB=P}qcXRH_AwvZg6Q*H#zcT!@d3)b3(N2GLHL*49)w5mQ&os=7Tv;WHj& z-^r%sbnLF0)vBi=Lk4*?W;Nm4tfA7(mBw|l2hzc@mD3)PPLH-2;1It;HN|{^x-uzl zBM+(_h1C{fxv|R>o*o=Ru)PpeHiZu$n%$D_@SP<6_cQU-9m0ppTbjoA*K+RkB|^-A|t5S{X#wCM`n-N8NZi3$zQDf9uFgY6T*6NxTn3 zSu*|FVLOBlA?8+{nLT`F9cT$dpB3T&;}8hoQlE(QL)zy;OUoUPE573NhSQ|1WjtE{ zMieGA#MM!DCFgdHZ?F+EzlsG{)U~r37V=5Q2Q>fWpW`WQY^r~sg2|Y)Cqn%Yvutv6 zvjw0Nw6Hi{)8_V6_I?AgUZx|0Zgbp5yznmERW7xdDVd;V21KWdJ>q$s+mBI?T5n8X zswUk8$tTi-l1YZbU%^tFz7Lx5oVS>{o?CY=3}(Z_`vw2XK z5Vx>t4WC5F5EV{5&vs2-#ND08uZ$%hK!}H*3`4|-YXctw5lPkkezzkwUav}hL~;9# z`=Zh6WJp_JXEzkFZC!ZnAQlJb-DM%2+n75An74)}p!MmlgX^)2y~i`Go6Yh`D&|MC zV#Mg`W?gYjfQp*q`yHs3X~dq7y_4+B?w?9X`5~;WYPz@to{*w-qYQUC@tjq?;+;$h zv=D;vRerYpyqZz)Yjf!xM7Hy1BmOCFN)#A*UFbOg;j6*okZ3byb0Y#-K~3HCQQ6`X zL=Er9?8Cyn<^7&=Sba4}S9-{b2!!})CH*aid8h?=oS&tVv~zaKc zR%~zFXUpDD0Rnvcn}zk0VRZu|&?f?t&r(;^=5(%Qg%=}AuFez~b@al$ip5?~z^g92 zq1!-3xKurwp~UL4w$+*Bfg*h`3ZpZH%gM%nX25zxB(x&UIDxI3zV&G9h!rDoOWu$t zUIX(nb$nT)Zph)pp;!VFaFf}j2{F0eq>q7j5{9Q{N~pBtwB1cfr$>yYpTb1;^jq}Z zdvq(Z3~6?Q%Ry4f5=GU5tcEu>I?;=9qm37}A=VLeV%2zjY8m5xs6_Oa`0I1>hC{hT zq=8z2s8CJ^4bVhYA*v~+(t4!u#ZH=!paoS|i^Vpt=*};*lZRN#@HF@zkw1mc0jr*? zFm~TgJ|VHb%C+la_lYs zm{)A_HLUK%y!H+qvoO>Sn!W9ei_+{N+Nz`Y8Buy5TSTAyxxyTWC>vPK>F6}(XfTvg zDl47y3@m;98~D&e7C8iV)sZ@(kIzX4{MZYm>ymnPFdYR29WJ)<#?-nj>~O3}OJyy+ z^&JHh22wzNmaf+%(bU|cJh&?HZ!Go4PsA3KAW>EU>x(L+*OzAbKvp zJrYM33=lRqWe^AY8`KwFo45&TkW**vPGW&+Vc?Ehwq~IH?}3KQ!oIogmnu|H8@x3t zMK?|2Nq2?JQ*%}mX5bv}S>){G6aU^1iliQCQlU|-6yvo(~w=4qBhLa_eU98J+TJtdwU6WF|WPJgBt$&pRBEp-<-pA5!qczr$;u5fqCKrO0` zL~y#Pg@;>+wnZU5e)<42^U|MBhtLf}c^*@Nq80u#4ORkoVCxuJRV6yRoJbGVOQ0~=6i?`RW@ffgGgP+Y=g!H}{o+D&J-e4KsW-v( zjdk3ECDi(8hd@rwuUYZ zT>)j>QxdafU}-K`PN-N}Xu7D*cy+C!{MEWOWFe#(y-oOX(dTUG1oE&pu}6qCh$2G< zrZ2*z4;73gR;h*6*{{p-Fr#CPSkIUg?8NTby5mp1C=PS+bFvkpxN)k)2g?1b=R5pV zriiDh1_}f45}z&hc1J%10)#!`Jx!t`cHhgQb-OB15o=Tvy@|DNGayVvBB>5GgE1pF z4P~xn382^Y*+{o~<9J>0A|If5xxX|VL@G%@{qOi zuI0Q36tF2p@_ds|j_|0wp1Co7Qs+KwR;14TfK%Yyy+Uybco| z!Zd@WD6fOG{RP6A0x(JchH|KHx!PoJT<;X_7OftareVMyGDo6@Um6%6Kq7i|Q9{DK zNA!y5*G5@SfVhtg#~Foe)mhnW8uAnttdJl@V}LOnUcbYokQu?N+!KAvRI8iUH0A5U z)aeoH^{DjG=YFJ0?mi%PX2MK{yL|?^MjEq-ys%jO%Onwrs4=pzr(|>2X^?nCQ=2i9=!#9MWG-lFW+0`^iwDdv zDUq;#Wa3?&ObK>tY(~;4uW{U;Z`B zbPhHgQ8H}O^JgqY%>mGR&Y3G)61{KwkXu2zLWf8X@r^358S?5u?*MsS%<+QPxMhAM zgVQ`-5fI>Z#HtO`-1s^B3^vqRzBjm(V@Mm@&v1@Kr;-Nk1AbMBv5c@eq1_GIu#NTG zB#C*|EU)oo55*p4joe=tnAq;CMBlr+ThA+L4X z#Fju%iPK8mTY;S*7l31qfZXs2U7IV|+qor_`3PFOCGCiZd^Mk^09s4I*oFRufm%13 zB)N@L)td@8E6L^c_et#xOyKt?0f~iAe|QB{&Sz--RgjEPBaCWJ9OYVSI@Fqc+hF2~ zSi0uMni{u9+=_XT;K~>V`v>M&BJ&jWqXr{#Yv_`6Lk&<>R0Vv6elMrk>`bg^S|e>+inzgQOL`YpyX zv*7E3J5OC2V3;ZZPCRKekYwA9hxD_aJWI74&m17K-LJ;)yQdBJku@bA7S@4{9}h-i zmsPY;GGDYGtBsSO3bZ-A(~4s<(rxPQec=(+pK^IaID~0$9=o+Z7*5GiEsU2i@~WQD zjeZMPA5L`iUgLSI26lV-SVm_-Ql*m|vwm@*m)&U!B25-Ef7xm3$tJ5}aVAez)E7s5 zJe?<<8Av^{2r03VRp~{U>u!!sO)g5#4=w~YihO1P>}cM82-XGxLPTnwh@bp+*)L7d zPC4`m%zwqxU>vK5li8o`VCPM&=j@Td!)+M;%>T%RmQ$ktV535`q-=TU)UF`&J8dK# zKpX*=BzpYkm1_+zyMvJ6`1amV-@kQdd*|{i znA#gl<#{^||ITsy@=m!gGDi7v&YI$5)dmH|#q>&x<@easo$$UK*m#DQhG`!-;>EIr z;^?=HJ+k=1e4Irh)xes-nxsRYqPEO+RV71c-{0*uAl8Ku3bCh#HTPTcR2f4=tryUc z#hmRb6^oot^Et-_H4FIeWEHwfL~q^UWHL+wJh27y#2fLz?&*}ah#WyuIuBfaG;)dB zH3QJXMsV*q>__Dz;?#X#n1DVK2b zc|(qf_v2S0?Iv*&{~4v2!dqtc3KatEhs0C-Ruf@~9n{g+2zrnDC9+xK4>DKCg(Jevtp`(^Ac!V)^E=^d(hP3O1w7nBg}k?u6vnE!0GRsY14 z1Y9h#ds&LSc9DD%qi=~xaQRv3rBGz!jw+4gp|sFg{pD ztX7c%0p;kyh&8vLurNN#oSSiX-W6bO8vCennvyLFCH`_mB)dlG?FN2V9%M9*LtEdS%0nFczs8x<*hSS zcLAY%p6+oqJ^Ivn&h|z_1FdT8h}l#00kumTqujdM5TvJrBxZg23=b|ygVj&v$#k%1o+Q zzCSBS1ed10TGsSNHh~2cc$nVT6gsNgL#ctIYtmXk4g~Syc5akRAvPZ!JHq2){G;Xm z$rkBPsOtyYi?iy;iimghN-bj{}6=X=a*tt^sJht4Q8iseSyk=67c@yVRf_+ ztYt^wYKYg&kk7g=X`QfCcQvMw+W;@Rj64V7k{xwmEE=dUvkmBn|Z z_{(&7%dI#-cnOp(HGicwl(G69J;%O`TFC5J*LAe^WSAr9{N8Q2Y zt)13FqLXzBt1sZQJ`wdXUtKi-1dpyT^8S0JG|PPmM?Q;=@jOm0Phc2wC4^7Q)}DFp zLsGdJA7qI8ApzGVCgiWNF2BUK5O8@SC0Bhtt5>0$tTc z@Z6Qqa~`=f{Ahe%o#Ii4(tJ>FxyNk_dy}pxbpk7F1PDQgu(O+>=op-by@~+?jmgBf zDE-g=PWC)(kl%SU1O0nK&o6KS^4}$uoN%2oYV3oGGf6+cFf9N!1t(7o)FTrIGm02g zls80Mp~8Afb02X_GJ(6I4kY1gw*`R6-UrFsKr{%vCFTc^hn8N@&kh(rC8c2{3$*}L60x6ud8s- zbN(7l@R)=uqlMhC3STV~)bPJFe8^JlfBWZx5lZeeu=#|u(MJoDy2%A5B{tG_AwiH{h^te3{}&8Y50u9w|#hEG^U)z4EG+Yh2C7xv@4`SP%JeB?(Omu!-gj0Ml$8? zae||Z79hXS(jJouq)Lb}(k7#*wC|t{uaqPaer@AMvO^*0SDl0;NYl{gE4=G1M!tF& zBFp?k*eyb=RW)vG+BSJLyd$0nw$^c^f)o#e?n#U$Aly}y04HDf0?@a{6|;C(>pjnA z1j{)v zIT2&i;aY#nM4S+Gp`&ByWPrrI!Vi{J5yCAa2qBcFIppZeLb#YdnK^J|uf47ooFWB% z?g2Xh$gIAl!(Gv-*njQZCbBP@NGmzw7QypOH!&g2l*QKX3->Jujxe$)B zoeu|0xt!b^K&;hk$kF)Cx#=1q`*gFnX-ii2#NU}4tC0<&v)7zm2c(NrcxgR*gP_gq z1!BZ1q@=P}OkgTt)wyyUv8h7nV{r@|2K@+C5*WnG-S2PfC3c@OP-fT^v3p^znxOHu zgEJSDI%ux!-EiXW1+x@IYXhs@bb`ztXo(hDpC_RUY75SU3<#oAV0E+D#7fJWAXeW) zUbf+B1;%$kBvI%zT)4r*gE@N7q@9V)khg6FjAnm?dz!tpIaUNV*jVoE7$$JcP70Q! zeD@&k-QmN`!3Fs=C^CU_1@nU2>^HgX3K^*fYCX8$A69$vG2hmUWHO2hIL$LO806_lP@b zX5O85d|Q}Ir-=Ri25X(v=$D63%7Pd}0Ll>A1@ZZ8s{uXDz6px`JE*5Z>n^>Dt1#S- zp?yG>U-#5VWIJ&no1KE5ynKPC`f6abFzc3Fpob>>km~L4d96vJ8f!y5C4GQxv&K!9 zd{Cv>6T$%MRBL%P_PYw$TBQYj%qC?0_DUBqr%0_=@5_|5jasU3E|$b7uUJuI;u%n+MV zV%yOLB#`q76m_X+Zy>|qC!rO8ZeLsgQjjPB-b6Py40vA499g&9$7~ZXqku1LBvoma zL$=1#Mu{ONFRkECUw?CTct~BVq|7QLjSOcHRDn{ys)v{@zy8BAUB4YaRwqyXL%xyU z|JX#$Q_OD=k&h;$%kKwxaEiAlzs0O9k0`A>*KiCTeow+ye}Lm6t5GKJn5nUIs|Bfq zB8j&GySni^Sk+G30s&3$`G}<2-wc<&L_&dA*9sR;ZtaZWA#Dc~B%Bm|Y->s<&$1}7 zL4vart@ZaX`&F58G3>4bYZMl(5?xaIXuhC4az&SJRaw3};{vC+W$@EnmO8E9;yg%L z3-U~>dGThRcq8N*QA=cqd^=9J${7#Ezri z*nzrX0dT@ClY5M^osTiehu+Gu7so=H@}L0&-*Rr~Lt-8-eMv4-pa@;oHk`L7f2FtU z-Fw41e7i>@msOof@M-=s7&p4nu1;|6538}SFE1TUN#|Y!v z>)y8SzKO4Qtb!mC-LMBc-Nu9~XnxKFE+u}YV`0 zp;i3|)lz+g^`d|*!YbER&{#B=Vg^c?>;d=j4AC&H0YWL|eqb!bmwI==$E|*lE6h?w zfBm8we{c3Yw*P^jkf2pEbVro%4H-RcF!pe_+fWh)*$iv5avsRUMKJ$NRIFn##d80& zJjP}FlkQp+tpK)_S4<1M-DQMekduQ2V>v;DUk3R{hKBmU^$WE9x6`cEdnz}~iS6@M z9)QA0i8#W(jz6sV`ozfeBoFNV+KprxAX^?@&NPM?_7sJd>c@pxg!#KIW-+FSg_n=( zwV1u+idnB>%Dp_>c}6^5mU52$=?;KcD?zj%dLL&B`ZfC96UA%(5*EktnRt$LG@~~9 zyC8}ZAjr2$#Fia3VY9)Tz3Kt>L94^UafnaA_7@_%;%AW{6uIOH-B!+rSeYF8tN;gD zDuUlgmfN#8S_rx=-zUDyH31`?SdNJ$<+eo|)FW{SXg?Dv7W4@9gSU5Eh_~F4b8Wl@ z6HI+}_=1b8^p%75$L*7X&OpfvK5kSLM7GOHr9#LuV362|Pw*RD$I2uEE7YHfn6j?V zW%aqpwwAq8PU0w5E4#!EBv<{`%7Gx9`!rjrOlQ{%O4NIdiTyuEu-bYh<&<}<1PIRg+0|#Y2VV?K}yC6d6 zJPdRXIHytirh$tStS>GQjNHIlD2wWJQ6-Y`WMi$)&GWwz87C0srp)1W7bf1irl zP`3DJaVs;_H2De-eLmpb9hhmVLT3n99o>CCsj&TKV_s)@+Pf0>nZS$em~q zKZbl>+ei*M5~9H#v1KxCIu2&qehCK+#Nc-e)$Zu zF8{Isd+!A#0_%rXiE39wON|2C4nx_zUuYh7NbAd!g1?}e{IUX;^h=D?l4%W1px ze`L<}R@=+il_70bEcwJCQ?ay3ucwnSS^$gDf-B5kL^SAw*45m`)M-DVI|ZnR?;TLr`9g&AypjefAMCrR_G~h zpRoKfxImJKdRldq&8`C0#7+ND*U(OCdXF~;p}5NIvh}4mo91fgX1CfyBhygm+G#10 z-4e!$bVo0T1@!xH(i47q9>`Qd}1!6FSO3j zKk}T|?X4pro*7m6RpsFMuZP3<2@g2GTsq3G*>{;GS#{y|a<@hX^OCqQVr(0S1R=Cr zBd8gc*@A1-;uTGF(4|YXB|eIlGd|7=HQ}6&%C`@2;D4wF<{QArDyv0BAx9kJZC;Na z;1H+5t~jEYC=v492X>hL0JX7od*a+WYO_)rcA>w?e(m;#m8F)jqy7|H{~U2Aa?tYR zJ+mhZv9YKcX$dd+{rw!wDi342pDIjk!LW>&aXBM?p0fMlA1E^@KYp`7*x}c{f*E54 z!FudiZW}d;JkdEaYJUSZe_ic18(1s-Q+Ciu<@e%^hD8*Ic7>7jt9MWZQc`(wuqKU` zXTx>dYS4Dn*seUSKFOOshDzU+Lpk|pTGXwVv)&&Ub&rk#Li_EZ9cP7(D+EY6I#?lV zgEp~v5_6akaGZ*BaVbbwme|G~3YsioYSh6|PF7g>!8bjF%zFa_@WgP?j4Oekjueoe z`$7XX_w0Du0CgPzx&_YKG zq*eweZi4iHNxo)SYtd=MUD_=9qFPrLPM28E7E+8Ogv@U?+#nbs9bl}<%`K@9(8n5S z-^w!eJ_-|HmOm5MMT5fwwi5QoVjV5?!?K+1w|>O^iR(E^g~+xB?uwUNb0x7712#m- zhK;J04kxFkq7M&5GB18LOJ64qhGb}oIx~pZkJyz%z8x~sG3Mt5F#P6Om=_!|8A{NN z8U7L5q$Z5-xA)0MD=+{eRuxN|g}Z8QF+zeUMHchD7)bR%KA*}xzawp(2tw)#QKz?$ z&y0ntb`b`RMYyiewBLc~MhSVmg;Lkm1^5okRF1M8DKS9Jb^&1E|0+uOIc$f1S`=hDCe`A66E>m z&y8{My{upRBqBrrP^l>DE)Jn3gc6+UCV*k zR6zh1@Pe$sk98z~Iy(TSCGYK?a|!JUUHLQ-;gE8fwC?D&-az&%*T^xrR_C$Y z1$g0xJVH$(951%$57Rc{+Gdi?-W<}3nM0hI*YjnyS#eQznxRnQ&gxJgmz^<-mtK`L znPDbXu81u`!O;Y7KTpW&o`-5EkNy}DSua}C0R#A3!e~j>2Ra}2)cl2P29&5@XmA%N z8R;x~t}J2F6b4u-=8ZT_fvBDz>H&6HXPD6iO$O`OC5iniiTu<-jIA?WHIWytYy1r( z!%EWPfe%-r^Hkl_HAJqDd zU=p(dTWs#7Z$k!2W#(C^2gZ481^;u0FlJH9MY-x0W^4_9dg{@Uz=2$ppoiZjmf*Qq zg{=l!3F3=HkEF`3J*)n-@cD3AzXSi@5AvP7X;vDTza(_+&EppIdwkRuhjJ$EZC&=^ z+Hf@-QWYQZ%aY=&XMapvLz18F!H^Ss^Mmk3xQKKLgq(EmzefYXMF^wl02*sj0y*oG zVMU;~DbT>ty<^|bwen1nkj%J+&7CUh$nBDzt=z;uGsa9#(4vKeHwa{3icCFD=X`?_ z)B%mK?L+f6>!RP)d+=TmT&Bu1!EdK%J}N^IAEEB3Bndg;bmg0X_gj3-wW4nXJ1f=e zXT3e;iBN?o!;)}opi_H^1BAsv&qmq787jr*7d;1G6xk|~xw+w62zPit8rLd+;!8;J z9u8-*iiH9?zY|rO{Zi+xuQl=Mg^27~j>T5Z9KFBLpK)Qjl_?Cf_4svD7IpEwU7vS| zGQ+9>BqUG^`^HZeKZcdkJ@#;MvKHd>(!QkgKhgOnCTHeS%Syaj%(B`@qVx_i$%~C=$w^tsH1bB z9o_zx>sWXO_bW~tU+L4-NJHwfPO1DTW4mv|&(_+BL7u8U(@R~1^&9=Ha=)(ME(^NW zAIgoQBagfq0`PSJw^W1#-bJ-CL(4fTr4&5X2{2VgX=PO%CBC6^d8pa)lC&4~SrHEO8oFlmi29xWy>xm(B9<&`n z_@2H130b&_8mQih(}$xI7@6Equ_LOE?-gM$vw_!dza8p8n%|(RYZCC}7*OUOARfBI z-0_2d8``z6`_}T;sPc_4E-?`o+CvJ*;?1z?5wXbBFKc-ljyEM}LVFEj*XpT7LS-K~ zniy)U%X4IIfE+G(fT#VD+7{vQJ(4&>(&|eXbFEc-$z8BkR98@{HSfZPlw8N2fah|u zK(wj(cFF1F@-Kt#RxZKWvD|n`O(Y*J22Zw4;^k+mkChG8yDp5s{3FhVNJkn*8+OrZ z{)}#&Zq6-=S?<3`A}Wg_+LwW3lU6$F`~*vF+w3I#X}iEM_o2XX^MS`XkyIjR55~VQ4%WGt*ti2`8U3!I--p~5 zXO8DS7)5-YmfGFD)vVbc+Y%}YjvxR@6NT|6Kblg1cnFqACG#<$wGZZ>2RRz7z!C%MqfMB7Q5IZU)?+t!dk z-6Udh-kOriWI$(O;~9F++dF?od?@i`$+hP-3sX8MFmPK?v4n__J4uR!QgfxF5d|}ZsVvJUr;%?=zEZFLRt+J{*RD`d>W!Cct zP1vygF3(V>eAFjFDI0^*wanq*tG)B~xx#9I%$1kji%OFVXf_>wq`v<$>fqy9!{AIh z(z`iB{YV$|C`_hHD428mw#Zn@owumVMv4DOg|R#gE$w9AMIf%JbU^n@5dhH^%y;D~ zg2Z_%FvbUy#D)~)Uc!`FTI`VlmM$5%r#mEvgAu<^M9N13%;eZesiBY z=ggV&+?l^G0s;b^BQyYF;|q2~c!_`L26p6k1KT)i$nwj+NXKptP@8|fm!N-R@9Opc z6afJOwuAnU{}1sXV5r-F1>#Gl0lRwG{i_rZ5D;I^zl?xLjDSFD_`=!1VE6xq{?`G% z6b?xL%r71rUp{_$4_A->W;uf)UXT|Z1cumoydVkK8{+WKh=73f&yfFe2_Rs9@IM6^ z0|Vm)aBO_}idB88*8Y-Q3qz>Q;;#Qn* zevTNG9yhlg_DbYSa3!NA7sz@B=}d15<7fr!l2OTI|7u>t#_1_j!*d8!gcv4;{O(18 z3w*^yKO3oMIG@5U5pA2+i|ejkgvS5`UB{l4v_oMM;0h1Ky4=6dFI@I4=NenF-E1< zZ!1cL?e2T>e=A8wNJSz(T{DR6KpoJ$5Dvg)d(CwwEuBT)n)*rafTOQOSA>(|ZACF0 zuMu8KuvPD~uPrkB>WUTFzN+$7^bf6|_reR0E(@Fe?-E|c{o+X*-7|$4Dz9bko_X=w zjjN6GQP{KeO@*@u|1KpUzlyf=s+Y$7IA6JC(Mn54m&FT z^N|gsqIC$Gry^_}2`& zOhwu*y)v?`rr@5DF6?|gO7ka4t7kIrp^5dg;OKsbFX3-KyeC*%;^L_dznJ*R8iWE( zr5rMr{+d~a8zl%h>->G{H^Tx;5Fh;4dGBkD9#j_yF}Dne&7 z_OFhS{j2$wv|R^7G!WbJm;Akg69v{ALjF%NTMPsdt~Z(NUBL5RPV2#;@s?jv*GQP( z%Txt|0x1>$77G%~!dkvU;zl0gRN}ckE?4GhUR0@$IP8#_#_Y< zv3|DLu7KyGwba9y5=7V1x|CYi2Ds-7i!9FXdiacoWJR}ZQt$|(4+!JpUrmdges47p z5OTLLFLAamdW$#AO_`{q_k4KoVX?IH{ZBb7-9g}4ixMvZX-8Ep=|;V*VfrDZCJnE0 z=)mJDWhV9&wv;1~KFXi`)fvc>z<5jPyYzFkXVN@X)LL>rtC%Oi&{nAunN4_^%E*CH z-=^YhP`I{BazOJaw~Y}y;%D`VYd%sgdA>`22?_PHh4`QQ6JSh$ku>>Hu0nk=0akaf z$`hXDjq-UortSL=ntN2MyuT7erx6; z6!)(BD9z-lf;3*Vq9;!2ZN{u_zxWd{aG=n~^EegnYdB^6BeiMyZKpfKuk@g%&mG`4 z&q|NDOco!9!&a2V!BRQxlGXT|t)^6p_L=k=L?~|441>OF z_wlyK?#|y(-%}m+luPyZZ0$6xHaFN%z6sv}Qj9maqi`+KHBQUwYZlU|ZcPw;{U~1R z1gAl4n+_8e>4i;qZbq8H0=``QEN0Oj6sX=wd@=zGGRVkU40lmF%0L!zaA<(Mtf0VA zjZl6Mmyb_|Kv(?LGk83$Ebop<8RcU8dg+taY+zdIP0ZGKQWuiyqY=lY4K2>(jIu(O zht+|puwuMP=hC`ucK`ajddX%?yuWYezWdX#cl$q~4-zjd&jr)&w$GHDl7F6>PFU~P z2ajtk1$cg3k0NkPTMoVKkO{xGI#te;-$LSv^uz6*m;IzmNlzm6BW^wdchl2I*kDVg zLY#>=G?74V(v^JN~{xIML^M+wyFqVPEqz(>LcI$q@~i6 zut$1xO+%s+Q`HMLVS8}uQz5@1>n^~(7cU|ui`9vr+uopQUSjbe07UZ^h5(lIoIPjI zGAuhXz3|<~k=N|_;pDN$gd}&$K)dO%he}&z_<>3bCx5|e48!Z{M?KI`cGl`y_KKZc z!XJ~g;)`_AK;Y`eunV>}uR^M@muFAi`Ob!69z3F|U*~Rzy9jyL07ja*_w4v)^Z?+3#DZ9O=UdEl?4%?-{A$N!=AFcW|N{Muk?f z3Z4x9zP?;q zL&M^arW;=##L(VUBZ?1Iq)~?FA$&^tKKu1JbQzD^V=fPz{j1`wRy@QmRZN`C-Pcq2 zgIN)vl=ZU`JP;?0!}-yq40rU}AD^bgBPmfE2>3b4yO%oyl)TjcgP~46KHB4YaAA+> zh{&Et%Ajo-rELjil&chD$rNNoU=;(6|t8VNPIE#$K<(k=*P0;EE<|?RrJWO%s{eU%5rA!kv@R z;epbI`~v5H4PS*lc%!@%yREj1>q|j;P8cJ~WTau?#(R7KDQ5Xk#0N%oxSqBzc}eIq zN?gqBrfQcr8_(pm%)Nr-Dwy|adXG`{sRK<6UbC`z&$I59Uj2DZI;%|9nIveRbGr}a zuR3>)lu@=Lf2=f@yHkpy>~1v)`QpBh;s1{E91isvwxD$Ia<1gZHCz;zJljS&bh#!S z3}8dg^4BtVUu7Vqpp-um%hSglsgs?_cMeKv>b(G`ngmtSmo@;k-64}(irlc#-zOOnx83NOEc$42z5|r6*57VCw!fnSR;t_ zocU3GglZLV>#{m=Fx$#FN_wjShUlXcJK0-qFSYw?0NN%#uWz`hLH=CvwvYJb$u#nO zF4*DdCppNo+#bBu%Q1YfX}FvYxG(Z2_dLzu!zlk;dtqu=L?fQmx3~)LltJ}!l$$y3 zm}5i#l=u{R_w$W=ys~o=u6Q^2hRoPyhHW=l`CfQoCAk6bJ&e+8F5GI!xRq@kJ zeWt)f-Yz}NMw!mX#X%yaQH;Xo+eer5)%dlg1j?C+aGYtcY{{R^x+1xs_gvhkypn^d@>F2nWDO)iE)6+i6x&vm>-z!ZsQ9z7g~5tMX67LY9IC7B}Rl~L5Y&R z$%?hI{AIc|7m}B+#j}Su>l?wWAv)HM?$Xzxy&0**IAkiue{>`vJ_CXVN)m@VWQn!p zX!yn~r>EpgW!c&cGx}Gm(KuT8wMpY}8_lmYPFM+7D*;6Kj|{_|l;5Err$FnENB&=9 z;ZFjr1mEJPRCsz36HgxrpSJ(V1wR%Y9biO`yR&=->a`{|#}S}) zGWyFW!hD3xxP#$bLUK*ucbxLc>FTe9%B@*=47GxdwPzlBw{25zoui7h#~j6UF?9%r zZH83L#N^m@Zd@HdJ4jsjFEN-qakz6e;O1-HXrKQLVcXIi|? z@tN38CSdTzy(9bkbInGt)TP>Gr&l)D*XC+Ck$P?mQ6v;txT9)E^hWp~w}_{Mr14oW z&yVxbJAdSBCJWWh8E5jGAa7SrW_Au3xG4l`q6RyaGqRTCTR+l#YgvOoKhpau zBZC!oNR{WI|5uv=eXhyqBPZcZ{wAD(an0zFK^lgXndf6tk) zJKrarnsLUP71$_-nXv9D`#}71qpk#GpYuVIk|Vql0JxpeP~5AT^7r;e5{SuWEml68eg#j7sW!z5K5OFb zy*pf4x4Dz30J(asw$)?V9|lduXW`GPYCgdh8%zhYKSR}V9vWNdITPJzq!@<1k$*mp}GwVaEE zNBY+H75noIBCJ>Zsz{|r=+>+$p73*c)JOjPIfBdjhGqEYS)-961OFl1e*cHFn3?g=&7g{VA~z%*7qTz{Lr-KAmZ#X zcb$7|W@ulxm-SuC-Zr&@5JUD|jkC%CzQI0!=WVPW9SIY!h%arCUAI-7mm(32S60+x z*RI+k21R)n`b5yW3aCFlu(guuND3(LA9_~(!Z-gz3h4mG+Z{}aHLvgmD5N|pkw(=? z@@kVK?*24SLn+;qDjqy%Vww(Wr*A9+dN@8IR}hZu&RYeW17Q-xO@86vC=^2Y&cRBb=fa^q>((f%MLq{y}$xq zOGKG9<_z-I31^x&;k7p-gF1GbYJ9Tdn`nWYk!8HsGvW{%PnxxRO(Vi1$0XtfFAXlA zh=&j~GN6z18(LE~1`_QKJzY{YHU(NiPX=@RN%}h*%6@&$^)0WmRiiH8Pf;zq;$85G&CVzHVNI0zZs`?JFQ#+5-})g%l4=460tlkwrXa^Si{o+! zh698`z1Hh5_G;y@VlZm&PkhowxFTV8Ge7+H1*Z3y`Pd$eTaZXcNdElzWoIJqwTac{ LPN7#I8tVUluxYg` literal 0 HcmV?d00001 diff --git a/doc/check-routeros-update.d/notification.avif b/doc/check-routeros-update.d/notification.avif deleted file mode 100644 index 50317cf7722e30986a49869f3e72f8983928e74e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6392 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 to your production environment! Automatic updates should be handled > with care! -### Sample notification +### Sample notifications -![check-routeros-update notification](check-routeros-update.d/notification.avif) +![check-routeros-update notification found](check-routeros-update.d/notification-01-found.avif) +![check-routeros-update notification neighbor](check-routeros-update.d/notification-02-neighbor.avif) Requirements and installation ----------------------------- From f77cc07338104160d07b3f5a4c7dce17f65bb31c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:39:52 +0100 Subject: [PATCH 143/152] doc/collect-wireless-mac: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/collect-wireless-mac.d/notification.avif ----- >8 ----- [rsc] đŸ“ąī¸ 02:00:C0:FF:EE:00 connected to Guest-Wifi A device with unknown MAC address connected to Guest-Wifi on rsc. Controller: rsc Interface: wifi1-guest SSID: Guest-Wifi MAC: 02:00:C0:FF:EE:00 Vendor: locally administered Hostname: Wifi-Client Address: 192.168.1.244 DNS name: 02-00-C0-FF-EE-00.dhcp-guest.rsc.eworm.de Wifi-Client.dhcp-guest.rsc.eworm.de Date: 2025-11-23 15:30:27 ----- >8 ----- --- doc/collect-wireless-mac.d/notification.avif | Bin 13378 -> 8301 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/collect-wireless-mac.d/notification.avif b/doc/collect-wireless-mac.d/notification.avif index a2833f095d53748fcf3e92cdd44e5469f83f177d..4b21b2f516d84a8c66ebb6f6fc85b76a7a9679bf 100644 GIT binary patch delta 8137 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 delta 13255 zcmV;&GdRrcK*DH{BMtIxWprTx00000001bFFdPSLX<}h^X=ag3CW#=C@5D?I5GMHu&kO77mVL;taN^cVJ=g`$*Ov;{-_?prw zd(wEXs!3##ieZeb-YMlfLTAlm^93{VR9k2*)XIr2Ov$VG-RW6`o2)9@jtvnU3hMZw zNg{MGuu(o^zEWP)u2yp+Mu-?Vn-ZKsXT>Dae-eF%3~q*%I^|;p;bBr_>JoxS@y5;M zJu6B<@8Z~ru%tt9#e;Q?&}kTh9TdqU3&9W@W2o=gf-z|ATY!(+t_~3F(E=tM*>e|3_8*g>u|e+aCm&FAvAaKT55M)r@zmzvN|3K3S>Kpdk< zR$`Sm@q4!VPfeYKmehlnBj_cMwtirdzV*<>R>tqf;`0@X-{`krQkV~ko!s$GHBLWQ z%$w$8ZMP-KvfPcx;{nUxF=~UtjQZs@n1p`ziSY5bPO~6+B!akFFwS7uIpI&Se+2nB z703pNDZ+*=n+wd|8B(nYZFov6j(}H9umda5B!_B=QqW zKi-Fkwr>W_&X*PkthzTEBR=_4^xe6~@+rJCK-k42BF~6A($^${H$rNrw*%I;Niq%p zpB;YYO0*J6Tnwa^lqK0ke>Rev%oPu4h82vNc6hA&v*7Dxo2%$T%D%mMo0EF;-+9rB z;U(Gf%4ij1yG@nT(MB_RuJly6#7Eoyafk-jFGF~<}{k9r$UxFxJKb#J5H=An~h4hds zT9d`>!r=)`)0AyCN{I;NGE==SjYOU_4GtHCId!*PgSZ-08~A7HSVF5kvRBiwIWtU& zZao~WB{^z{W$$YOeOMCCayyzQ{)^wLkJn%?#G(V<`5k<(f9~74$rBYP*ERHk5yzq# zxI3LgY-{4xuvLoYfq89>zpV1Gd-o{z=t)9SgP+zIp_1~t2M0>_1)q4Wcxi%1d(HJ% zMLTeda!7)$bA8~dL)o(w<7f}QFV91tIMEC1;0K}mKdvq%XVzuLBT)IBV}1A32^Cqo z(a-5oHed9bf9i#)NWxE7CNTG4(G?-@i#lO9{~sAQ&BE%h4++^e!P~RD*|dks#nUFfBIMv@00Gb zGkq2{1W!33Cgg^%Cau=_va0!)a9%`mGgYBWh*k~;e|Jyqvd*f~gHj7G(=F#o-B^oAJ}!mQ{5tJsonXW3eTqT7|)gN9Sl;IIi3wnEMqUQ-;CJPLdf>|o+T z`Qq)aaPRyhln+tB(Xbo_d!XGSNmX(szMk+N6nt|3%g5V!`*3?E>P~e5x0e8hos#9Z z)cFyTe~6=Gnjj0m$TM-Wh}bWawhGpX|D+)`pwESvA{~̜Rl8uEE)3+jliC*DMP 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 Date: Fri, 21 Nov 2025 23:40:08 +0100 Subject: [PATCH 144/152] doc/daily-psk: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/daily-psk.d/notification.avif ----- >8 ----- [rsc] đŸ“…ī¸ daily PSK Guest-Wifi This is the daily PSK on rsc: SSID: Guest-Wifi PSK: 53cr3t5tr1ng Date: 2025-11-24 A client device specific rule must not exist! đŸ”—ī¸ https://www.eworm.de/cgi-bin/cqrlogo-wifi.cgi?scale=8&ssid=Guest-Wifi&pass=53cr3t5tr1ng ----- >8 ----- --- doc/daily-psk.d/notification.avif | Bin 7040 -> 6966 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/daily-psk.d/notification.avif b/doc/daily-psk.d/notification.avif index dd0b1b62520d0c3b7d5aa383506730fd0a9e0e7f..79cfc3e2978889f740021b04421cb8e8c2ab0388 100644 GIT binary patch delta 6795 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 delta 6876 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 W<~l?3K*WXv?KVSdlqL0h-?y-TW@BLh From b6e72f9a9f03818739271a5e59a172d2735d6318 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:40:31 +0100 Subject: [PATCH 145/152] doc/log-forward: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/log-forward.d/notification-01-info.avif ----- >8 ----- [rsc] đŸ“ī¸ Log Forwarding The log on rsc contains these 2 messages after 00:01:19 uptime. â„šī¸ 2025-11-20 16:40:25 system;info router rebooted by ssh:eworm@10.10.0.37 â„šī¸ 2025-11-20 16:40:27 script;info global-functions: Loaded on hAP ax^2 with RouterOS 7.20.4 (stable). ----- >8 ----- doc/log-forward.d/notification-02-warn.avif ----- >8 ----- [rsc] đŸ“ī¸âš ī¸ Log Forwarding The log on rsc contains these 3 messages after 01:23:19 uptime. đŸŸ ī¸ 2025-11-20 17:35:48 dhcp;warning dhcp offering lease 192.168.2.254 for 02:00:BA:DC:AB:1E without success đŸ”´ī¸ 2025-11-20 17:35:57 dhcp;error pool6 refused acquire: bad preferred prefix! (1) â„šī¸ 2025-11-20 17:36:25 system;info;account user eworm logged in from 10.10.0.37 via ssh ----- >8 ----- --- doc/log-forward.d/notification-01-info.avif | Bin 0 -> 6833 bytes doc/log-forward.d/notification-02-warn.avif | Bin 0 -> 8622 bytes doc/log-forward.d/notification.avif | Bin 6178 -> 0 bytes doc/log-forward.md | 5 +++-- 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 doc/log-forward.d/notification-01-info.avif create mode 100644 doc/log-forward.d/notification-02-warn.avif delete mode 100644 doc/log-forward.d/notification.avif diff --git a/doc/log-forward.d/notification-01-info.avif b/doc/log-forward.d/notification-01-info.avif new file mode 100644 index 0000000000000000000000000000000000000000..6d25467bb4c146e5e90d1cd237c3f2b2484ca381 GIT binary patch literal 6833 zcmXwbbyyVM^Yzjx-6-ANogzqgD&0#ijYuq=OG!yLEYi{lEZqo5cP}a3ATOWq`~2oU zcg~qJ=eaX~UH||$-ozDh^VHl7y$^-jGO5C{PP^4wR>0tCAJZ|MIz z6t9I1;(z8>kA*i6ubius>;Gms0734cS6u}NvT}VzBA^Gz=076P|7NgHAH;?~abXGCwh`1fxV3itu z&9MkcYDL$tbF_e66MSaX43gh0KUm&q*#sD?3Rq-#x7n-;A{e`Gg*}^qngagC>jD{t zJMWR{@f3E$r&_!m`(j4OXn;Ok!H$=_*!6Z3pSKE+CCTom6|~c$S4Ro&q?RT3;UC1z z*zL!L42q6^HXn3}XNz+rpd{qVy7_BOZwO&)eAyv+E0ccma}^7_vsf9&#!nukA0K$y zg$(B#z(6}2s-Zid!YUMLp4N%!s9f-jy~^p0c1aYp?sVX_+>(r8=Q2}y21VK1Z3#Fb z)Jy#E6{>`+|4=+9+vtF07ch~k!H*aG@=@dvj&b6mBGrAVa0+bD7o0{EPCSCfGM)PN zyuM`=ws?))4kqz_mdH{@5Jr#v(GvH`YAiBG1*}EEdEg~WAIvE-7C1#kr#ddUOxNIAvWeAN55u!;fnr&D3>IDX|!=DR1PW+u>Z)21!dKIc2$;vxrEW$5MaF=l^c z&m_t|gBs`Ei$;YS2tm6)kz9a!WiF>6)rXc0)BMU5>Qb5~J>X0=Ut3pPV16k3c`2hV z(!gC;;zt^)qj6ka%V=jqzI)x}m2O9sU9p38WAtXvuI5R5gVd|f2X&>B^08X#D?XT) z8simaRGi$<$~_B_AiS{gNlGy!#zAjh_#ckHWJ zK$@$i<0)~ttt)GSy;&p>(ImjkVwWn1H++!IZO)GSqaxV2&0|)Ogg!6B&XpoF@k};& z$#RJO1DlZon<5SAZ0@d^h_?+YR>vhQaRetWU|>S+Kn2tPeZnU{T$>cWg?WJ|%rMmH zhsaOcdD{*e6=J6K$$^Qd6w@Q1MjJ+`D+|?#WFDT8%#Zc%p4elzND7jT=6<*NYf$ ztfPU~MI!|JUNx}LM(>14K|9)1Df`(7*3!(9Of~kJ1;KYRgLK}JS*XYBpzPiqC(W@@ zc2%PjrR#ITJ~30<)Q8`A+3cFLv-3_;qcA>~371=%K#y-cg9Xy*$u0XVh*YTJ!xF(S zT_I}clgL+Eq2}Iy=fX&t{2YZUS<6pt zm(r1R1+dA*Z45bQg!L{Sg~^C!vZ@qYDpy`sqeK>^E~U*G(XI12Jfi+IeYq{eg=$eY}_K`!K)n#31}i_dK2Z! zKh9H(I^uOsp&jaP$H}W@Hn%RgOcd^jeCAk*|31M8MWdY?W{UPZ@UziQlaUv!_;Jvy z#k!PBF=+!nbD?;=Z+P<&N*WL3-*Pr09FTj$&h|j+cC%@bUUh`v+AnULKo&{Zu3E$l z5#F=&J#CNA5h`UFe0Qo9cJaI5_;-mj%x;G@FRk$k$jdS)=-`1RJHpp*a7ji}aM$$E?Xrnw#mCiEqc-`^^G8(9J$nQ4=2l zhHhpS#Jdvk$gbH>J}H+#OmKVV_zvfApnVSGoJYsEe#S2b);ejy+}_^d@LGdY5sS2_ z3U$AK5}Rby{%FZ(8@aQf=ex8ReyW3svhDPCgPQ}0>4T?|`Q<0dWqxG)>nNL_#Fl*N zLp+Y6^l^8n-k3x4>AmZs3+qWEskr%zTxkp47z42 zLPPWMA+X1F1A_s_ah!B!;(v6Do191}X&u3vP_!v|=5@EWZ+5V)y4kjxI7U-@UeXupI;6v-iN9vHW{dTmivN z`G>t3{rew+@fSVw$qPAb`EvA#?=Z-m%=$2%!Z)@LH945fNe7I&Wc3Vxw)9MRe63^J zy;mJo%_WvBA;eb?bn{^z=8uQWjJkqNeD7$$p2_}!dE7bnoIkrbeJUr2Pj5nEH_8C) z6d7>z?AA+8t0=D$B2twDoYOyVr$xif1bR4Y<$oe_k%XQe!2XWb(x-FF_%U%6cd0$d9AXs2eez;`S|fX`-#& zOep?WjOK^OeXwORmI6KT8f8z4591fGI2xf0If4c~%>zrdJ+;fVrRr&Fn`?3yDbBNO z`Q;;$hcqD{y&mrxLkP_MG!`IBTA>ab#ay<*JUE>BSTKvlJ?-Bz*Gv#2&-jIsqZ$Le zZVN+k3o-HYx7sJEDGit}&VSzQF8Eeyo=BGEVR?@lu^9Zbwi`HaW5k-q?T{eDR3gGg z3t&vmPFFg~6^2sq$L`h(uT07FONpg`e7exHNB&ikwGDAf8b z{qtbI_zU9Jf}SsfNQVZX!lv-$+ABsI4IKp`bEBbM^nl_VGBdJi<1ymf&2PuUa;e=-*{s1GZf_0Q#B{S~R>_BPfc!9uq*ac- zcWEwi78*C9aZ?*84~Ip+TYsL&0j?gQV5o*hiDvtZnHMcSVq7f4s>?-6JkG3)Y5XLmOd z7?d#soeeyE*`|_f6Gj+^4Ws&36L+}1Vwyc&=0Uu*pM_om$y(jPjZxAQ!6)wXDEz%H zg{`Kaa@VJe5q7^_{oy>Ss>0Me7(+%krbj(>7prKAOhSIoX9W*M#4s0D7Un6>+V5Wa zDiPfwEe6Vz_s*Vzf-9!7wN1FtE34=~vM&c3>v8+Z&bB6Q3H3_}p>ZMDVsxLBPdN=Y z&egjN3j*R+T?@6!nBy#EhwrAWM6w%x5;E%zk(ro4XRwcW-qeX zu14l2``TvoW;*@;eqWhFh0%2TY7!zmF<$HJ^6j6M-15n)o)2^qBF0sC_Y;kwqH)vW zM)USfUQw@UJMW%GgWo61#`v_D_4Jn(Y|VLyP9}jaSTC6bITiDOpF9owN?OfYBaLGD zr?j@1H&dxKZgXgpFo&?onncI)hJFGz^E8{6pWfWQZ>G$RO2QZcN7$IbNgvMdpHNRm zp8aH=vdvj`njRy`U>4!}+Jwmq)gv)c?=$G87IhgUuabwC8-dbo$8Nj;S^I<>w(t{Y zMFeGv+HK{+P45Dqq|D}<JaXI$AWR(tU*63k!=aH0P~% zlvnl4Z`9yNt6zElu;R34=eXM&TpBiz{Oc{#ogNHF5_Y-6DPqd-5ri;N1UsO=PLuVe z$-)4aQnt|_iqxG0m=7M0g&5mSsv3>4={@`A7aQwat&h6hH}kg6{TT19yQISS#7I%X zB{Ff6`-ACG;cr65Qys4`emKvlk)4~hmxza!AeTVgbiy-;5v0q7wKp7RYe#xEFL721 ztzCfX9$-jn{8Ah3RZZOt@pHKokNIF`0u!={O&o`$G4v7mL8+QWUW|y`p;^5R#r5rnKu60? z5~h_>Rdx9?i>OgW-`rVE#9$7=G}#Rfi^nq)!z;2~lRB^Ntq05R6NSi8-+MC*02yNW z=9C!YBFq~PO?PZ_L`|*jNA?;w|nxo#Sm0)o)EYpP6aFV6@ z9?Urs&M`uS@-KuyvjJN3fZVQppju<7je0_ymSTi~F!H(iVa4W_@^8PhZ`oq#p0RzD zhV?WvAtC+bsZyHf;UX+hYa;qbHV@C26qzWahOh&mxD;s+CC+>DI!mJ+GbeJS2wF-= zqo7mFm?hV>e>;>Z=t3ljQ}$ZiIV8}JI_PaG$e`^W{Q-l)?GZ}=mNNh)$EH90U|cik z6%j{*xRjSgjkXS^+l9?DZ3P^ucdTxb2VhBa)|pX<1ie}30vw()LDXtUIO1a{S8-Uwmy%=+)LCdvP-?l%r!~6Wbh8eo2^{(#{ zmO+vLwjZWd9AI7o&c_tqDZkn$F&yNf_A6Ce7y}#X~0{{L9bgkNn7Ra-;qa8 z-AI6&kO+9XA}2!J542KeObO$juPf(aa!}sZk=qTa zn`IA+4x@(6Ti>S9y`0r=?ff7rH^JP;VEgyB|CWv&o1FsEhC9(BvvJ9fBv^ru?n z9l6`6&zHK9%I}%QR)sr!r}}dbwSMWoLki<~C#^ahH`md<6-k^Y?Tg6~-QDK*!EvU$ z6Z-S?%y-2l8-9h_nE|lfDPxHRwPwPFkG2DryqGlo(=*st$ImR?%n-Kb2`!^r=3WF& z#ob|r?avxk_bu$@*+I<^hOjNSRVHx@)X^KT)M-V(15czIN-CM=uTFlQ#1SMz0#Km- z3(F%abwYTI;9$FdZTXuE#Vp zI^Z|{fR?k&uLT6{#qsAvXlSA2^Q!+YoVE+@{Z%4!eXs3;wAt&H|0smKJ10C7oTzZ$ z-GFkkbn=g$d~aUBl!~L=)|_Vex?fVFrI&c?ACz}RIoK2xmt#t=hRE*2gtO_d^2rc{ z_nvM+poE6`oo-G6X{&H|P*Z=7ZL9}P3+;!;81eR2H*ZeE1txDFulFSQbcU>~8YmlB zz&Y6a#$^TDR_qPtwWl#!@Jgua`;=bU$l|0e#{iy$nBFk%mvbBeAra=6IGm({7UTVy zR1Z?Jz9m|rcT|^G))ghF+W0eEw7vfM-k=MWgJ&4?#^DGtGZpT?WLS+aa}TwBxP*c# zR`QUHx1T%H-L^X6EamCi$m0HqoA7d%$0^fE76zIE;D|UmQ1vU8Ue?>IMU z6eu^GzwGz16-M4ohHu&joe3^9k*6BTHYV39*q8R^*or#>yTA9Uc64abYk4tIHu)j5 zSaZ8uDQmy0FA4EU@WZULG@L)#UO5f~eI8U4u~G?b-oxf&*BfuT+r>>~?S*`&mOJm! z?;JbkkImD$u{)nhT%rLgW=;{P(dwQJEBv(%vsC!FJmqbP>m;I%#T)!BZEw z^rITRJ9*(|$lA!{f^yJ8$ zNyjmZO1l-AB}Qy`RHo;5e+=@)0m16eP^5K(YteO#hbJOy?G|Fv$a=Rpw2*O}>`+aw zmOQ1M$kO7iYMATFv;N5XE61q}B*wL}K#dHvow|agf)gMo^yyi1TcirV-N%n+W{6&< zaR2NnaMc)O&q5sRk7!m?POeqM;iP6ass~mP@#j!fl(?0m?4}Re(rxGkaOg3Zu0kQ& zYl*(Ll`R(Fu@~8>u}1khbtsqgT({0%XR|e&JkKqNzUzF~(Mq%d{sU>zd)-fIB8kqi zT9@ZVyOvGb1$;VJ^r0<^XTZb;(|xLtSjqa$l7Ci%EMUNn0JGRG;HGe1XJj2UwUcyB z?^%kqo0{na7+tRh=L#{=;;aiDc{;d-us_#`@j`M1fETHlYfcZO654-ETnCcsjiq{- z@z3@|!*Y>mfB_yoRUbi_L2XiG;vIeKH@XP-@5_F%o&UK{n5I$xgId{)6uzMCGb4mG*28%}2beONuI!_6vT9-rzm+-Xk zGtk>VD_Q6@twjHJg!BobqLf>VYn&{SAgKh{S7GN! zqux?XUH7u>b&rdDPbXvoli3Su5y>^^!&n~+77!>H3O@NL;!_zmI*~Gm-K59XnjDQ` zr~mP;*xFK{dtp-|?Xvm`vY}yBKeI4QfcmaQ*%!zo+pQ zHRRQk*;&L6)J7t)7#( zUx@8&ty0l^wJcvik=-*KJlScjASl8V9eq+b>`T-j#k}WNSqha(X>_P6i=CkMijBw+8s>fU2k@rdo?jz<^I7BGE@Pu@ znQ$UFaDVY|FH|B52?$gn74SU@Wr)&)#U&Cm;=R+VLeCx|5saei)uk!A$R21y zom}#}Pha~j8H&W^cQDoH?VbY_*Vj5gzGzAKH(z6Vq_Ge{lw%Qs{`~AL#zH8+1FD!_HBg55VlB)bPc9fZFnCfo-RBfyU^LDso+b8Bs(kf|#1E zKK97k6w%Tlew;kbBSmR8RX78MQ?pm{9gbt<^D2CPg|xZcY~blefQ;XM?c3E(;J&Qlb|9x28D2k(yPs{jB1 literal 0 HcmV?d00001 diff --git a/doc/log-forward.d/notification-02-warn.avif b/doc/log-forward.d/notification-02-warn.avif new file mode 100644 index 0000000000000000000000000000000000000000..ff61c0c0441d1cc43df00afa6678030f6ee08a1c GIT binary patch literal 8622 zcmXwdWl$VU)9vE!5L^?S#UZ$Ba0nJ$7T92mySuvwcekLy-Q5=_xNDFAH_v

#6C} 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 qJbFNJ literal 0 HcmV?d00001 diff --git a/doc/log-forward.d/notification.avif b/doc/log-forward.d/notification.avif deleted file mode 100644 index a0f9ab339175ae768e1e791bd701a2a91dd5bc57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6178 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 Date: Fri, 21 Nov 2025 23:40:48 +0100 Subject: [PATCH 146/152] doc/netwatch-notify: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/netwatch-notify.d/notification-01-down.avif ----- >8 ----- [rsc] âŒī¸ Netwatch Notify: ipv6.eworm.de down The host 'ipv6.eworm.de' (2a01:4f8:222:1e83::80, ipv6.eworm.de) is down since 2025-11-18 11:33:18. ----- >8 ----- doc/netwatch-notify.d/notification-02-up.avif ----- >8 ----- [rsc] âœ…ī¸ Netwatch Notify: ipv6.eworm.de up The host 'ipv6.eworm.de' (2a01:4f8:222:1e83::80, ipv6.eworm.de) is up since 2025-11-18 11:43:15. It was down for 10 checks since 2025-11-18 11:33:18. ----- >8 ----- --- .../notification-01-down.avif | Bin 4193 -> 5126 bytes doc/netwatch-notify.d/notification-02-up.avif | Bin 4744 -> 6057 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/netwatch-notify.d/notification-01-down.avif b/doc/netwatch-notify.d/notification-01-down.avif index 894fb23ff4c3fa227e797d8ec03801bb59a61bd2..2257a0d3de2d384348884cb48fd8bf753c892e6a 100644 GIT binary patch delta 4936 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 Cp2T$k diff --git a/doc/netwatch-notify.d/notification-02-up.avif b/doc/netwatch-notify.d/notification-02-up.avif index 9021a93b9c174db32c78586d4dc3bf0f40ef6a4f..4147cb7779a06063d8c6526fa8a6de515f0deae9 100644 GIT binary patch delta 5874 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 mWWTLZ4y+F_y9zPRMy@pg From 9db7f4494cfbc77697a9a9a21519236cabddb9dc Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 21 Nov 2025 23:41:08 +0100 Subject: [PATCH 147/152] doc/sms-forward: update notifications MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/sms-forward.d/notification.avif ----- >8 ----- [rsc] đŸ“¨ī¸ SMS Forwarding from 7277 Received this message by rsc from 7277: đŸ“¨ī¸ On 2025-08-20 01:01:15+02:00 type class-0: Welcome to our network! ----- >8 ----- --- doc/sms-forward.d/notification.avif | Bin 4619 -> 4966 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/doc/sms-forward.d/notification.avif b/doc/sms-forward.d/notification.avif index 01eb7ba6713a1bff1b0e55e5c730050724a21477..14764a3cb5cae91932b2e9326f7d7e5d7ce20630 100644 GIT binary patch delta 4774 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 AMgRZ+ delta 4426 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 QO1BPWb4(1-z}@Qr;6avvkpKVy From daeb173dbcee7384a6dfa9fc45a1c1da1df3ba1a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 25 Nov 2025 18:44:52 +0100 Subject: [PATCH 148/152] doc/check-routeros-update: add screenshot from terminal --- doc/check-routeros-update.d/terminal.avif | Bin 0 -> 2163 bytes doc/check-routeros-update.md | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 doc/check-routeros-update.d/terminal.avif diff --git a/doc/check-routeros-update.d/terminal.avif b/doc/check-routeros-update.d/terminal.avif new file mode 100644 index 0000000000000000000000000000000000000000..af950593e0d63d10e532d01a32b54a6fd1a4d1b7 GIT binary patch literal 2163 zcmXv|2|N>gA0MIIjLG9%(;Phsxz7^0=bTZ5nQPi?W|muQ6tDI0qDdnmMM%j*2cFz9 zDfdwbLp0||a=g>~d4B)T|M$KApa1U%006*2#ArN{gbo65>IkvuAT2B!83Z%eGUr&! z*gzukDC5+rkN^zf{}cegqfx|v`M)TFM-#EX1sA6)pfNbqk+K8;xH#vi1Gpprfa87~ zu8Ky7{T})|k>Q9yZjODVkR(kl3mgXbdsZkKPr!40do&(}Egj41OqnwdF`tz_8e2hZ+jrZQETu>ZbvoHXXaS41?+)71oBJM zxC5EA&@k>Gsq(UVo{Zs>SGnKdrH0r5d5tRPu`o*pflJ`Ba(Js5-(l((kDrauwM<@R zvo~hFCVJ8<%T3eWmQgo*)!&`#8?{|_+G#Pc{!o-xW&1w(9_{Lct@jjYS_>L=Xw-P% z5`?fXH?y4gHI?dts9evFb+3T_60cRoOR_55B=><2iaxrYAK7hLFh!CjqY+AF)HTm8 z#mP^^1B!#DuR>((xv_>&<5lw0`Xr!>X}RANFnHfb&YJDpmA>`Im)_bL8Ji4B0aJ#W zFtw#mlq{F9pLN-6ia^FMEwr>I$#~tlEG3GYg}6~Y+I8c4UeTLiVK|TH>iRn|MhoDY zf=Jocsh?N2tc=;N{fqDcUDsVhX|QF(c0$$);ve^Up8%nYamR<`(GG_&rfi0)-bBmv zGPXk7Ox$W4ITfDnS-K(hv^)CKNquwvmtqTiefr-A;{`}FHR2yuf*Jj}Fh8m^=~5h( zahAI!MgRFzm9Q=9jp6ujKYxkM5$|?N8|{I4nA9kd0t9CMMSE^8+nUv!@(NRNbBf(K z>^_-)YX2MAOv@3a>V;_JJJ0G33))&+n{T)^@fI<4c&C5Iq6kBJE}~@JW`9Dg(X15Z z=;@k;-^uhQJE%d)Ah1;?f(5(nTjhaWE%Lo$wE}g$WLHiX*BYF>Wn1-W=2Z%;&VZQj z_bRMVH+uYG%sGCYD8$&DND?)*&KKn+ob5@gk;5wUuqr-V2 zL*#putWeRp*hlFd3!eT@E6({|@`?q6W&#ja*<{F@UAun9e0|FjxY-i2nm3PD?abj( zOVbppSN~kuI&J)MKZ?KRFiz1H|#_Ck0CtrQws(&FAAx3;8rE07hxBjh=~!Bp@Z z>Pl4{xaoXq9dN!oYCyuZN`i%p9Es0y>kn5iy^%YR$^id8}&L!-($5eAW7LYd*O_h zxdT>3X*0;Q{=J?5=TX*(>xl0+9ZF9ad3lBr$a_3|+Buca@R^g&`p8aPF6`}sL&t_t zy;bJkSAWc>gl+F!A3AvQ>%*l2KI0ZI<$i{bF_)utOfGCpr^aFBhvHyd~BdIp}d}Po;tHqvEYsr<~;RS{BKFNw`h zg-rg2B0#yB1em$TkF9o?GW$aKq&abu_TTDzzVD%2bthFjfW#Lfhw;k8n(g~s1F@&6 z{VSBNz1PBtmo+H#G5b|DyO+1G312@juj^AXr7szqSTm*m>Y=@XXHOvh5WX6beVx^& z7fV<&pnHXw{iQSE(peQiLh4Mc35MJdRWJRX`{S;3E=q8J`{xEJ=o6(sWOi~p_? z_7hoc%i5-hI^J31(h8Ws!?X`7bT;-%YAM3^hYPjR*povFjZwTEBAcYs+m);A?k1x? zsV5ADD1Fs`cJ6*T4SyuS_+d+NCWJVh|B? zn@8YIrB|DM*#^SpCL<5hb5Oecp-a1elO&4)(3>ieu}t|0f`0J+ptWL0zVG80^s$5l znY6;!1p@2QXFn?{n~@n4V&5ok0<-E5Yx`xO=>e)L>Kf*qY*~qmNrA$98kC0EBf*!bd7k>^&>n_xV1~c7jWc&@jSt<{>rywN1;&XSNkfZZ+pZ|IFNS SCOnxfr6sQzgDUsdo&N`(d)jLN literal 0 HcmV?d00001 diff --git a/doc/check-routeros-update.md b/doc/check-routeros-update.md index 516dc62..029182d 100644 --- a/doc/check-routeros-update.md +++ b/doc/check-routeros-update.md @@ -88,6 +88,8 @@ Be notified when run from scheduler or run it manually: If an update is found you can install it right away. +![Terminal](check-routeros-update.d/terminal.avif) + Installing script [packages-update](packages-update.md) gives extra options. Tips & Tricks From 1f11f72d1827748e62c5cac885c5e9c5afdeede6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 27 Nov 2025 08:48:35 +0100 Subject: [PATCH 149/152] global-functions: $SymbolByUnicodeName: add special with magic --- global-functions.rsc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index db9eac6..412bd0b 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1672,6 +1672,7 @@ :set SymbolByUnicodeName do={ :local Name [ :tostr $1 ]; + :global EitherOr; :global LogPrintOnce; :global SymbolsExtra; @@ -1713,12 +1714,18 @@ "white-heavy-check-mark"="\E2\9C\85" }, $SymbolsExtra); + :local Magic [ :pick [ /system/clock/get date ] 4 10 ]; + :local Special { + "large-orange-circle-04-01"="\F0\9F\8D\8A"; + "large-orange-circle-10-31"="\F0\9F\8E\83"; + "large-red-circle-04-01"="\F0\9F\8D\92" }; + :if ([ :len ($Symbols->$Name) ] = 0) do={ $LogPrintOnce warning $0 ("No symbol available for name '" . $Name . "'!"); :return ""; } - :return (($Symbols->$Name) . "\EF\B8\8F"); + :return ([ $EitherOr ($Special->($Name . $Magic)) ($Symbols->$Name) ] . "\EF\B8\8F"); } # return symbol for notification From 7caaa6232198ae3c0376b2364c39d9d4372c396b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 27 Nov 2025 11:21:55 +0100 Subject: [PATCH 150/152] check-perpetual-license: add scroll symbol in notification MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit doc/check-perpetual-license.d/notification-01-warn.avif ----- >8 ----- [rsc] đŸ“œâš ī¸ License about to expire! Your license failed to renew and is about to expire on 2025-09-13 12:12:23 on rsc... ----- >8 ----- doc/check-perpetual-license.d/notification-02-renew.avif ----- >8 ----- [rsc] đŸ“œâœ…ī¸ License renewed Your license was successfully renewed on rsc. It is now valid until 2025-10-25 08:42:46. ----- >8 ----- --- check-perpetual-license.rsc | 6 +++--- .../notification-01-warn.avif | Bin 4044 -> 4105 bytes .../notification-02-renew.avif | Bin 3944 -> 4021 bytes global-functions.rsc | 1 + 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/check-perpetual-license.rsc b/check-perpetual-license.rsc index c2f0dff..a88498d 100644 --- a/check-perpetual-license.rsc +++ b/check-perpetual-license.rsc @@ -42,7 +42,7 @@ $LogPrint warning $ScriptName ("Your license expired on " . ($License->"deadline-at") . "!"); :if ($SentCertificateNotification != "expired") do={ $SendNotification2 ({ origin=$ScriptName; \ - subject=([ $SymbolForNotification "warning-sign" ] . "License expired!"); \ + subject=([ $SymbolForNotification "scroll,warning-sign" ] . "License expired!"); \ message=("Your license expired on " . ($License->"deadline-at") . \ ", can no longer update RouterOS on " . $Identity . "...") }); :set SentCertificateNotification "expired"; @@ -55,7 +55,7 @@ $LogPrint warning $ScriptName ("Your license will expire on " . ($License->"deadline-at") . "!"); :if ($SentCertificateNotification != "warning") do={ $SendNotification2 ({ origin=$ScriptName; \ - subject=([ $SymbolForNotification "warning-sign" ] . "License about to expire!"); \ + subject=([ $SymbolForNotification "scroll,warning-sign" ] . "License about to expire!"); \ message=("Your license failed to renew and is about to expire on " . \ ($License->"deadline-at") . " on " . $Identity . "...") }); :set SentCertificateNotification "warning"; @@ -68,7 +68,7 @@ [ :totime ($License->"deadline-at") ] - 4w > [ :timestamp ]) do={ $LogPrint info $ScriptName ("Your license was successfully renewed."); $SendNotification2 ({ origin=$ScriptName; \ - subject=([ $SymbolForNotification "white-heavy-check-mark" ] . "License renewed"); \ + subject=([ $SymbolForNotification "scroll,white-heavy-check-mark" ] . "License renewed"); \ message=("Your license was successfully renewed on " . $Identity . \ ". It is now valid until " . ($License->"deadline-at") . ".") }); :set SentCertificateNotification; diff --git a/doc/check-perpetual-license.d/notification-01-warn.avif b/doc/check-perpetual-license.d/notification-01-warn.avif index fb6b56ab49bada738b2ee356b6a70d890c330d54..aa36e45f11191afea75960cb8fd5a79db50f0ea0 100644 GIT binary patch delta 3314 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 delta 3253 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 nLE2_%r=8MZVXRk|+aD9q<$ziPKfzR9)l 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 SW482}fv&9G?Dwa-2i1_lC09cL delta 3155 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 tE|%W~ueTlFXA8G#69oY?%Up`8*lK*kM!uRM Date: Mon, 1 Dec 2025 11:25:00 +0100 Subject: [PATCH 151/152] README: add missing space --- README.d/04-import-scripts.avif | Bin 4805 -> 4813 bytes README.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/README.d/04-import-scripts.avif b/README.d/04-import-scripts.avif index 27380eba1666633b70e4c4fd2746d27ad2f9205b..c09949ab604d054e2d3d2cef93faf466e3bb0216 100644 GIT binary patch delta 243 zcmVGHHeuB5)!`^u`ICf{patH(YybZv9onpVOe!uY`)F9ct#T zI*j5LkXT4D;4*(S?>Qer+I*$-;Qu}QGK-}fDL$}Iu^5#pqV?ic@Qaan=Fwrj1<6lw zBfWX9Prwvgnf4fn!ceb30Co}{`KmnG=7Vn?G(PB=GD|`TdXOnkIhMJzLF8{`FEaN8 tW^tkXA3eE2DXf0gKL#FcmcAJd6f~mZDe6|5&#MYI3==ttP(P%vmXK95Pv|Kv}*>`Dse{r z!Yyprgb<4s5F#FL-stO0*p;FNSZs6sZ}4+&9BeBhs^#Kkj~iDlEQlfb?nevOz2bZn z_Ol-&ML*v|s0@&CDm+x-K7`6tmOhe)dwPNXz{pIqhUt#!?2)XUoF2Ea|CnzG!Vp=! zRcl}V9Vf|59;W=ir$_?_1Rf%$J}Q&oAtZd6s9hLFlM<+%(Cnlhb~helwtnj|F@`iv lL-(7Q=O=+C8zh6N%|OX30tBS(tu-w{kcY%|Qb_&3n>?&VYhVBX diff --git a/README.md b/README.md index 0aedfcf..d562ada 100644 --- a/README.md +++ b/README.md @@ -128,7 +128,7 @@ date and time is set correctly! Now let's download the main scripts and add them in configuration on the fly. - :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://rsc.eworm.de/main/" . $Script . ".rsc") output=user as-value]->"data"); }; + :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://rsc.eworm.de/main/" . $Script . ".rsc") output=user as-value ]->"data"); }; ![screenshot: import scripts](README.d/04-import-scripts.avif) From c0678f0501dfccc56b692a64439b4bd1982149a1 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 1 Dec 2025 11:25:28 +0100 Subject: [PATCH 152/152] INITIAL-COMMANDS: add missing space --- INITIAL-COMMANDS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md index 374f716..e580bc5 100644 --- a/INITIAL-COMMANDS.md +++ b/INITIAL-COMMANDS.md @@ -41,7 +41,7 @@ Run the complete base installation: :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ :put "Installing $Script..."; /system/script/remove [ find where name=$Script ]; - /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ($BaseUrl . $Script . ".rsc") output=user as-value]->"data"); + /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ($BaseUrl . $Script . ".rsc") output=user as-value ]->"data"); }; :put "Loading configuration and functions..."; /system/script { run global-config; run global-functions; };