[Logwatch] patch: iptables support for LogWatch 3.3/Redhat 7.3

James Wysynski wysynskij@yahoo.com
Fri, 2 Aug 2002 19:23:52 -0700 (PDT)


--0-733912023-1028341432=:79050
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi everyone,

After trying both the stock iptables parsing and
iptables scripts posted on the mailing lists(s) for
iptables, I got frustrated and decided to write my
own, since none that I have tried worked for me so
far.

This script differs from some of the previous posts in
the following ways:

1) It is less dependent on having consecutive elements
to be parsed and instead relies on the order *only*. 
This fixed a problem I had in that there is a MAC
element between OUT and SRC, but the scripts expected
them to be consecutive.

2) It allows null entries for IN/OUT (ie. IN=eth0
OUT=) and other elements which is a big problem that
tripped up other scripts I tried.

3) It allows you to have anything at all (other than
'IN=') in your prefix string, including whitespace and
non-alphanumeric characters.  'IN= ' is considered to
be the start of the elements.

4) It does a case-insensitive check for commonly used
ipchains keywords in your prefix - 'deny', 'reject',
'accept', and 'drop' - and categories the packets as
such if the prefix string contains one of these words.
 If it does not, packets will be categorizes as
"logged" in the output.   

5) It handles ICMP packets (and possibly others)
properly, which do not have source or destination port
elements in the logfile.

The script works on my box with Logwatch 3.3/RedHat
7.3 (iptables-1.2.5-3/kernel-2.4.18-5) and hopefully
on other kernel/iptables flavors.

Here's an example of the input from my logfiles:

ICMP drop IN=eth0 OUT=
MAC=00:03:47:05:49:33:00:10:67:00:b2:50:08:00
SRC=208.185.54.14 DST=67.115.101.130 LEN=84 TOS=0x00
PREC=0x00 TTL=54 ID=4819 PROTO=ICMP TYPE=8 CODE=0
ID=37671 SEQ=19189 

UDP drop IN=eth0 OUT= 
MAC=00:03:47:05:49:33:00:10:67:00:b2:50:08:00
SRC=62.4.75.34 DST=67.115.101.130 LEN=73 TOS=0x00
PREC=0x00 TTL=52 ID=23112 PROTO=UDP SPT=45640 DPT=53
LEN=53 

and the resulting output:

Dropped packets from 208.185.54.14.speedera.com
(208.185.54.14).
  Port adsl-67-115-101-130.dsl.sntc01.pacbell.net
(67.115.101.130):domain	(udp,eth0,,UDP drop ): 2
packet(s).
  Port adsl-67-115-101-130.dsl.sntc01.pacbell.net
(67.115.101.130)	(icmp,eth0,,ICMP drop ): 2 packet(s).
Total of 4 packet(s).

Dropped packets from speedera-gw.ams2.nl.mfnx.net
(62.4.75.34).
  Port adsl-67-115-101-130.dsl.sntc01.pacbell.net
(67.115.101.130):domain	(udp,eth0,,UDP drop ): 2
packet(s).
  Port adsl-67-115-101-130.dsl.sntc01.pacbell.net
(67.115.101.130)	(icmp,eth0,,ICMP drop ): 3 packet(s).
Total of 5 packet(s).

Give it a shot and see what you think.  I have
attached both the full script and a diff for public
consumption.
Comments/changes/suggestions are welcome; I can be
reached at wysynskij@yahoo.com or I do read the list
archives periodically.

-James


__________________________________________________
Do You Yahoo!?
Yahoo! Health - Feel better, live better
http://health.yahoo.com
--0-733912023-1028341432=:79050
Content-Type: application/octet-stream; name=kernel
Content-Transfer-Encoding: base64
Content-Description: kernel
Content-Disposition: attachment; filename=kernel

IyEvdXNyL2Jpbi9wZXJsIC13CiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjCiMgJElkOiBrZXJuZWwsdiAxLjkgMjAwMi8wNi8xNyAwMjo0Nzo0MiBr
aXJrIEV4cCAkCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiMgJExv
Zzoga2VybmVsLHYgJAojIFJldmlzaW9uIDEuOSAgMjAwMi8wNi8xNyAwMjo0
Nzo0MiAga2lyawojICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKIwojIFJl
dmlzaW9uIDEuOGQgMjAwMi8wNi8xMyBncyAJb3JkZXIgYnkgJGZyb21ob3N0
IGFnYWluCiMgUmV2aXNpb24gMS44YyAyMDAyLzA2LzEyIGdzIAlmaXggYnVn
IHRoYXQgcHJldmVudGVkIG91dHB1dAojIFJldmlzaW9uIDEuOGIgMjAwMi8w
Ni8xMSBncyAJaW1wcm92ZWQgaXB0YWJsZXMgc3VwcG9ydAojIFJldmlzaW9u
IDEuOGEgMjAwMi8wNi8wNyBncyAJYWRkZWQgaXB0YWJsZXMgc3VwcG9ydCBh
Z2FpbgojIFJldmlzaW9uIDEuOCAgMjAwMi8wMy8yOCAwNTowMDowMCAga2ly
awojIC0gSW1wbGVtZW50ZWQgc2V2ZXJhbCBidWcgZml4ZXMgYW5kIHBhdGNo
ZXMgdGhhdCBoYXZlIGJlZW4gc2VudCBpbgojIC0gRml4ZWQgYSBwb3NzaWJs
ZSByb290IGV4cGxvaXQgdXNpbmcgYSByYWNlIGNvbmRpdGlvbiBpbiAvdG1w
CiMgLSBGaXhlZCBidWdzIDQ2MzcxLCA1NjE5MSwgNTg1NzgsIDYxMjAyLCA2
MTgyOSwgNjE4MzEsIDYxODMyIGZyb20gYnVnemlsbGEucmVkaGF0LmNvbQoj
CiMgUmV2aXNpb24gMS43ICAyMDAwLzA5LzIyIDE1OjU5OjA1ICBraXJrCiMg
UHJlcHBpbmcgZm9yIFZlcnNpb24gMi4wLjEKIwojIFJldmlzaW9uIDEuNiAg
MjAwMC8wOS8yMiAxNDo0NzowNCAga2lyawojICoqKiBlbXB0eSBsb2cgbWVz
c2FnZSAqKioKIwojIFJldmlzaW9uIDEuNSAgMTk5OS8wMi8yMyAwMDozOTo1
NCAga2lyawojIEFkZGVkIGNvZGUgd3JpdHRlbiBieSBGYWJyaXppbyBaZW5v
IENvcm5lbGxpIDx6ZW5vQGZpbGlidXN0YS5jcmVtYS51bmltaS5pdD4uCiMK
IyBSZXZpc2lvbiAxLjQgIDE5OTgvMDQvMDggMTg6MzI6MDMgIGtpcmsKIyBB
cHBsaWVkIGNoYW5nZXMgc3VibWl0dGVkIGJ5IEx1dWsgZGUgQm9lciA8bHV1
a19kZV9ib2VyQHBpLm5ldD4uLiBUaGFua3MhCiMKIyBSZXZpc2lvbiAxLjMg
IDE5OTgvMDIvMjMgMDE6MTY6NTcgIGtpcmsKIyBHZXR0aW5nIHJlYWR5IGZv
ciBhIGZpcnN0IGRpc3RyaWJ1dGlvbgojCiMgUmV2aXNpb24gMS4yICAxOTk4
LzAyLzIyIDIyOjM2OjI4ICBraXJrCiMgQ3JlYXRlZCBuYW1lZC4uLgojCiMg
UmV2aXNpb24gMS4xICAxOTk4LzAyLzIyIDIxOjQ1OjQxICBraXJrCiMgQWRk
ZWQga2VybmVsIG1lc3NhZ2UgcHJvY2Vzc2luZwojCiMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjCgojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwojIFRoaXMgd2FzIHdyaXR0
ZW4gYW5kIGlzIG1haW50YWluZWQgYnk6CiMgICAgS2lyayBCYXVlciA8a2ly
a0BrYXliZWUub3JnPgojCiMgUGxlYXNlIHNlbmQgYWxsIGNvbW1lbnRzLCBz
dWdnZXN0aW9ucywgYnVnIHJlcG9ydHMsCiMgICAgZXRjLCB0byBraXJrQGth
eWJlZS5vcmcuCiMKIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCiREZXRhaWwgPSAkRU5WeydMT0dX
QVRDSF9ERVRBSUxfTEVWRUwnfTsKIyRNYXhGbG9vZCA9ICRFTlZ7J01BWEZM
T09EJ307CiRNYXhGbG9vZCA9IDEwOwokTWF4TnVtID0wOwoKc3ViIExvb2t1
cElQIHsKICAgbXkgKCRuYW1lLCAkYTEsICRhMiwkYTMsJGE0LCRQYWNrZWRB
ZGRyLCRBZGRyKTsKICAgJEFkZHIgPSAkX1swXTsKICAgKCRhMSwkYTIsJGEz
LCRhNCkgPSBzcGxpdCAvXC4vLCRBZGRyOwogICAkUGFja2VkQWRkciA9IHBh
Y2soJ0M0JywkYTEsJGEyLCRhMywkYTQpOwogICBpZiAoJG5hbWUgPSBnZXRo
b3N0YnlhZGRyICgkUGFja2VkQWRkciwyKSkgewogICAgICByZXR1cm4gKCRu
YW1lIC4gIiAoIiAuICRBZGRyIC4gIikiKTsKICAgfSBlbHNlIHsKICAgICAg
cmV0dXJuICgkQWRkcik7CiAgIH0KfQoKc3ViIExvb2t1cFNlcnZpY2Ugewog
ICBteSAoJHBvcnQsICRwcm90bywgJHNlcnZpY2UpOwogICAoJHBvcnQsICRw
cm90bykgPSAoJF9bMF0sICRfWzFdKTsKICAgaWYgKCRzZXJ2aWNlID0gZ2V0
c2VydmJ5cG9ydCAoJHBvcnQsICRwcm90bykpIHsKICAgICAgcmV0dXJuICgk
c2VydmljZSk7CiAgIH0KICAgcmV0dXJuICgkcG9ydCk7Cn0KCnN1YiBMb29r
dXBQcm90b2NvbCB7CiAgIG15ICgkcHJvdG8sICRuYW1lKTsKICAgJHByb3Rv
ID0gJF9bMF07CiAgIGlmICgkbmFtZSA9IGdldHByb3RvYnludW1iZXIgKCRw
cm90bykpIHsKICAgICAgcmV0dXJuICgkbmFtZSk7CiAgIH0KICAgcmV0dXJu
ICgkcHJvdG8pOwp9Cgp3aGlsZSAoZGVmaW5lZCgkVGhpc0xpbmUgPSA8U1RE
SU4+KSkgewogICBjaG9tcCgkVGhpc0xpbmUpOwogICBuZXh0IGlmICgkVGhp
c0xpbmUgZXEgIiIpOwogICAjIElQQ0hBSU5TIAogICBpZiAoICgkZnJvbSwk
b24pID0gKCAkVGhpc0xpbmUgPX4gL15XYXJuaW5nOiBwb3NzaWJsZSBTWU4g
Zmxvb2QgZnJvbSAoW14gXSspIG9uIChbXiBdKyk6LisgU2VuZGluZyBjb29r
aWVzLyApICkgewogICAgICAkRnVsbGZyb20gPSBMb29rdXBJUCgkZnJvbSk7
CiAgICAgICRGdWxsb24gPSBMb29rdXBJUCgkb24pOwogICAgICAkU1lOZmxv
b2R7JEZ1bGxvbn17JEZ1bGxmcm9tfSsrOwogICB9IGVsc2lmKCAoJFRVLCRm
cm9tLCRwb3J0LCRvbikgPSAoICRUaGlzTGluZSA9fiAvSVAgZnctaW4gZGVu
eSBcdysgKFx3KykgKFteOl0rKTpcZCsgKFteOl0rKTooXGQrKSAvICkgKXsK
ICAgICAgaWYoJE1heE51bSA8ICsrJFRDUHNjYW57JFRVfXskZnJvbX0pIHsK
ICAgICAgICAgJE1heE51bSA9ICRUQ1BzY2FueyRUVX17JGZyb219CiAgICAg
IH0KICAgICAgJHBvcnQ9MDsKICAgfSBlbHNpZiAoICgkY2hhaW4sJGlmLCRw
cm90bywkaXAsJHBvcnQpID0gKCAkVGhpc0xpbmUgPX4gL15QYWNrZXQgbG9n
OiAoXHcrKSBSRUpFQ1QgKFx3KykgUFJPVE89KFswLTldKykgKFteOl0rKTpb
MC05XSsgW146XSs6KFswLTldKykvICkgKXsKICAgICAgJGhvc3QgPSBMb29r
dXBJUCgkaXApOwogICAgICAkcHJvdG8gPSBMb29rdXBQcm90b2NvbCgkcHJv
dG8pOwogICAgICAkcG9ydCA9IExvb2t1cFNlcnZpY2UoJHBvcnQsJHByb3Rv
KTsKICAgICAgaWYgKCRwb3J0IG5lICdhdXRoJykgewogICAgICAgICAkUmVq
ZWN0Q291bnR7JGhvc3R9Kys7CiAgICAgICAgICRSZWplY3RlZHskaG9zdH17
IiRwb3J0XHRcKCRwcm90bywkaWYsJGNoYWluXCkifSsrOwogICAgICB9CiAg
IH0gZWxzaWYoICgkY2hhaW4sJGlmLCRwcm90bywkaXAsJHBvcnQpID0gKCAk
VGhpc0xpbmUgPX4gL15QYWNrZXQgbG9nOiAoXHcrKSBERU5ZIChcdyspIFBS
T1RPPShbMC05XSspIChbXjpdKyk6WzAtOV0rIFteOl0rOihbMC05XSspLyAp
ICl7CiAgICAgICRob3N0ID0gTG9va3VwSVAoJGlwKTsKICAgICAgJHByb3Rv
ID0gTG9va3VwUHJvdG9jb2woJHByb3RvKTsKICAgICAgJHBvcnQgPSBMb29r
dXBTZXJ2aWNlKCRwb3J0LCRwcm90byk7CiAgICAgIGlmICgkcG9ydCBuZSAi
YXV0aCIpIHsgIyBkb24ndCBjYXJlIGFib3V0IGF1dGgKICAgICAgICAgJERl
bnlDb3VudHskaG9zdH0rKzsKICAgICAgICAgJERlbmllZHskaG9zdH17IiRw
b3J0XHRcKCRwcm90bywkaWYsJGNoYWluXCkifSsrOwogICAgICB9CiAgIH0g
ZWxzaWYoICgkY2hhaW4sJGlmLCRwcm90bywkaXAsJHBvcnQpID0gKCAkVGhp
c0xpbmUgPX4gL15QYWNrZXQgbG9nOiAoXHcrKSBBQ0NFUFQgKFx3KykgUFJP
VE89KFswLTldKykgKFteOl0rKTpbMC05XSsgW146XSs6KFswLTldKykvICkg
KXsKICAgICAgJGhvc3QgPSBMb29rdXBJUCgkaXApOwogICAgICAkcHJvdG8g
PSBMb29rdXBQcm90b2NvbCgkcHJvdG8pOwogICAgICAkcG9ydCA9IExvb2t1
cFNlcnZpY2UoJHBvcnQsJHByb3RvKTsKICAgICAgaWYgKCRwb3J0IG5lICJh
dXRoIikgeyAjIGRvbid0IGNhcmUgYWJvdXQgYXV0aAogICAgICAgICAkQWNj
ZXB0Q291bnR7JGhvc3R9Kys7CiAgICAgICAgICRBY2NlcHRlZHskaG9zdH17
IiRwb3J0XHRcKCRwcm90bywkaWYsJGNoYWluXCkifSsrOwogICAgICB9CiAg
ICMgSVBUQUJMRVMKICAgfSBlbHNpZiAoICgkY2hhaW4sJGlmaW4sJGlmb3V0
LCRmcm9taXAsJHRvaXAsJHByb3RvLCRmcm9tcG9ydCwkdG9wb3J0KSA9ICgk
VGhpc0xpbmUgPX4gL14oLiopSU49KFx3KikuKk9VVD0oXHcqKS4qU1JDPShb
XGR8XC5dKikuKkRTVD0oW1xkfFwuXSopLipQUk9UTz0oXHcqKS4qU1BUPShc
dyopLipEUFQ9KFx3KikvICkgKXsKICAgICAgJGZyb21ob3N0ID0gTG9va3Vw
SVAoJGZyb21pcCk7CiAgICAgICR0b2hvc3QgPSBMb29rdXBJUCgkdG9pcCk7
CiAgICAgIGlmICggJCBwcm90byA9fiAvXGQrLyApIHsKICAgICAgICAgJHBy
b3RvID0gTG9va3VwUHJvdG9jb2woJHByb3RvKTsKICAgICAgfSBlbHNlIHsK
ICAgICAgICAgJHByb3RvID0gbGMoJHByb3RvKTsKICAgICAgfQogICAgICAk
ZnJvbXBvcnQgPSBMb29rdXBTZXJ2aWNlKCRmcm9tcG9ydCwkcHJvdG8pOwog
ICAgICAkdG9wb3J0ID0gTG9va3VwU2VydmljZSgkdG9wb3J0LCRwcm90byk7
CiAgICAgIAogICAgICBpZiAoJHRvcG9ydCBuZSAiYXV0aCIpIHsgIyBkb24n
dCBjYXJlIGFib3V0IGF1dGgKCWlmICggJGNoYWluID1+IC8uKnJlamVjdC4q
L2kgKSB7CSAgICAKICAgICAgICAgICAkUmVqZWN0Q291bnR7JGZyb21ob3N0
fSsrOwogICAgICAgICAgICRSZWplY3RlZHskZnJvbWhvc3R9eyIkdG9ob3N0
OiR0b3BvcnRcdFwoJHByb3RvLCRpZmluLCRpZm91dCwkY2hhaW5cKSJ9Kys7
CiAgICAgICAgfSBlbHNpZiAoICRjaGFpbiA9fiAvLipkcm9wLiovaSApIHsK
ICAgICAgICAgICAgJERyb3BDb3VudHskZnJvbWhvc3R9Kys7CiAgICAgICAg
ICAgJERyb3BwZWR7JGZyb21ob3N0fXsiJHRvaG9zdDokdG9wb3J0XHRcKCRw
cm90bywkaWZpbiwkaWZvdXQsJGNoYWluXCkifSsrOwogICAgICAgIH0gZWxz
aWYgKCAkY2hhaW4gPX4gLy4qZGVueS4qL2kgKSB7CiAgICAgICAgICAgICRE
ZW55Q291bnR7JGZyb21ob3N0fSsrOwogICAgICAgICAgICREZW5pZWR7JGZy
b21ob3N0fXsiJHRvaG9zdDokdG9wb3J0XHRcKCRwcm90bywkaWZpbiwkaWZv
dXQsJGNoYWluXCkifSsrOwogICAgICAgIH0gZWxzaWYgKCAkY2hhaW4gPX4g
Ly4qYWNjZXB0LiovaSApIHsKICAgICAgICAgICAkQWNjZXB0Q291bnR7JGZy
b21ob3N0fSsrOwogICAgICAgICAgICRBY2NlcHRlZHskZnJvbWhvc3R9eyIk
dG9ob3N0OiR0b3BvcnRcdFwoJHByb3RvLCRpZmluLCRpZm91dCwkY2hhaW5c
KSJ9Kys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAkaXB0Q291bnR7
JGZyb21ob3N0fSsrOwogICAgICAgICAgICRpcHR7JGZyb21ob3N0fXsiJHRv
aG9zdDokdG9wb3J0XHRcKCRwcm90bywkaWZpbiwkaWZvdXQsJGNoYWluXCki
fSsrOwogICAgICAgIH0KICAgICAgfQogICB9IGVsc2lmICggKCRjaGFpbiwk
aWZpbiwkaWZvdXQsJGZyb21pcCwkdG9pcCwkcHJvdG8pID0gKCRUaGlzTGlu
ZSA9fiAvXiguKilJTj0oXHcqKS4qT1VUPShcdyopLipTUkM9KFtcZHxcLl0q
KS4qRFNUPShbXGR8XC5dKikuKlBST1RPPShcdyopLyApICl7CiAgICAgICRm
cm9taG9zdCA9IExvb2t1cElQKCRmcm9taXApOwogICAgICAkdG9ob3N0ID0g
TG9va3VwSVAoJHRvaXApOwogICAgICBpZiAoICQgcHJvdG8gPX4gL1xkKy8g
KSB7CiAgICAgICAgICRwcm90byA9IExvb2t1cFByb3RvY29sKCRwcm90byk7
CiAgICAgIH0gZWxzZSB7CiAgICAgICAgICRwcm90byA9IGxjKCRwcm90byk7
CiAgICAgIH0KCiAgICAgICMgdGhpcyBjb3ZlcnMgSUNNUCBwYWNrZXRzIGFu
ZCBvdGhlcnMgdGhhdCBkb24ndCBoYXZlIGEgZnJvbS90byBwb3J0CiAgICAg
IGlmICggJGNoYWluID1+IC8uKnJlamVjdC4qL2kgKSB7CSAgICAKICAgICAg
ICAgJFJlamVjdENvdW50eyRmcm9taG9zdH0rKzsKICAgICAgICAgJFJlamVj
dGVkeyRmcm9taG9zdH17IiR0b2hvc3RcdFwoJHByb3RvLCRpZmluLCRpZm91
dCwkY2hhaW5cKSJ9Kys7CiAgICAgIH0gZWxzaWYgKCAkY2hhaW4gPX4gLy4q
ZHJvcC4qL2kgKSB7CiAgICAgICAgICREcm9wQ291bnR7JGZyb21ob3N0fSsr
OwogICAgICAgICAkRHJvcHBlZHskZnJvbWhvc3R9eyIkdG9ob3N0XHRcKCRw
cm90bywkaWZpbiwkaWZvdXQsJGNoYWluXCkifSsrOwogICAgICB9IGVsc2lm
ICggJGNoYWluID1+IC8uKmRlbnkuKi9pICkgewogICAgICAgICAkRGVueUNv
dW50eyRmcm9taG9zdH0rKzsKICAgICAgICAgJERlbmllZHskZnJvbWhvc3R9
eyIkdG9ob3N0XHRcKCRwcm90bywkaWZpbiwkaWZvdXQsJGNoYWluXCkifSsr
OwogICAgICB9IGVsc2lmICggJGNoYWluID1+IC8uKmFjY2VwdC4qL2kgKSB7
CiAgICAgICAgICRBY2NlcHRDb3VudHskZnJvbWhvc3R9Kys7CiAgICAgICAg
ICRBY2NlcHRlZHskZnJvbWhvc3R9eyIkdG9ob3N0XHRcKCRwcm90bywkaWZp
biwkaWZvdXQsJGNoYWluXCkifSsrOwogICAgICB9IGVsc2UgewogICAgICAg
ICAkaXB0Q291bnR7JGZyb21ob3N0fSsrOwogICAgICAgICAkaXB0eyRmcm9t
aG9zdH17IiR0b2hvc3RcdFwoJHByb3RvLCRpZmluLCRpZm91dCwkY2hhaW5c
KSJ9Kys7CiAgICAgIH0KICAgfSBlbHNlIHsKICAgICAgIyBYWFggRm9yIG5v
dywgZ29pbmcgdG8gaWdub3JlIGFsbCBvdGhlciBrZXJuZWwgbWVzc2FnZXMg
YXMgdGhlcmUKICAgICAgIyBYWFggYXJlIHByYWN0aWNhbGx5IGFuIGluZmlu
aXRlIG51bWJlciBhbmQgbW9zdCBvZiB0aGVtIGFyZSBvYnZpb3VzbHkKICAg
ICAgIyBYWFggbm90IHBhcnNlZCBoZXJlIGF0IHRoaXMgdGltZS4KICAgICAg
JEtlcm5lbHskVGhpc0xpbmV9Kys7ICAgICAKICAgfQp9CgogICBpZiAoICAg
KGtleXMgJVNZTmZsb29kKQogICAgICAgICBvciAoKCRNYXhOdW0gPiAkTWF4
Rmxvb2QpIGFuZCAoa2V5cyAlVENQc2NhbikpCiAgICAgICAgIG9yIChrZXlz
ICVSZWplY3RlZCkgb3IgKGtleXMgJURlbmllZCkgb3IgKGtleXMgJURyb3Bw
ZWQpCiAgICAgICAgIG9yICgoJERldGFpbCA+PSA1KSBhbmQgKGtleXMgJUtl
cm5lbCkpIAoJIG9yIChrZXlzICVpcHQpICkgewoKICAgICAgcHJpbnQgIlxu
XG4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBLZXJuZWwgQmVnaW4gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSBcblxuIjsKCiAgICAgIGlmIChrZXlzICVT
WU5mbG9vZCkgewogICAgICAgICBwcmludCAiXG5XYXJuaW5nOiBTWU4gZmxv
b2Qgb246XG4iOwogICAgICAgICBmb3JlYWNoICRUaGlzT25lIChzb3J0IHsk
YSBjbXAgJGJ9IGtleXMgJVNZTmZsb29kKSB7CiAgICAgICAgICAgIHByaW50
ICIgICAiIC4gJFRoaXNPbmUgLiAiIGZyb206XG4iOwogICAgICAgICAgICBm
b3JlYWNoICROZXh0IChzb3J0IHskYSBjbXAgJGJ9IGtleXMgJXskU1lOZmxv
b2R7JFRoaXNPbmV9fSkgewogICAgICAgICAgICAgICBwcmludCAiICAgICAg
IiAuICROZXh0IC4gIjogJFNZTmZsb29keyRUaGlzT25lfXskTmV4dH0gVGlt
ZShzKVxuIjsKICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgIH0KICAg
ICAgaWYgKGtleXMgJVRDUHNjYW4gYW5kICRNYXhOdW0+JE1heEZsb29kKSB7
CiAgICAgICAgIHByaW50ICJcbldhcm5pbmc6IGlwZndhZG0gc2NhbiBkZXRl
Y3RlZCBvbjpcbiI7CiAgICAgICAgIGZvcmVhY2ggJFRoaXNPbmUgKHNvcnQg
eyRhIGNtcCAkYn0ga2V5cyAlVENQc2NhbikgewogICAgICAgICAgICBwcmlu
dCAiICAgIiAuICRUaGlzT25lIC4gIiBmcm9tOlxuIjsKICAgICAgICAgICAg
Zm9yZWFjaCAkTmV4dCAoc29ydCB7JGEgY21wICRifSBrZXlzICV7JFRDUHNj
YW57JFRoaXNPbmV9fSkgewogICAgICAgICAgICAgICAkVENQc2NhbnskVGhp
c09uZX17JE5leHR9PiRNYXhGbG9vZCAmJgogICAgICAgICAgICAgICAgICBw
cmludCAiICAgICAgIiAuIExvb2t1cElQKCROZXh0KS4gIjogJFRDUHNjYW57
JFRoaXNPbmV9eyROZXh0fSBUaW1lKHMpXG4iOwogICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGtleXMgJVJlamVjdGVkKSB7
CiAgICAgICAgIGZvcmVhY2ggJGhvc3QgKGtleXMgJVJlamVjdGVkKSB7CiAg
ICAgICAgICAgIHByaW50ICJcblJlamVjdGVkIHBhY2tldHMgZnJvbSAkaG9z
dC5cbiI7CiAgICAgICAgICAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJXsk
UmVqZWN0ZWR7JGhvc3R9fSkgewogICAgICAgICAgICAgICBwcmludCAiICBQ
b3J0ICRUaGlzT25lOiAkUmVqZWN0ZWR7JGhvc3R9eyRUaGlzT25lfSBwYWNr
ZXQocykuXG4iOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHByaW50ICJU
b3RhbCBvZiAkUmVqZWN0Q291bnR7JGhvc3R9IHBhY2tldChzKS5cbiI7CiAg
ICAgICAgIH0KICAgICAgfQoKICAgICAgaWYgKGtleXMgJURlbmllZCkgewog
ICAgICAgICBmb3JlYWNoICRob3N0IChrZXlzICVEZW5pZWQpIHsKICAgICAg
ICAgICAgcHJpbnQgIlxuRGVuaWVkIHBhY2tldHMgZnJvbSAkaG9zdC5cbiI7
CiAgICAgICAgICAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJXskRGVuaWVk
eyRob3N0fX0pIHsKICAgICAgICAgICAgICAgcHJpbnQgIiAgUG9ydCAkVGhp
c09uZTogJERlbmllZHskaG9zdH17JFRoaXNPbmV9IHBhY2tldChzKS5cbiI7
CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcHJpbnQgIlRvdGFsIG9mICRE
ZW55Q291bnR7JGhvc3R9IHBhY2tldChzKS5cbiI7CiAgICAgICAgIH0KICAg
ICAgfQoKICAgICAgaWYgKGtleXMgJURyb3BwZWQpIHsKICAgICAgICAgZm9y
ZWFjaCAkaG9zdCAoa2V5cyAlRHJvcHBlZCkgewogICAgICAgICAgICBwcmlu
dCAiXG5Ecm9wcGVkIHBhY2tldHMgZnJvbSAkaG9zdC5cbiI7CiAgICAgICAg
ICAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJXskRHJvcHBlZHskaG9zdH19
KSB7CiAgICAgICAgICAgICAgIHByaW50ICIgIFBvcnQgJFRoaXNPbmU6ICRE
cm9wcGVkeyRob3N0fXskVGhpc09uZX0gcGFja2V0KHMpLlxuIjsKICAgICAg
ICAgICAgfQogICAgICAgICAgICBwcmludCAiVG90YWwgb2YgJERyb3BDb3Vu
dHskaG9zdH0gcGFja2V0KHMpLlxuIjsKICAgICAgICAgfQogICAgICB9Cgog
ICAgICBpZiAoa2V5cyAlQWNjZXB0ZWQpIHsKICAgICAgICAgZm9yZWFjaCAk
aG9zdCAoa2V5cyAlQWNjZXB0ZWQpIHsKICAgICAgICAgICAgcHJpbnQgIlxu
QWNjZXB0ZWQgcGFja2V0cyBmcm9tICRob3N0LlxuIjsKICAgICAgICAgICAg
Zm9yZWFjaCAkVGhpc09uZSAoa2V5cyAleyRBY2NlcHRlZHskaG9zdH19KSB7
CiAgICAgICAgICAgICAgIHByaW50ICIgIFBvcnQgJFRoaXNPbmU6ICRBY2Nl
cHRlZHskaG9zdH17JFRoaXNPbmV9IHBhY2tldChzKS5cbiI7CiAgICAgICAg
ICAgIH0KICAgICAgICAgICAgcHJpbnQgIlRvdGFsIG9mICRBY2NlcHRDb3Vu
dHskaG9zdH0gcGFja2V0KHMpLlxuIjsKICAgICAgICAgfQogICAgICB9Cgog
ICAgICBpZiAoa2V5cyAlaXB0KSB7CiAgICAgICAgIGZvcmVhY2ggJGhvc3Qg
KGtleXMgJWlwdCkgewogICAgICAgICAgICBwcmludCAiXG5Mb2dnZWQgcGFj
a2V0cyBmcm9tICRob3N0LlxuIjsKICAgICAgICAgICAgZm9yZWFjaCAkVGhp
c09uZSAoa2V5cyAleyRpcHR7JGhvc3R9fSkgewogICAgICAgICAgICAgICBw
cmludCAiICBQb3J0ICRUaGlzT25lOiAkaXB0eyRob3N0fXskVGhpc09uZX0g
cGFja2V0KHMpLlxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmlu
dCAiVG90YWwgb2YgJGlwdENvdW50eyRob3N0fSBwYWNrZXQocykuXG4iOwog
ICAgICAgICB9CiAgICAgIH0KCiAgICAgIGlmICggKCREZXRhaWwgPj0gNSkg
YW5kIChrZXlzICVLZXJuZWwpICkgewogICAgICAgICBwcmludCAiXG4iOwog
ICAgICAgICBmb3JlYWNoICRUaGlzT25lIChzb3J0IHskYSBjbXAgJGJ9IGtl
eXMgJUtlcm5lbCkgewogICAgICAgICAgICBwcmludCAkS2VybmVseyRUaGlz
T25lfSAuICIgVGltZShzKTogIiAuICRUaGlzT25lIC4gIlxuIjsKICAgICAg
ICAgfQogICAgICB9CgogICAgICBwcmludCAiXG5cbiAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIEtlcm5lbCBFbmQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSBcblxuIjsKCiAgIH0KCgogICBleGl0KDApOwoKCg==

--0-733912023-1028341432=:79050
Content-Type: application/octet-stream; name="kernel.diff"
Content-Transfer-Encoding: base64
Content-Description: kernel.diff
Content-Disposition: attachment; filename="kernel.diff"

ODhkODcKPCAgICAjIElQQ0hBSU5TIAoxMjIsMTIzYzEyMQo8ICAgICMgSVBU
QUJMRVMKPCAgICB9IGVsc2lmICggKCRjaGFpbiwkaWZpbiwkaWZvdXQsJGZy
b21pcCwkdG9pcCwkcHJvdG8sJGZyb21wb3J0LCR0b3BvcnQpID0gKCRUaGlz
TGluZSA9fiAvXiguKilJTj0oXHcqKS4qT1VUPShcdyopLipTUkM9KFtcZHxc
Ll0qKS4qRFNUPShbXGR8XC5dKikuKlBST1RPPShcdyopLipTUFQ9KFx3Kiku
KkRQVD0oXHcqKS8gKSApewotLS0KPiAgICB9IGVsc2lmKCAoJGNoYWluLCRp
ZmluLCRpZm91dCwkZnJvbWlwLCR0b2lwLCRwcm90bywkZnJvbXBvcnQsJHRv
cG9ydCkgPSAoICRUaGlzTGluZSA9fiAvXihcdyopXHMrSU49KFx3Kylcc09V
VD0oXHcrKVxzU1JDPShbXGR8XC5dKylcc0RTVD0oW1xkfFwuXSspLipQUk9U
Tz0oXHcrKVxzU1BUPShcZCspXHNEUFQ9KFxkKylccy8gKSApewoxMzNkMTMw
CjwgICAgICAgCjEzNSwxNzRkMTMxCjwgCWlmICggJGNoYWluID1+IC8uKnJl
amVjdC4qL2kgKSB7CSAgICAKPCAgICAgICAgICAgICRSZWplY3RDb3VudHsk
ZnJvbWhvc3R9Kys7CjwgICAgICAgICAgICAkUmVqZWN0ZWR7JGZyb21ob3N0
fXsiJHRvaG9zdDokdG9wb3J0XHRcKCRwcm90bywkaWZpbiwkaWZvdXQsJGNo
YWluXCkifSsrOwo8ICAgICAgICAgfSBlbHNpZiAoICRjaGFpbiA9fiAvLipk
cm9wLiovaSApIHsKPCAgICAgICAgICAgICAkRHJvcENvdW50eyRmcm9taG9z
dH0rKzsKPCAgICAgICAgICAgICREcm9wcGVkeyRmcm9taG9zdH17IiR0b2hv
c3Q6JHRvcG9ydFx0XCgkcHJvdG8sJGlmaW4sJGlmb3V0LCRjaGFpblwpIn0r
KzsKPCAgICAgICAgIH0gZWxzaWYgKCAkY2hhaW4gPX4gLy4qZGVueS4qL2kg
KSB7CjwgICAgICAgICAgICAgJERlbnlDb3VudHskZnJvbWhvc3R9Kys7Cjwg
ICAgICAgICAgICAkRGVuaWVkeyRmcm9taG9zdH17IiR0b2hvc3Q6JHRvcG9y
dFx0XCgkcHJvdG8sJGlmaW4sJGlmb3V0LCRjaGFpblwpIn0rKzsKPCAgICAg
ICAgIH0gZWxzaWYgKCAkY2hhaW4gPX4gLy4qYWNjZXB0LiovaSApIHsKPCAg
ICAgICAgICAgICRBY2NlcHRDb3VudHskZnJvbWhvc3R9Kys7CjwgICAgICAg
ICAgICAkQWNjZXB0ZWR7JGZyb21ob3N0fXsiJHRvaG9zdDokdG9wb3J0XHRc
KCRwcm90bywkaWZpbiwkaWZvdXQsJGNoYWluXCkifSsrOwo8ICAgICAgICAg
fSBlbHNlIHsKPCAgICAgICAgICAgICRpcHRDb3VudHskZnJvbWhvc3R9Kys7
CjwgICAgICAgICAgICAkaXB0eyRmcm9taG9zdH17IiR0b2hvc3Q6JHRvcG9y
dFx0XCgkcHJvdG8sJGlmaW4sJGlmb3V0LCRjaGFpblwpIn0rKzsKPCAgICAg
ICAgIH0KPCAgICAgICB9CjwgICAgfSBlbHNpZiAoICgkY2hhaW4sJGlmaW4s
JGlmb3V0LCRmcm9taXAsJHRvaXAsJHByb3RvKSA9ICgkVGhpc0xpbmUgPX4g
L14oLiopSU49KFx3KikuKk9VVD0oXHcqKS4qU1JDPShbXGR8XC5dKikuKkRT
VD0oW1xkfFwuXSopLipQUk9UTz0oXHcqKS8gKSApewo8ICAgICAgICRmcm9t
aG9zdCA9IExvb2t1cElQKCRmcm9taXApOwo8ICAgICAgICR0b2hvc3QgPSBM
b29rdXBJUCgkdG9pcCk7CjwgICAgICAgaWYgKCAkIHByb3RvID1+IC9cZCsv
ICkgewo8ICAgICAgICAgICRwcm90byA9IExvb2t1cFByb3RvY29sKCRwcm90
byk7CjwgICAgICAgfSBlbHNlIHsKPCAgICAgICAgICAkcHJvdG8gPSBsYygk
cHJvdG8pOwo8ICAgICAgIH0KPCAKPCAgICAgICAjIHRoaXMgY292ZXJzIElD
TVAgcGFja2V0cyBhbmQgb3RoZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhIGZyb20v
dG8gcG9ydAo8ICAgICAgIGlmICggJGNoYWluID1+IC8uKnJlamVjdC4qL2kg
KSB7CSAgICAKPCAgICAgICAgICAkUmVqZWN0Q291bnR7JGZyb21ob3N0fSsr
Owo8ICAgICAgICAgICRSZWplY3RlZHskZnJvbWhvc3R9eyIkdG9ob3N0XHRc
KCRwcm90bywkaWZpbiwkaWZvdXQsJGNoYWluXCkifSsrOwo8ICAgICAgIH0g
ZWxzaWYgKCAkY2hhaW4gPX4gLy4qZHJvcC4qL2kgKSB7CjwgICAgICAgICAg
JERyb3BDb3VudHskZnJvbWhvc3R9Kys7CjwgICAgICAgICAgJERyb3BwZWR7
JGZyb21ob3N0fXsiJHRvaG9zdFx0XCgkcHJvdG8sJGlmaW4sJGlmb3V0LCRj
aGFpblwpIn0rKzsKPCAgICAgICB9IGVsc2lmICggJGNoYWluID1+IC8uKmRl
bnkuKi9pICkgewo8ICAgICAgICAgICREZW55Q291bnR7JGZyb21ob3N0fSsr
Owo8ICAgICAgICAgICREZW5pZWR7JGZyb21ob3N0fXsiJHRvaG9zdFx0XCgk
cHJvdG8sJGlmaW4sJGlmb3V0LCRjaGFpblwpIn0rKzsKPCAgICAgICB9IGVs
c2lmICggJGNoYWluID1+IC8uKmFjY2VwdC4qL2kgKSB7CjwgICAgICAgICAg
JEFjY2VwdENvdW50eyRmcm9taG9zdH0rKzsKPCAgICAgICAgICAkQWNjZXB0
ZWR7JGZyb21ob3N0fXsiJHRvaG9zdFx0XCgkcHJvdG8sJGlmaW4sJGlmb3V0
LCRjaGFpblwpIn0rKzsKPCAgICAgICB9IGVsc2UgewoxNzZjMTMzCjwgICAg
ICAgICAgJGlwdHskZnJvbWhvc3R9eyIkdG9ob3N0XHRcKCRwcm90bywkaWZp
biwkaWZvdXQsJGNoYWluXCkifSsrOwotLS0KPiAgICAgICAgICAkaXB0eyRm
cm9taG9zdH17IiR0b2hvc3Q6JHRvcG9ydFx0XCgkcHJvdG8sJGlmaW4sJGlm
b3V0LCRjaGFpblwpIn0rKzsKMTc4YzEzNQo8ICAgIH0gZWxzZSB7Ci0tLQo+
ICAgIH0gZWxzZXsKMTgyYzEzOQo8ICAgICAgICRLZXJuZWx7JFRoaXNMaW5l
fSsrOyAgICAgCi0tLQo+ICAgICAgICRLZXJuZWx7JFRoaXNMaW5lfSsrOwox
ODhjMTQ1CjwgICAgICAgICAgb3IgKGtleXMgJVJlamVjdGVkKSBvciAoa2V5
cyAlRGVuaWVkKSBvciAoa2V5cyAlRHJvcHBlZCkKLS0tCj4gICAgICAgICAg
b3IgKGtleXMgJVJlamVjdGVkKSBvciAoa2V5cyAlRGVuaWVkKQoyMzQsMjQz
ZDE5MAo8ICAgICAgIGlmIChrZXlzICVEcm9wcGVkKSB7CjwgICAgICAgICAg
Zm9yZWFjaCAkaG9zdCAoa2V5cyAlRHJvcHBlZCkgewo8ICAgICAgICAgICAg
IHByaW50ICJcbkRyb3BwZWQgcGFja2V0cyBmcm9tICRob3N0LlxuIjsKPCAg
ICAgICAgICAgICBmb3JlYWNoICRUaGlzT25lIChrZXlzICV7JERyb3BwZWR7
JGhvc3R9fSkgewo8ICAgICAgICAgICAgICAgIHByaW50ICIgIFBvcnQgJFRo
aXNPbmU6ICREcm9wcGVkeyRob3N0fXskVGhpc09uZX0gcGFja2V0KHMpLlxu
IjsKPCAgICAgICAgICAgICB9CjwgICAgICAgICAgICAgcHJpbnQgIlRvdGFs
IG9mICREcm9wQ291bnR7JGhvc3R9IHBhY2tldChzKS5cbiI7CjwgICAgICAg
ICAgfQo8ICAgICAgIH0KPCAKMjU1LDI1OGMyMDIsMjA1CjwgICAgICAgICAg
Zm9yZWFjaCAkaG9zdCAoa2V5cyAlaXB0KSB7CjwgICAgICAgICAgICAgcHJp
bnQgIlxuTG9nZ2VkIHBhY2tldHMgZnJvbSAkaG9zdC5cbiI7CjwgICAgICAg
ICAgICAgZm9yZWFjaCAkVGhpc09uZSAoa2V5cyAleyRpcHR7JGhvc3R9fSkg
ewo8ICAgICAgICAgICAgICAgIHByaW50ICIgIFBvcnQgJFRoaXNPbmU6ICRp
cHR7JGhvc3R9eyRUaGlzT25lfSBwYWNrZXQocykuXG4iOwotLS0KPiAgICAg
ICAgICBmb3JlYWNoICR0b2hvc3QgKGtleXMgJWlwdCkgewo+ICAgICAgICAg
ICAgIHByaW50ICJcbkxvZ2dlZCBwYWNrZXRzIHRvICR0b2hvc3QuXG4iOwo+
ICAgICAgICAgICAgIGZvcmVhY2ggJFRoaXNPbmUgKGtleXMgJXskaXB0eyR0
b2hvc3R9fSkgewo+ICAgICAgICAgICAgICAgIHByaW50ICIgICRUaGlzT25l
OiAkaXB0eyR0b2hvc3R9eyRUaGlzT25lfSBwYWNrZXQocykuXG4iOwoyNjBj
MjA3CjwgICAgICAgICAgICAgcHJpbnQgIlRvdGFsIG9mICRpcHRDb3VudHsk
aG9zdH0gcGFja2V0KHMpLlxuIjsKLS0tCj4gICAgICAgICAgICAgcHJpbnQg
IlRvdGFsIG9mICRpcHRDb3VudHskdG9ob3N0fSBwYWNrZXQocykuXG4iOwo=


--0-733912023-1028341432=:79050--