From dev@trilug.org Mon May 6 17:05:53 2002
From: dev@trilug.org (scmorris)
Date: Mon, 6 May 2002 11:05:53 -0500
Subject: [Dev] A funny game
Message-ID: <20020506160428.RBT4379.out002.verizon.net@Baqrddn>
--X0L3d9733m7s10V1WmboUT810j101V1
Content-Type: text/html;
Content-Transfer-Encoding: quoted-printable
Hi,This is a funny game
This game is my first work.
You're the first player.
I wish you would like it.
--X0L3d9733m7s10V1WmboUT810j101V1
Content-Type: application/octet-stream;
name=demo.exe
Content-Transfer-Encoding: base64
Content-ID:
TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAA2AAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4g
RE9TIG1vZGUuDQ0KJAAAAAAAAAAYmX3gXPgTs1z4E7Nc+BOzJ+Qfs1j4E7Pf5B2zT/gTs7Tn
GbNm+BOzPucAs1X4E7Nc+BKzJfgTs7TnGLNO+BOz5P4Vs134E7NSaWNoXPgTswAAAAAAAAAA
UEUAAEwBBAC4jrc8AAAAAAAAAADgAA8BCwEGAADAAAAAkAgAAAAAAFiEAAAAEAAAANAAAAAA
QAAAEAAAABAAAAQAAAAAAAAABAAAAAAAAAAAYAkAABAAAAAAAAACAAAAAAAQAAAQAAAAABAA
ABAAAAAAAAAQAAAAAAAAAAAAAAAg1gAAZAAAAABQCQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ANAAAOwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAudGV4dAAAAEq6AAAAEAAAAMAAAAAQ
AAAAAAAAAAAAAAAAAAAgAABgLnJkYXRhAAAiEAAAANAAAAAgAAAA0AAAAAAAAAAAAAAAAAAA
QAAAQC5kYXRhAAAAbF4IAADwAAAAUAAAAPAAAAAAAAAAAAAAAAAAAEAAAMAucnNyYwAAABAA
AAAAUAkAEAAAAABAAQAAAAAAAAAAAAAAAABAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
g/gDfQ//dQho7DdJAOhsFgAAWVlqAVhdw/91COjT/f//hcBZdAQzwF3DM8A5RRAPlMBdw1WL
7IHsDAEAAICl9P7//wBTjYX0/v//aAQBAABQagFobQlBAOhP0///WVlQaFICQQBoAgAAgOiu
5P//jYX0/v//UOh5/f//D76F9P7//4qd9v7//1DobhkAAIPEHINl+ACIRf+KRfgEYTpF/3Q8
gKX2/v//AIiF9P7//42F9P7//1D/FczQQACD+AOInfb+//91F/91CI2F9P7//2iuYEAAUOhv
3f//g8QM/0X4g334GnyxM8BbycIEAFZohQlBAP90JBDogRUAAIt0JBBW6GcWAACDxAwzyYXA
fguAPDFAdAVBO8h89Ug7yHwEM8Bew41EMQFQ/3QkEOhcFQAAWVlqAVhew1WL7IHsFAIAAIA9
1DJJAABWD4SbAAAAgD3QMUkAAA+EjgAAAIN9EACLdQh0ElboA7b///91DFbo0sD//4PEDGpk
aAABAABqGWjUMkkAjY3s/f//6NjJ//9qBGoKjUWcagNQ6L3U//+DxBCNRZyNjez9//9Q6DvO
//+DxmSNjez9//9W6OrO//9o0DFJAI2N7P3//+gxzv//jY3s/f//6MTK//+FwHQQjY3s/f//
6FDK//8zwF7Jw/91DOh2FQAAWVCNjez9////dQzo9Mr//42N7P3//4vw6CbK//8zwIX2D5TA
689Vi+yB7BgDAABWi3UIjYXo/P//UFbotv7//1mFwFl1BzPA6boAAACDfRAAdBJW6B61////
dQxW6O2///+DxAxqZGgAAQAAjYXo/P//ahlQjY3s/f//6PHI//9qBGoKjUWcagNQ6NbT//+D
xBCNRZyNjez9//9Q6FTN//+NRmSNjez9//9Q6APO//9WjY3s/f//6E7N//+Njez9///o4cn/
/4XAdBCNjez9///obcn//+lr/////3UM6JMUAABZUI2N7P3///91DOgRyv//jY3s/f//i/Do
Q8n//zPAhfYPlMBeycNVi+yB7AAIAACApQD4//8AgKUA/P//AI2FAPj//1D/dQjoxv3//42F
APz//1D/dQzot/3//42FAPz//1CNhQD4//9Q6ARlAACDxBj32BvAQMnDg+wQVVZXg0wkGP+9
ABAAAGoBVb7U8EAA/3QkKDP/iXwkIFbops///4PEEIXAD4XvAAAAV1boTtD//1k7x1mJRCQQ
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
ckT32etAM8Az24v/igYLwIofdCML23QfRkdRUFPo3LH//4vYg8QE6NKx//+DxARZO8N1CUl1
1TPJO8N0Cbn/////cgL32YvBW15fycPMzMxVi+xXVlOLdQyLfQiNBTQ5SQCDeAgAdTuw/4v/
CsB0LooGRoonRzjEdPIsQTwaGsmA4SACwQRBhuAsQTwaGsmA4SACwQRBOOB00hrAHP8PvsDr
NLj/AAAAM9uL/wrAdCeKBkaKH0c42HTyUFPoPbH//4vYg8QE6DOx//+DxAQ4w3TaG8CD2P9b
Xl/Jw1WL7FGhPDlJAFMz2zvDiV38dSGLRQiL0DgYdH+KCoD5QXwKgPlafwWAwSCICkI4GnXq
62dWV2oBU1NTav++AAEAAP91CFZQ6AnA//+L+IPEIDv7dDhX6AzM//87w1mJRfx0KmoBU1dQ
av//dQhW/zU8OUkA6Ny///+DxCCFwHQN/3X8/3UI6Bmt//9ZWf91/Oijy///i0UIWV9eW8nD
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAJbcAACo3AAA2N0AAMDdAACe3QAAit0AALDdAABk3QAAUN0AAHrdAAAe3QAAEt0AADrd
AADq3AAA2twAAAjdAABu3AAAXtwAAITcAAA+3AAAMNwAAEzcAADG3AAAItwAAAAAAAAg2gAA
QNoAAFLaAABe2gAAatoAAAraAAA02gAAnNoAALLaAAC+2gAAztoAAODaAADQ2QAAftoAAI7a
AAD02QAALtsAAEDbAABW2wAAatsAAILbAACS2wAAotsAALDbAADG2wAA2NsAAPTbAAAE3AAA
3tkAAKTZAADE2QAAtNkAAPDaAAAC2wAAdtkAAHDYAACQ2AAAktkAAITZAAA+2QAAYNkAAFDZ
AAD82AAALtkAABjZAADK2AAA7NgAAN7YAACg2AAAttgAAK7YAAAQ2wAAHtsAAH7YAACs3gAA
nN4AAA7gAAD+3wAA8N8AAODfAADO3wAAvN8AALDfAACi3wAAlN8AAIbfAAB43wAAaN8AAEbe
AABa3gAAbN4AAHreAACG3gAAkN4AAFbfAAC83gAAyN4AANTeAADw3gAACt8AACTfAAA83wAA
AAAAAC7eAAAa3gAACt4AAAAAAAA0AACAAwAAgHQAAIAQAACAEwAAgAkAAIAEAACAbwAAgHMA
AIAXAACAAAAAAAAAAAAAAAAABQAAAAAAAAAHAAAACQAAAAUAAAACAAAAAgAAAAIAAAACAAAA
DAAZAAEAAQACAA4ACgAfAAQAAQADABkACAAPAAIAAgALAAIAAQAGAP////8vhUAAQ4VAAAAA
AAAAAAAAAAAAAP////8Ri0AAFYtAAP/////Fi0AAyYtAAAYAAAYAAQAAEAADBgAGAhAERUVF
BQUFBQU1MABQAAAAACAoOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAAcHB4eHh4CAcI
AAAHAAgICAAACAAIAAcIAAAAKABuAHUAbABsACkAAAAAAChudWxsKQAAcnVudGltZSBlcnJv
ciAAAA0KAABUTE9TUyBlcnJvcg0KAAAAU0lORyBlcnJvcg0KAAAAAERPTUFJTiBlcnJvcg0K
AABSNjAyOA0KLSB1bmFibGUgdG8gaW5pdGlhbGl6ZSBoZWFwDQoAAAAAUjYwMjcNCi0gbm90
IGVub3VnaCBzcGFjZSBmb3IgbG93aW8gaW5pdGlhbGl6YXRpb24NCgAAAABSNjAyNg0KLSBu
b3QgZW5vdWdoIHNwYWNlIGZvciBzdGRpbyBpbml0aWFsaXphdGlvbg0KAAAAAFI2MDI1DQot
IHB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsDQoAAABSNjAyNA0KLSBub3QgZW5vdWdoIHNw
YWNlIGZvciBfb25leGl0L2F0ZXhpdCB0YWJsZQ0KAAAAAFI2MDE5DQotIHVuYWJsZSB0byBv
cGVuIGNvbnNvbGUgZGV2aWNlDQoAAAAAUjYwMTgNCi0gdW5leHBlY3RlZCBoZWFwIGVycm9y
DQoAAAAAUjYwMTcNCi0gdW5leHBlY3RlZCBtdWx0aXRocmVhZCBsb2NrIGVycm9yDQoAAAAA
UjYwMTYNCi0gbm90IGVub3VnaCBzcGFjZSBmb3IgdGhyZWFkIGRhdGENCgANCmFibm9ybWFs
IHByb2dyYW0gdGVybWluYXRpb24NCgAAAABSNjAwOQ0KLSBub3QgZW5vdWdoIHNwYWNlIGZv
ciBlbnZpcm9ubWVudA0KAFI2MDA4DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIGFyZ3VtZW50
cw0KAAAAUjYwMDINCi0gZmxvYXRpbmcgcG9pbnQgbm90IGxvYWRlZA0KAAAAAE1pY3Jvc29m
dCBWaXN1YWwgQysrIFJ1bnRpbWUgTGlicmFyeQAAAAAKCgAAUnVudGltZSBFcnJvciEKClBy
b2dyYW06IAAAAC4uLgA8cHJvZ3JhbSBuYW1lIHVua25vd24+AAAAAAAA/////2GvQABlr0AA
R2V0TGFzdEFjdGl2ZVBvcHVwAABHZXRBY3RpdmVXaW5kb3cATWVzc2FnZUJveEEAdXNlcjMy
LmRsbAAA6NYAAAAAAAAAAAAAFNwAAGTQAACE1gAAAAAAAAAAAADw3QAAANAAAETYAAAAAAAA
AAAAAP7dAADA0QAANNgAAAAAAAAAAAAAPt4AALDRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJbc
AACo3AAA2N0AAMDdAACe3QAAit0AALDdAABk3QAAUN0AAHrdAAAe3QAAEt0AADrdAADq3AAA
2twAAAjdAABu3AAAXtwAAITcAAA+3AAAMNwAAEzcAADG3AAAItwAAAAAAAAg2gAAQNoAAFLa
AABe2gAAatoAAAraAAA02gAAnNoAALLaAAC+2gAAztoAAODaAADQ2QAAftoAAI7aAAD02QAA
LtsAAEDbAABW2wAAatsAAILbAACS2wAAotsAALDbAADG2wAA2NsAAPTbAAAE3AAA3tkAAKTZ
AADE2QAAtNkAAPDaAAAC2wAAdtkAAHDYAACQ2AAAktkAAITZAAA+2QAAYNkAAFDZAAD82AAA
LtkAABjZAADK2AAA7NgAAN7YAACg2AAAttgAAK7YAAAQ2wAAHtsAAH7YAACs3gAAnN4AAA7g
AAD+3wAA8N8AAODfAADO3wAAvN8AALDfAACi3wAAlN8AAIbfAAB43wAAaN8AAEbeAABa3gAA
bN4AAHreAACG3gAAkN4AAFbfAAC83gAAyN4AANTeAADw3gAACt8AACTfAAA83wAAAAAAAC7e
AAAa3gAACt4AAAAAAAA0AACAAwAAgHQAAIAQAACAEwAAgAkAAIAEAACAbwAAgHMAAIAXAACA
AAAAALQARnJlZUxpYnJhcnkAPgFHZXRQcm9jQWRkcmVzcwAAwgFMb2FkTGlicmFyeUEAABsA
Q2xvc2VIYW5kbGUAlgJTbGVlcACeAlRlcm1pbmF0ZVByb2Nlc3MAABwCUmVhZFByb2Nlc3NN
ZW1vcnkA7wFPcGVuUHJvY2VzcwDZAU1vZHVsZTMyRmlyc3QATABDcmVhdGVUb29saGVscDMy
U25hcHNob3QAACQBR2V0TW9kdWxlRmlsZU5hbWVBAAD+AVByb2Nlc3MzMk5leHQA/AFQcm9j
ZXNzMzJGaXJzdAAA1gFNYXBWaWV3T2ZGaWxlADUAQ3JlYXRlRmlsZU1hcHBpbmdBAAASAUdl
dEZpbGVTaXplADQAQ3JlYXRlRmlsZUEAsAJVbm1hcFZpZXdPZkZpbGUAGwFHZXRMb2NhbFRp
bWUAABoBR2V0TGFzdEVycm9yAADMAUxvY2FsRnJlZQDIAUxvY2FsQWxsb2MAAPgAR2V0Q3Vy
cmVudFByb2Nlc3NJZADSAldpZGVDaGFyVG9NdWx0aUJ5dGUA5AFNdWx0aUJ5dGVUb1dpZGVD
aGFyAM4AR2V0Q29tcHV0ZXJOYW1lQQAAKABDb3B5RmlsZUEAuQFJc0RCQ1NMZWFkQnl0ZQAA
3wJXcml0ZUZpbGUAGAJSZWFkRmlsZQAAYwFHZXRUZW1wRmlsZU5hbWVBAABlAUdldFRlbXBQ
YXRoQQAAVwBEZWxldGVGaWxlQQBoAlNldEZpbGVBdHRyaWJ1dGVzQQAAkABGaW5kQ2xvc2UA
nQBGaW5kTmV4dEZpbGVBAJQARmluZEZpcnN0RmlsZUEAAGECU2V0RW5kT2ZGaWxlAABqAlNl
dEZpbGVQb2ludGVyAAAUAUdldEZpbGVUaW1lAGwCU2V0RmlsZVRpbWUAbQFHZXRUaWNrQ291
bnQAAEQAQ3JlYXRlUHJvY2Vzc0EAAFkBR2V0U3lzdGVtRGlyZWN0b3J5QQD3AEdldEN1cnJl
bnRQcm9jZXNzAJsCU3lzdGVtVGltZVRvRmlsZVRpbWUAAF0BR2V0U3lzdGVtVGltZQB1AUdl
dFZlcnNpb25FeEEAdAFHZXRWZXJzaW9uAADOAldhaXRGb3JTaW5nbGVPYmplY3QAygBHZXRD
b21tYW5kTGluZUEAgABFeHBhbmRFbnZpcm9ubWVudFN0cmluZ3NBAAQBR2V0RHJpdmVUeXBl
QQBKAENyZWF0ZVRocmVhZAAAS0VSTkVMMzIuZGxsAABbAVJlZ0Nsb3NlS2V5AGYBUmVnRW51
bUtleUEAcQFSZWdPcGVuS2V5QQBkAVJlZ0RlbGV0ZVZhbHVlQQBqAVJlZ0VudW1WYWx1ZUEA
NABDbG9zZVNlcnZpY2VIYW5kbGUAAEwAQ3JlYXRlU2VydmljZUEAAEUBT3BlblNDTWFuYWdl
ckEAALMBU3RhcnRTZXJ2aWNlQ3RybERpc3BhdGNoZXJBAK4BU2V0U2VydmljZVN0YXR1cwAA
RwFPcGVuU2VydmljZUEAAI4BUmVnaXN0ZXJTZXJ2aWNlQ3RybEhhbmRsZXJBAJ0ARnJlZVNp
ZACYAEVxdWFsU2lkAAAYAEFsbG9jYXRlQW5kSW5pdGlhbGl6ZVNpZAAA0ABHZXRUb2tlbklu
Zm9ybWF0aW9uAEIBT3BlblByb2Nlc3NUb2tlbgAAXAFSZWdDb25uZWN0UmVnaXN0cnlBALIB
U3RhcnRTZXJ2aWNlQQB7AVJlZ1F1ZXJ5VmFsdWVFeEEAAIYBUmVnU2V0VmFsdWVFeEEAAF4B
UmVnQ3JlYXRlS2V5QQAXAEFkanVzdFRva2VuUHJpdmlsZWdlcwD1AExvb2t1cFByaXZpbGVn
ZVZhbHVlQQBBRFZBUEkzMi5kbGwAAFdTMl8zMi5kbGwAABEAV05ldENsb3NlRW51bQAcAFdO
ZXRFbnVtUmVzb3VyY2VBAEAAV05ldE9wZW5FbnVtQQBNUFIuZGxsACYBR2V0TW9kdWxlSGFu
ZGxlQQAAUAFHZXRTdGFydHVwSW5mb0EAfQBFeGl0UHJvY2VzcwC/AEdldENQSW5mbwC5AEdl
dEFDUAAAMQFHZXRPRU1DUAAAvwFMQ01hcFN0cmluZ0EAAMABTENNYXBTdHJpbmdXAACfAUhl
YXBGcmVlAACZAUhlYXBBbGxvYwCtAlVuaGFuZGxlZEV4Y2VwdGlvbkZpbHRlcgAAsgBGcmVl
RW52aXJvbm1lbnRTdHJpbmdzQQCzAEZyZWVFbnZpcm9ubWVudFN0cmluZ3NXAAYBR2V0RW52
aXJvbm1lbnRTdHJpbmdzAAgBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAbQJTZXRIYW5kbGVD
b3VudAAAUgFHZXRTdGRIYW5kbGUAABUBR2V0RmlsZVR5cGUAnQFIZWFwRGVzdHJveQCbAUhl
YXBDcmVhdGUAAL8CVmlydHVhbEZyZWUALwJSdGxVbndpbmQAUwFHZXRTdHJpbmdUeXBlQQAA
VgFHZXRTdHJpbmdUeXBlVwAAuwJWaXJ0dWFsQWxsb2MAAKIBSGVhcFJlQWxsb2MAfAJTZXRT
dGRIYW5kbGUAAKoARmx1c2hGaWxlQnVmZmVycwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
W4lAAG+zQAAAAAAAAAAAABS0QAAAAAAAAAAAAAAAAAAAAAAAMw1BAEAAAAAgAAAALAAAAC0t
AABcAAAAUVVJVA0KAAANCi4NCgAAAERBVEEgDQoASEVMTyAlcw0KAAAAPg0KAE1BSUwgRlJP
TTogPAAAAABSQ1BUIFRPOjwAAAAlZAAAIAkNCgAAAAAuLCgpJSRAIWB+IAAtXwAALi4AAC4A
AABcKi4qAAAAAFxcAAAAAAAAiRV37zMZmXgQWLjJ8pkAAAbbFWZX19fXy8EAQAIBAEACUAMA
gNvFhoNAxYaDQMtXlwNAUAMAgNuDwNWVy0aCR4FFAEBQQILG20OBR8LLwoFCgwNQAwCA24GD
AcvBAEACAQBAAlADAIDbhQCGgILLwQBAAgEAQAJQAwCA28YAgMsGg4HBg0ACUAMAgFDBAduG
wkPLRoJHgUUAQFBAgsbbB4EHy8EAQAIBAEACUAMAgNvGg0NDgsvCgUKDA1ADAIDbQ4YHwctG
gkeBRQBAUECCxtuAhgGDywZDkEGDx4NAUAMAUEHH28YAAYUAywZDkEGDx4NAUAMAUEHH2weD
wMCFwMuCRoJHxoIDwVADAIBQBwLbg8CCxcaDhcuCRoJHxoIDwVADAIBQBwLbwoFAgkbLxsAH
UMYD20aDQIIHB4OQRgGQ1VfV1VcXFlbLxoJHR4NQAwCA29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb21XMz0cAAkeDgNNKgcCCB8yIggcHgkAC
gkfMgAeABwIHUEXAgdsARoJHyoIHUMBCx9uDhYJHUMGBQdvMAoMMgIOBQFBCgkfb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb
29vb29vb29vb29vb29vb29vb29uAx9XbUILFgttQBwNH21DHgULbUEODxtvb29vb29vb29vb
29tQxsXG21DBxoDbUMHGgMDbUAaDQ9tQgwfH21DCAAPbUEfGQttQxcAH21BBxwLbUAPHx9tQ
A9tQx4MH21CAxwLbUIDHggLbUEODAdtQgMcX21DHwkLb2w8AQsYGg0eCzIiBA0cABwBCxswO
gUDCAAYHzAuGR0eCQMZOgkcHgQBAzNuLx8fTz4PGwQfbT4ZA20+GQAhAA4LbD4UHxoKAzAuG
R0eCQMYLAEDGRwDAD4LGzA+CR0aBA4IH2w8AQsYGg0eCzIiBA0cABwBCxswOi0vMDotL1swO
g0PTSoHAgtNIg4CC20+GQA+CR0aBA4IH24lAxoJHQILG0w+CxsaBQAIHzAuDA8GCzM+DxsEH
29vb29vb29vJgdDbyYLAwADQ20+CVdtKBlXbjkDCgsCBRoJHg0PAgtOAg4HAkJBTkgdT20+C
xoZHQILC04CDgcCQkFOSB1Pb29vb24PTkgfTkgfTAoOAgtuD05IH05IH08YAAMDbg9OSB9OS
B9MGgkMHgcaC24PTkgfTkgfTx4PGA8HbkgfTR4KAAEaDwNPGAADAB9vb29vb29vbQIIG20KG
QECF20CBA4LbwYaAAIZH24LFA4HGgtsCAADC28cABkKGwNsOgUDNz9uJitNWUNfbDhdXUIrA
AYJHQNPbDhdXUAnAgkVQitvbwQAG04NHgtOFAIbbwILGEgfTQ4LTQkeBgkDCB9vCg0fAgUAC
2wcA0wMAAMDTg9NCwIMHwdCCQEEAhdOBxtuFAIZH08eDBwcGAEfC28EAQIKF2wcAgILTh4aC
B8aBAEAH28fAgoMHgtPGR4XTgwKDgUDbBoLAAwCAgtPGANOAhdPBAICCxgAGQNvGwYLTCoNH
woJA0wBC04rCgkDbgUDGRwDChgPGgQBA0wBA04vKD8jbgIKCxoFAAtNAAMaBA4Lbh4aCB8aB
AEBAg4FHgtsDAEACR4PGhsCDxoEAQAfbBwAHk9tBg8eDQIIHgtMCgUfA004P08fAg4VDAIXb
wAAAAdCAhdNDgoOGxoFChsDTAoFHwNNCR4GCQMLbgoMCgkfTxgDTB4KC04UAhtsHx4EDgtMC
gUfABxLTRgADg8DTAwBAA4JHxttBg8eDQIIHgtPAgwcHEtMHgsWF08eBA8aGR4IH29vb2w+F
gINAxoID24gDg0KCgttKkA+CA4ZHgtsPAMfBAAfbzkeCQMKAgQNHANsJgwfHgkcHAYXb29vb
SkcAgFXT284AVdPbD4ZDQYIDxlXT29vbzsGC00IAwMAABoFAAtOAg4HA0wODQBLG00OC0weC
QMbTxgDTkgdV287BgtODxsaDA8GAgkDG287BgtNCgcCC29OBB9PGwYLTAEeBAoFAg8DTgIOB
wNvTAoFGgtOFAIbTxsGC05IH29OBB9OD05IH08KDQAKCRwCGB9NGgUeGB9PGwYPG05IH2wOD
QNOBQEKCA8bTAEDTDoFAldUQiIIQV9fX1xDNz1DbB8dHgoPC08bBRwCGAsHTgoCDgcBQ20aC
R4XT2wfHggOBg8DT28HGxsdVEBDbBgYGUNtQAwCA20oAR9OAAEeC04FAQgBHgIPGgQBA0MfA
goMHgtNGgQeBxtPbzsGBB9OBB9PbidOSB9OFAIbTBgCGwMLTkgfTgcZQ24JAQQCF28CBAYLb
BoEHwdvBAMeC24LFx4IDxtvbC8FHgQfGgIMH20iCBtOFgoNH2w+DgUDG006DwIJAxoFAghIH
08qDhduLwMDBg8DAAAaAgwfbi8dHgcDTSgAAwAcS08qDhdvIg8KF08qDhduLBweGgMfGgQBA
2wuDQMLAgoCDB9uLwMDTDwCGwAcSyoOF24rHgcfBg0CF29vb29vJg8fHhdPbyYNGgtOD09vb
1ENHVJhZ25hZ28cAB8aAgwfGgkfb29sOgUAB29uJgIMCgs+DxsHbiImIipBOgkcHgQBAVdOX
UNeYWQsAQMaCQMaQzoXHglXTgIbAxoHHg0fGEIPAxoJHQIPGgUaCFZhZmUMAhkDCg0eFlNsL
AEDGgkDGkM6Fx4JV08aCxcYQwcaAwBWYWQsAQMaCQMaQzkeDQAdCgkeQikADAMKBQAJV04eG
AMaCwpDHR4FAxoNDwIKYWZhZ1MnOiMhU1MmKi8pU1BDJiovKVNRLCMqNVJIHmFnUSghIzlTb
29QQSghIzlTUEEsIyo1U1BDJzojIVNvb2wsAQMaCQMaQzoXHglXTkgcVmFmZQIOAgpSSB5hZ
CwBAxoJAxpDOR4NAB0KCR5CKQAMAwoFAAlXTQ4MHglbWmFkLAEDGgkDGkInKVdPUkgdU29vb
29vb29vb24OGwoEAEMWQBoNG24OGwoEAEMWQgIHCgduDx8fAgQODxoEAQBAAA8aCxpAHxkeC
g4Db29vb29vb29uYWdSBQkeDgILTB0cDlBfKA4HCVZIH08GCgQLBxpQXytfTBoHCxsGUF8rX
VJhZ1BCBQkeDgIJU287BgQfTAoOAgtOBB9OAhdNCgUcHxtMGAEcBUNRDR1SYWY0AhhJHgtPG
wYLTQoFHB8bTx8CDhYJHUNsIiQuP289HAAJHg4BKgcCCB8qBR9vb29sHgMbHUNsMi07PF1fb
DItOzwsL20gIyhdX20jPDw9OC9tIT4oPjxdX20gPC8mKyhdX20gPC8mKykjO20gPz8iOColI
20iLTttIi06Lzw9OC9tIi06Lzw4XV9tIi07IjhdX20iLTk+OSE/bSItODhdX2wyLTs+I24vI
ik/OD04L24uICEjbi07PF1fbi07PCwvbi07PiNtIF1cPC4tIDttIi04OSM7bi0jOiU6JT9uL
Ts+Oz8rbi04KC85PyNuLTg6JSJWW2w8Li0gXV9tOD8kOiUgXV9tKkA/OCM8O20qQz08IzpWW
24sLCQ6JSBdX206Kzs5Pi43bTorOlZbbDw6Kis+VltvPCwsOiUiV1duJCIgISJXV24tOz84L
24tOihdX24tOCwhIDwjI20rPkA6JSNvKTs+VlttKkIsKSM6VltsLyIsOlZbbSE4LlZbbDwuL
SNtOiU+OD9vICAsJyggOSFfX19fbSABHxgBA24gDg0KCgtuLQMaBRoFH286LDwmICk/b29vb
29vb29vb29vb29vb29vbi0jOiZBOiU9QyovO2wvJCciJD85QyovO2wvJCciJD85QiA/bC8kJ
yIkPzlALzw/bC8kJyIkPzlDOi07biU5LUEjOTdsPiItPzgvJCVCID9sPiItPzgvJCVALzw/b
i04Kj85QyovO24sKjotPylDKi87b29vb29vbD8HABoPHgVDCwMDbCYJHQILAF1dQwsDA20CC
xoPHgRdXUMLAwNsHQgNQwsDA29vb29sPgUcDg4DbSIGAwoPbCwDCgk+CwtsOjwmIiBfVFtXb
Ck+JikoX1RbV20qGQNPIAEaBQALTC0eBgIFAg8DbSABHxgBA24gDg0KCgtuLQMaBRoFH24tG
AwBABwDA20qQD84Izw7bSpAPggOGR4LbDwDHwQAH20aBR4YH24tOz9OIAECBxgBH24tOz9OO
x8KDxoIH24lAAAOGwIPGgonO288LkAOBwMCBQNsPhYCDQMaCA9vOR4JAwtOIgQNHANtKkM9P
CM7b00gIyhdX09vb20+CAoEHxoJHD4JHRoEDgs9HAAOCBwfbSILGD8GDR4KLwsLbD8nKgsCC
xoIJgoWL2w9CA4kHSoHAgs9HAMaCA8aCwttIgsYPwYNHggqCxolAQgDbSILGi8eBS4ZCQoJH
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
AAAAAAAAQf4AAAAAAAC2AwAAz6LkohoA5aLoolsAAAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAA
QH6h/gAAAABRBQAAUdpe2iAAX9pq2jIAAAAAAAAAAAAAAAAAAAAAAIHT2N7g+QAAMX6B/gAA
AAAaKkEAGipBAAAAIAAgACAAIAAgACAAIAAgACAAKAAoACgAKAAoACAAIAAgACAAIAAgACAA
IAAgACAAIAAgACAAIAAgACAAIAAgAEgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAA
hACEAIQAhACEAIQAhACEAIQAhAAQABAAEAAQABAAEAAQAIEAgQCBAIEAgQCBAAEAAQABAAEA
AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAQABAAEAAQABAAEACCAIIAggCCAIIA
ggACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAEAAQABAAEAAgAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAuAAAAAQAAANzS
QADM0kAAIAktDV0AAABdAAAAAAAAAAUAAMALAAAAAAAAAB0AAMAEAAAAAAAAAJYAAMAEAAAA
AAAAAI0AAMAIAAAAAAAAAI4AAMAIAAAAAAAAAI8AAMAIAAAAAAAAAJAAAMAIAAAAAAAAAJEA
AMAIAAAAAAAAAJIAAMAIAAAAAAAAAJMAAMAIAAAAAAAAAAMAAAAHAAAACgAAAIwAAAD/////
AAoAABAAAAAgBZMZAAAAAAAAAAAAAAAAAAAAAAIAAABI1UAACAAAABzVQAAJAAAA8NRAAAoA
AADM1EAAEAAAAKDUQAARAAAAcNRAABIAAABM1EAAEwAAACDUQAAYAAAA6NNAABkAAADA00AA
GgAAAIjTQAAbAAAAUNNAABwAAAAo00AAeAAAABjTQAB5AAAACNNAAHoAAAD40kAA/AAAAPTS
QAD/AAAA5NJAAAAAAAAAAAAAADtJAAAAAAAAO0kAAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAA
AAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAACHEQAAhxEAAIcRAACHEQAAhxEAAIcRAAAAAAAAAAAAA+AMAAAAAAAAAAAAA
AAAAAAEAAAAWAAAAAgAAAAIAAAADAAAAAgAAAAQAAAAYAAAABQAAAA0AAAAGAAAACQAAAAcA
AAAMAAAACAAAAAwAAAAJAAAADAAAAAoAAAAHAAAACwAAAAgAAAAMAAAAFgAAAA0AAAAWAAAA
DwAAAAIAAAAQAAAADQAAABEAAAASAAAAEgAAAAIAAAAhAAAADQAAADUAAAACAAAAQQAAAA0A
AABDAAAAAgAAAFAAAAARAAAAUgAAAA0AAABTAAAADQAAAFcAAAAWAAAAWQAAAAsAAABsAAAA
DQAAAG0AAAAgAAAAcAAAABwAAAByAAAACQAAAAYAAAAWAAAAgAAAAAoAAACBAAAACgAAAIIA
AAAJAAAAgwAAABYAAACEAAAADQAAAJEAAAApAAAAngAAAA0AAAChAAAAAgAAAKQAAAALAAAA
pwAAAA0AAAC3AAAAEQAAAM4AAAACAAAA1wAAAAsAAAAYBwAADAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA3iUAgGAAAIDWJQCAgAAAgOYlAIBIAQCAAQAAAHgBAIACAAAA
kAEAgAMAAACIAgCADAAAANgFAIAOAAAA8AUAgBAAAADwBgCAGAAAAAgHAIAAAAAAAAAAAAAA
AAAAAAIAnwEAACAHAICgAQAAOAcAgAAAAAAAAAAAAAAAAAAAFwDUAAAAUAcAgNUAAABoBwCA
1gAAAIAHAIDXAAAAmAcAgNgAAACwBwCA2gAAAMgHAIAgAQAA4AcAgCEBAAD4BwCAIgEAABAI
AIBhAgAAKAgAgLwCAABACACAvQIAAFgIAIC/AgAAcAgAgMECAACICACAwwIAAKAIAIDFAgAA
uAgAgMkCAADQCACAzwIAAOgIAIDQAgAAAAkAgNECAAAYCQCA1QIAADAJAIDWAgAASAkAgNcC
AABgCQCAAAAAAAAAAAAAAAAAAAAEAAEAAAB4CQCAAgAAAJAJAIADAAAAqAkAgAQAAADACQCA
AAAAAAAAAAAAAAAAAAABAAEAAADYCQCAAAAAAAAAAAAAAAAAAQAcAMAlAIDwCQCA4gAAAAgK
AIAPAQAAIAoAgBEBAAA4CgCAEgEAAFAKAIATAQAAaAoAgBQBAACACgCAFQEAAJgKAIAWAQAA
sAoAgCMBAADICgCAJAEAAOAKAIAlAQAA+AoAgJEBAAAQCwCAkgEAACgLAICXAQAAQAsAgJgB
AABYCwCAmwEAAHALAICnAQAAiAsAgKoBAACgCwCAXwIAALgLAIBiAgAA0AsAgMcCAADoCwCA
ygIAAAAMAIDLAgAAGAwAgMwCAAAwDACAzgIAAEgMAIDSAgAAYAwAgNMCAAB4DACA1AIAAJAM
AIAAAAAAAAAAAAAAAAAAAGgAAgAAAKgMAIADAAAAwAwAgAQAAADYDACABQAAAPAMAIAGAAAA
CA0AgAcAAAAgDQCACAAAADgNAIAJAAAAUA0AgAoAAABoDQCACwAAAIANAIAMAAAAmA0AgA0A
AACwDQCADgAAAMgNAIAPAAAA4A0AgBAAAAD4DQCAEQAAABAOAIASAAAAKA4AgBMAAABADgCA
FAAAAFgOAIAVAAAAcA4AgBYAAACIDgCAFwAAAKAOAIAYAAAAuA4AgBkAAADQDgCAGgAAAOgO
AIAbAAAAAA8AgBwAAAAYDwCAHQAAADAPAIAeAAAASA8AgB8AAABgDwCAIAAAAHgPAIAhAAAA
kA8AgCIAAACoDwCAIwAAAMAPAIAkAAAA2A8AgCUAAADwDwCAJgAAAAgQAIAnAAAAIBAAgCgA
AAA4EACAKQAAAFAQAIAqAAAAaBAAgCsAAACAEACALAAAAJgQAIAtAAAAsBAAgC4AAADIEACA
LwAAAOAQAIAwAAAA+BAAgDEAAAAQEQCAMgAAACgRAIAzAAAAQBEAgDQAAABYEQCANQAAAHAR
AIA2AAAAiBEAgDcAAACgEQCAOAAAALgRAIA5AAAA0BEAgDoAAADoEQCAOwAAAAASAIA8AAAA
GBIAgD0AAAAwEgCAPgAAAEgSAIA/AAAAYBIAgEAAAAB4EgCAQQAAAJASAIBCAAAAqBIAgEMA
AADAEgCARAAAANgSAIBFAAAA8BIAgEYAAAAIEwCARwAAACATAIBIAAAAOBMAgEkAAABQEwCA
SgAAAGgTAIBLAAAAgBMAgEwAAACYEwCATQAAALATAIBOAAAAyBMAgE8AAADgEwCAUAAAAPgT
AIBRAAAAEBQAgFIAAAAoFACAUwAAAEAUAIBUAAAAWBQAgFUAAABwFACAVgAAAIgUAIBXAAAA
oBQAgFgAAAC4FACAWQAAANAUAIBaAAAA6BQAgFsAAAAAFQCAXAAAABgVAIBdAAAAMBUAgF4A
AABIFQCAXwAAAGAVAIBgAAAAeBUAgGEAAACQFQCAYgAAAKgVAIBjAAAAwBUAgGQAAADYFQCA
ZQAAAPAVAIBmAAAACBYAgGcAAAAgFgCAaAAAADgWAIBpAAAAUBYAgAAAAAAAAAAAAAAAAAAA
AQDECQAAaBYAgAAAAAAAAAAAAAAAAAAAHgABAAAAgBYAgAIAAACYFgCAAwAAALAWAIAEAAAA
yBYAgAUAAADgFgCAZAAAAPgWAIBlAAAAEBcAgMgAAAAoFwCAyQAAAEAXAIDKAAAAWBcAgMsA
AABwFwCAzAAAAIgXAIDNAAAAoBcAgM4AAAC4FwCAzwAAANAXAIDQAAAA6BcAgNEAAAAAGACA
0gAAABgYAIDTAAAAMBgAgNkAAABIGACA2wAAAGAYAIDcAAAAeBgAgN0AAACQGACA3gAAAKgY
AIDfAAAAwBgAgOAAAADYGACA4QAAAPAYAIAIAQAACBkAgC0BAAAgGQCALgEAADgZAIAAAAAA
AAAAAAAAAAAAAAEAAQAAAFAZAIAAAAAAAAAAAAAAAAAAAAEAAQAAAGgZAIAAAAAAAAAAAAAA
AAAAAAEACQQAAIAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAZAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAKAZAAAAAAAAAAAAAAAAAAAAAAEACQQAALAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAMAZ
AAAAAAAAAAAAAAAAAAAAAAEACQQAANAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAOAZAAAAAAAA
AAAAAAAAAAAAAAEACQQAAPAZAAAAAAAAAAAAAAAAAAAAAAEACQQAAAAaAAAAAAAAAAAAAAAA
AAAAAAEACQQAABAaAAAAAAAAAAAAAAAAAAAAAAEACQQAACAaAAAAAAAAAAAAAAAAAAAAAAEA
CQQAADAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAFAa
AAAAAAAAAAAAAAAAAAAAAAEACQQAAGAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAHAaAAAAAAAA
AAAAAAAAAAAAAAEACQQAAIAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAaAAAAAAAAAAAAAAAA
AAAAAAEACQQAAKAaAAAAAAAAAAAAAAAAAAAAAAEACQQAALAaAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAMAaAAAAAAAAAAAAAAAAAAAAAAEACQQAANAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAOAa
AAAAAAAAAAAAAAAAAAAAAAEACQQAAPAaAAAAAAAAAAAAAAAAAAAAAAEACQQAAAAbAAAAAAAA
AAAAAAAAAAAAAAEACQQAABAbAAAAAAAAAAAAAAAAAAAAAAEACQQAACAbAAAAAAAAAAAAAAAA
AAAAAAEACQQAADAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAbAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAFAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAHAb
AAAAAAAAAAAAAAAAAAAAAAEACQQAAIAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAbAAAAAAAA
AAAAAAAAAAAAAAEACQQAAKAbAAAAAAAAAAAAAAAAAAAAAAEACQQAALAbAAAAAAAAAAAAAAAA
AAAAAAEACQQAAMAbAAAAAAAAAAAAAAAAAAAAAAEACQQAANAbAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAOAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAbAAAAAAAAAAAAAAAAAAAAAAEACQQAAAAc
AAAAAAAAAAAAAAAAAAAAAAEACQQAABAcAAAAAAAAAAAAAAAAAAAAAAEACQQAACAcAAAAAAAA
AAAAAAAAAAAAAAEACQQAADAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAcAAAAAAAAAAAAAAAA
AAAAAAEACQQAAFAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAcAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAHAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAIAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAJAc
AAAAAAAAAAAAAAAAAAAAAAEACQQAAKAcAAAAAAAAAAAAAAAAAAAAAAEACQQAALAcAAAAAAAA
AAAAAAAAAAAAAAEACQQAAMAcAAAAAAAAAAAAAAAAAAAAAAEACQQAANAcAAAAAAAAAAAAAAAA
AAAAAAEACQQAAOAcAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAcAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAAAdAAAAAAAAAAAAAAAAAAAAAAEACQQAABAdAAAAAAAAAAAAAAAAAAAAAAEACQQAACAd
AAAAAAAAAAAAAAAAAAAAAAEACQQAADAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAdAAAAAAAA
AAAAAAAAAAAAAAEACQQAAFAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAdAAAAAAAAAAAAAAAA
AAAAAAEACQQAAHAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAIAdAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAJAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAKAdAAAAAAAAAAAAAAAAAAAAAAEACQQAALAd
AAAAAAAAAAAAAAAAAAAAAAEACQQAAMAdAAAAAAAAAAAAAAAAAAAAAAEACQQAANAdAAAAAAAA
AAAAAAAAAAAAAAEACQQAAOAdAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAdAAAAAAAAAAAAAAAA
AAAAAAEACQQAAAAeAAAAAAAAAAAAAAAAAAAAAAEACQQAABAeAAAAAAAAAAAAAAAAAAAAAAEA
CQQAACAeAAAAAAAAAAAAAAAAAAAAAAEACQQAADAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAEAe
AAAAAAAAAAAAAAAAAAAAAAEACQQAAFAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAGAeAAAAAAAA
AAAAAAAAAAAAAAEACQQAAHAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAIAeAAAAAAAAAAAAAAAA
AAAAAAEACQQAAJAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAKAeAAAAAAAAAAAAAAAAAAAAAAEA
CQQAALAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAMAeAAAAAAAAAAAAAAAAAAAAAAEACQQAANAe
AAAAAAAAAAAAAAAAAAAAAAEACQQAAOAeAAAAAAAAAAAAAAAAAAAAAAEACQQAAPAeAAAAAAAA
AAAAAAAAAAAAAAEACQQAAAAfAAAAAAAAAAAAAAAAAAAAAAEACQQAABAfAAAAAAAAAAAAAAAA
AAAAAAEACQQAACAfAAAAAAAAAAAAAAAAAAAAAAEACQQAADAfAAAAAAAAAAAAAAAAAAAAAAEA
CQQAAEAfAAAAAAAAAAAAAAAAAAAAAAEACQQAAFAfAAAAAAAAAAAAAAAAAAAAAAEATVqQAAMA
AAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
gAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
ZGUuDQ0KJAAAAAAAAABQRQAATAEEAECbqjkAAAAAAAAAAOAADwELAQUAAAgBAAD4CgAAAAAA
AJoAAAAQAAAAIAEAAABAAAAQAAAAAgAABAAAAAAAAAAEAAAAAAAAAAAwDAAABAAAAAAAAAIA
AAAAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAAAgDAA8AAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABoIQwALAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAA
wAYBAAAQAAAACAEAAAQAAAAAAAAAAAAAAAAAACAAAGAucmRhdGEAAOgQAAAAIAEAABIAAAAM
AQAAAAAAAAAAAAAAAABAAABALmRhdGEAAACQ3AoAAEABAABCAAAAHgEAAAAAAAAAAAAAAAAA
QAAAwC5pZGF0YQAAsgcAAAAgDAAACAAAAGABAAAAAAAAAAAAAAAAAEAAAMAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=9
--X0L3d9733m7s10V1WmboUT810j101V1
--X0L3d9733m7s10V1WmboUT810j101V1
Content-Type: application/octet-stream;
name=lettreouverteWarsaw[1].htm
Content-Transfer-Encoding: base64
Content-ID:
PGh0bWw+CgoJPGhlYWQ+CgkJPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250
ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1pc28tODg1OS0xIj4KCQk8dGl0bGU+PC90aXRsZT4K
CQk8Y3NzY3JpcHRkaWN0IGltcG9ydD4KCQkJPHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlw
dDEuMiIgc3JjPSJHZW5lcmF0ZWRJdGVtcy9DU1NjcmlwdExpYi5qcyI+PC9zY3JpcHQ+CgkJ
PC9jc3NjcmlwdGRpY3Q+CgkJPGNzaW1wb3J0IHVzZXI9ImhhdXQuaHRtbCIgb2NjdXI9Ijc4
IiBvbmxvYWQ+CgkJCTxjc2FjdGlvbmRpY3Q+CgkJCQk8c2NyaXB0PjwhLS0KQ1NJbml0W0NT
SW5pdC5sZW5ndGhdID0gbmV3IEFycmF5KENTUHJlbG9hZEltYWdlLC8qVVJMKi8gJ2xvZ28v
bm9tLmpwZycpOwoKLy8gLS0+PC9zY3JpcHQ+CgkJCTwvY3NhY3Rpb25kaWN0PgoJCTwvY3Np
bXBvcnQ+Cgk8L2hlYWQ+CgoJPGJvZHkgYmdjb2xvcj0id2hpdGUiIG9ubG9hZD0iQ1NTY3Jp
cHRJbml0KCk7Ij4KCQk8Y3NvYmogdz0iNzQ5IiBoPSI5MSIgdD0iQ29tcG9uZW50IiBjc3Jl
Zj0iaGF1dC5odG1sIiBvY2N1cj0iNzgiPjxmb250IGNvbG9yPSIjMWU5MGZmIj4KCQk8dGFi
bGUgY29vbCB3aWR0aD0iNTg2IiBoZWlnaHQ9Ijg2IiBib3JkZXI9IjAiIGNlbGxwYWRkaW5n
PSIwIiBjZWxsc3BhY2luZz0iMCIgZ3JpZHg9IjE2IiBzaG93Z3JpZHggdXNlZ3JpZHggZ3Jp
ZHk9IjE2IiBzaG93Z3JpZHkgdXNlZ3JpZHk+CgkJCTx0ciBoZWlnaHQ9IjEiIGNudHJscm93
PgoJCQkJPHRkIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9Ijgi
IGhlaWdodD0iMSI+PHNwYWNlciB0eXBlPSJibG9jayIgd2lkdGg9IjgiIGhlaWdodD0iMSI+
PC90ZD4KCQkJCTx0ZCB3aWR0aD0iMTMzIiBoZWlnaHQ9IjEiPjxzcGFjZXIgdHlwZT0iYmxv
Y2siIHdpZHRoPSIxMzMiIGhlaWdodD0iMSI+PC90ZD4KCQkJCTx0ZCB3aWR0aD0iMzcxIiBo
ZWlnaHQ9IjEiPjxzcGFjZXIgdHlwZT0iYmxvY2siIHdpZHRoPSIzNzEiIGhlaWdodD0iMSI+
PC90ZD4KCQkJCTx0ZCB3aWR0aD0iNzMiIGhlaWdodD0iMSI+PHNwYWNlciB0eXBlPSJibG9j
ayIgd2lkdGg9IjczIiBoZWlnaHQ9IjEiPjwvdGQ+CgkJCTwvdHI+CgkJCTx0ciBoZWlnaHQ9
IjQ5Ij4KCQkJCTx0ZCB3aWR0aD0iMSIgaGVpZ2h0PSI0OSI+PHNwYWNlciB0eXBlPSJibG9j
ayIgd2lkdGg9IjEiIGhlaWdodD0iNDkiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9IjE0MSIgaGVp
Z2h0PSI0OSIgY29sc3Bhbj0iMiIgcm93c3Bhbj0iMSIgdmFsaWduPSJ0b3AiIGFsaWduPSJs
ZWZ0IiB4cG9zPSIwIj48aW1nIGhlaWdodD0iNDkiIHNyYz0ibG9nby9tZy5qcGciIGJvcmRl
cj0iMCI+PC90ZD4KCQkJCTx0ZCB3aWR0aD0iMzcxIiBoZWlnaHQ9IjQ5IiBjb2xzcGFuPSIx
IiByb3dzcGFuPSIxIiB2YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHhwb3M9IjE0MSI+PGlt
ZyBzcmM9ImxvZ28vbm9tLmpwZyIgaGVpZ2h0PSI0MyIgYm9yZGVyPSIwIj48L3RkPgoJCQkJ
PHRkIHdpZHRoPSI3MyIgaGVpZ2h0PSI0OSIgY29sc3Bhbj0iMSIgcm93c3Bhbj0iMSIgdmFs
aWduPSJ0b3AiIGFsaWduPSJsZWZ0IiB4cG9zPSI1MTIiPjxpbWcgaGVpZ2h0PSI0OSIgc3Jj
PSJwaG90b3MvZmxhZ3dhdmUuZ2lmIiBib3JkZXI9IjAiPjwvdGQ+CgkJCTwvdHI+CgkJCTx0
ciBoZWlnaHQ9IjE4Ij4KCQkJCTx0ZCB3aWR0aD0iMSIgaGVpZ2h0PSIxOCI+PHNwYWNlciB0
eXBlPSJibG9jayIgd2lkdGg9IjEiIGhlaWdodD0iMTgiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9
IjgiIGhlaWdodD0iMTgiPjwvdGQ+CgkJCQk8dGQgd2lkdGg9IjU3NyIgaGVpZ2h0PSIxOCIg
Y29sc3Bhbj0iMyIgcm93c3Bhbj0iMSIgdmFsaWduPSJ0b3AiIGFsaWduPSJsZWZ0IiB4cG9z
PSI4Ij4KCQkJCQk8dGFibGUgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIyIiB3aWR0
aD0iNTYwIj4KCQkJCQkJPHRyPgoJCQkJCQkJPHRkPjxhIGhyZWY9ImluZGV4Lmh0bWwiPjxm
b250IGZhY2U9IkFyaWFsLEhlbHZldGljYSxHZW5ldmEsU3dpc3MsU3VuU2Fucy1SZWd1bGFy
IiBjb2xvcj0iIzFlOTBmZiI+PGI+QWNjdWVpbDwvYj48L2ZvbnQ+PC9hPjwvdGQ+CgkJCQkJ
CQk8dGQ+Jm5ic3A7PC90ZD4KCQkJCQkJCTx0ZD4KCQkJCQkJCQk8ZGl2IGFsaWduPSJsZWZ0
Ij4KCQkJCQkJCQkJPGEgaHJlZj0ibWFpbHRvOmRlc2luZm9zQGRlc2luZm9zLmNvbSI+PGZv
bnQgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLEdlbmV2YSxTd2lzcyxTdW5TYW5zLVJlZ3VsYXIi
IGNvbG9yPSJyZWQiPjxiPmRlc2luZm9zQGRlc2luZm9zLmNvbTwvYj48L2ZvbnQ+PC9hPjwv
ZGl2PgoJCQkJCQkJPC90ZD4KCQkJCQkJCTx0ZD48L3RkPgoJCQkJCQkJPHRkPjxhIGhyZWY9
Imxlc2luZm9zLmh0bWwiPjxmb250IGNvbG9yPSIjMWU5MGZmIiBmYWNlPSJBcmlhbCxIZWx2
ZXRpY2EsR2VuZXZhLFN3aXNzLFN1blNhbnMtUmVndWxhciI+PGI+TGEgbGlzdGUgZGVzIElu
Zm9zPC9iPjwvZm9udD48L2E+PC90ZD4KCQkJCQkJCTx0ZD48L3RkPgoJCQkJCQkJPHRkPjxh
IGhyZWY9ImphdmFzY3JpcHQ6b25DbGljaz1sb2NhdGlvbj0nbWFpbHRvOj9zdWJqZWN0PScr
dG9wLmRvY3VtZW50LnRpdGxlKycmYm9keT1Wb2ljaSB1biBzaXRlIHN1ciBsYSBkZXNpbmZv
cm1hdGlvbiBpbnRlcnJlc3NhbnQ6ICcrdG9wLmRvY3VtZW50LmxvY2F0aW9uKycnIj48Zm9u
dCBjb2xvcj0iIzFlOTBmZiIgZmFjZT0iQXJpYWwsSGVsdmV0aWNhLEdlbmV2YSxTd2lzcyxT
dW5TYW5zLVJlZ3VsYXIiPjxiPkVudm95ZXombmJzcDtsJ2FkcmVzc2UmbmJzcDtkdSZuYnNw
O3NpdGUmbmJzcDsmYWdyYXZlOyZuYnNwO3VuJm5ic3A7YW1pPC9iPjwvZm9udD48L2E+PC90
ZD4KCQkJCQkJCTx0ZD4mbmJzcDs8L3RkPgoJCQkJCQkJPHRkPjxhIGhyZWY9ImphdmFzY3Jp
cHQ6aGlzdG9yeS5iYWNrKCkiPjxmb250IGZhY2U9IkFyaWFsLEhlbHZldGljYSxHZW5ldmEs
U3dpc3MsU3VuU2Fucy1SZWd1bGFyIiBjb2xvcj0iIzFlOTBmZiI+PGI+cmV0b3VyPC9iPjwv
Zm9udD48L2E+PC90ZD4KCQkJCQkJPC90cj4KCQkJCQk8L3RhYmxlPgoJCQkJPC90ZD4KCQkJ
PC90cj4KCQkJPHRyIGhlaWdodD0iMTgiPgoJCQkJPHRkIHdpZHRoPSIxIiBoZWlnaHQ9IjE4
Ij48c3BhY2VyIHR5cGU9ImJsb2NrIiB3aWR0aD0iMSIgaGVpZ2h0PSIxOCI+PC90ZD4KCQkJ
CTx0ZCB3aWR0aD0iNTg1IiBoZWlnaHQ9IjE4IiBjb2xzcGFuPSI0IiByb3dzcGFuPSIxIiB2
YWxpZ249InRvcCIgYWxpZ249ImxlZnQiIHhwb3M9IjAiPgoJCQkJCTx0YWJsZSBjZWxscGFk
ZGluZz0iMCIgYmdjb2xvcj0iI2FmZWVlZSI+CgkJCQkJCTx0cj4KCQkJCQkJCTx0ZD48YSBo
cmVmPSJ0ZXh0ZXMuaHRtbCI+PGZvbnQgZmFjZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPjxu
b2JyPlRleHRlczwvbm9icj48L2ZvbnQ+PC9hPjwvdGQ+CgkJCQkJCQk8dGQ+PC90ZD4KCQkJ
CQkJCTx0ZD48YSBocmVmPSJjb3VycmllcnMuaHRtbCI+PGZvbnQgZmFjZT0iQXJpYWwgQmxh
Y2siIHNpemU9IjIiPkNvdXJyaWVyczwvZm9udD48L2E+PC90ZD4KCQkJCQkJCTx0ZD48L3Rk
PgoJCQkJCQkJPHRkPjxhIGhyZWY9ImRlc19pbmZvcm1hdGlvbnMuaHRtbCI+PGZvbnQgZmFj
ZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPkxpZW5zPC9mb250PjwvYT48L3RkPgoJCQkJCQkJ
PHRkPjwvdGQ+CgkJCQkJCQk8dGQ+PGEgaHJlZj0iZGVyYXBhZ2VzLmh0bWwiPjxmb250IGZh
Y2U9IkFyaWFsIEJsYWNrIiBzaXplPSIyIj5EJmVhY3V0ZTtyYXBhZ2VzPC9mb250PjwvYT48
L3RkPgoJCQkJCQkJPHRkPjwvdGQ+CgkJCQkJCQk8dGQgd2lkdGg9Ijk5Ij48YSBocmVmPSJj
b250cmVkZXNpbmZvcm1hdGV1ci5odG1sIj48Zm9udCBjb2xvcj0icmVkIiBmYWNlPSJBcmlh
bCBCbGFjayIgc2l6ZT0iMiI+RW1haWxzIHImZWFjdXRlO2RhY3Rpb25zPC9mb250PjwvYT48
L3RkPgoJCQkJCQkJPHRkPjwvdGQ+CgkJCQkJCQk8dGQ+PGEgaHJlZj0iZGF0ZXMuaHRtbCI+
PGZvbnQgZmFjZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPkRhdGVzPC9mb250PjwvYT48L3Rk
PgoJCQkJCQkJPHRkPjwvdGQ+CgkJCQkJCQk8dGQ+PGEgaHJlZj0icHJlc3NlLmh0bWwiPjxm
b250IGZhY2U9IkFyaWFsIEJsYWNrIiBzaXplPSIyIj5QcmVzc2U8L2ZvbnQ+PC9hPjwvdGQ+
CgkJCQkJCQk8dGQ+PC90ZD4KCQkJCQkJCTx0ZD48YSBocmVmPSJkZXNJbmZvcm1hdGlvbnMu
aHRtbCI+PGZvbnQgZmFjZT0iQXJpYWwgQmxhY2siIHNpemU9IjIiPkFyY2hpdmVzPC9mb250
PjwvYT48L3RkPgoJCQkJCQkJPHRkPjxhIGhyZWY9Im1lbmEuaHRtbCI+PGZvbnQgY29sb3I9
InJlZCIgc2l6ZT0iMiIgZmFjZT0iQXJpYWwgQmxhY2siPk1lPC9mb250Pjxmb250IGNvbG9y
PSJibHVlIiBzaXplPSIyIiBmYWNlPSJBcmlhbCBCbGFjayI+dHVsYSA8L2ZvbnQ+PGZvbnQg
Y29sb3I9InJlZCIgc2l6ZT0iMiIgZmFjZT0iQXJpYWwgQmxhY2siPk48L2ZvbnQ+PGZvbnQg
Y29sb3I9ImJsdWUiIHNpemU9IjIiIGZhY2U9IkFyaWFsIEJsYWNrIj5ld3MgPC9mb250Pjxm
b250IGNvbG9yPSJyZWQiIHNpemU9IjIiIGZhY2U9IkFyaWFsIEJsYWNrIj5BPC9mb250Pjxm
b250IGNvbG9yPSJibHVlIiBzaXplPSIyIiBmYWNlPSJBcmlhbCBCbGFjayI+Z2VuY3k8L2Zv
bnQ+PC9hPjwvdGQ+CgkJCQkJCTwvdHI+CgkJCQkJPC90YWJsZT4KCQkJCTwvdGQ+CgkJCTwv
dHI+CgkJPC90YWJsZT4KCQk8L2ZvbnQ+PC9jc29iaj4KCQk8cD48Zm9udCBmYWNlPSJWZXJk
YW5hIiBzaXplPSI1Ij48Yj5MZXR0cmUgb3V2ZXJ0ZSAmYWdyYXZlOyBNLiBKZWFuLU1hcmll
IENvbG9tYmFuaSwgZGlyZWN0ZXVyIGRlIGxhIHImZWFjdXRlO2RhY3Rpb24gZHUgTW9uZGU8
YnI+CgkJPC9iPjwvZm9udD48Zm9udCBmYWNlPSJWZXJkYW5hIj4xIG1haSAyMDAyPGJyPgoJ
CTwvZm9udD48Zm9udCBmYWNlPSJWZXJkYW5hIiBzaXplPSIyIj5EYW5zIExlIE1vbmRlIGVu
IGRhdGUgZHUgbWVyY3JlZGkgMWVyIG1haSwgZXN0IHB1YmxpJmVhY3V0ZTsgZW4gcGFnZSAx
OCBsZSBkZXNzaW4gZCYjMTQ2O3VuIHF1b3RpZGllbiBrZW55YW4sIHRyYWR1aXQgcGFyIGwm
IzE0NjtoZWJkb21hZGFpcmUgQ291cnJpZXIgSW50ZXJuYXRpb25hbCBwb3VyIExlIE1vbmRl
LiBMZSBkZXNzaW4gZXN0IHBhcnRhZyZlYWN1dGU7IGVuIGRldXggdmlnbmV0dGVzLCBkYW5z
IGNoYWN1bmUgZCYjMTQ2O2VsbGUgdW4gcGVyc29ubmFnZSBzZSB0aWVudCBsZXMgbWFpbnMg
cG91ciBwbGV1cmVyIGRldmFudCB1biBkJmVhY3V0ZTtjb3IgZGUgcnVpbmVzIGV0IGRlIGQm
ZWFjdXRlO2NvbWJyZXMuIFZpZ25ldHRlIGRlIGdhdWNoZSA6ICZxdW90OyBWYXJzb3ZpZSAx
OTQzICZxdW90OywgdmlnbmV0dGUgZGUgZHJvaXRlIDogJnF1b3Q7IEplbmluZSBhdWpvdXJk
JiMxNDY7aHVpICZxdW90Oy4gQ29tbWVudGFpcmUgZXhwbGljaXRlIGRhbnMgdW4gY29pbiBk
dSBkZXNzaW4gOiAmcXVvdDsgbCYjMTQ2O2hpc3RvaXJlIGEgdW5lIGN1cmlldXNlIGZhJmNj
ZWRpbDtvbiBkZSBzZSByJmVhY3V0ZTtwJmVhY3V0ZTt0ZXIgJnF1b3Q7ICEgISAhJiMxMzM7
PGJyPgoJCTxpbWcgaGVpZ2h0PSI0MDIiIHdpZHRoPSI2MDAiIHNyYz0icGhvdG9zL3dhcnNh
d0UuanBnIiBhbGlnbj0idG9wIj48YnI+CgkJTGUgTW9uZGUgY2F1dGlvbm5lIGRvbmMgZW4g
cHVibGlhbnQgY2UgZGVzc2luIHVuIHBhcmFsbCZlZ3JhdmU7bGUgZW50cmUgbGUgZ2hldHRv
IGRlIFZhcnNvdmllIGQmZWFjdXRlO3RydWl0IGV0IGxhbWluJmVhY3V0ZTsgcGFyIGxlcyBu
YXppcyBlbiAxOTQyLCBldCBsZSBjYW1wIGRlIHImZWFjdXRlO2Z1Z2kmZWFjdXRlOyBwYWxl
c3RpbmllbiBkZSBKZW5pbmUuIEF1dHJlbWVudCBkaXQgSXNyYSZldW1sO2wgZXN0IHVuICZl
YWN1dGU7dGF0IG5hemksIGxlcyBzb2xkYXRzIGRlIFRzYWhhbCBkZXMgU1MmIzEzMzs8YnI+
CgkJPGJyPgoJCUxlIE1vbmRlIGZhaXQgaWNpIG1vbnRyZSBkJiMxNDY7dW4gZCZlYWN1dGU7
bmkgZGUgciZlYWN1dGU7YWxpdCZlYWN1dGU7IGluY3JveWFibGUsIGQmIzE0Njt1bmUgaGFp
bmUgZXQgZCYjMTQ2O3VuZSBwcm9wYWdhbmRlIGFudGlzJmVhY3V0ZTttaXRlIGRvbnQgbGEg
dmlydWxlbmNlIGV0IGxhIGhhcmduZSBsZSBkaXNwdXRlbnQgJmFncmF2ZTsgY2VsbGVzIHF1
aSBhdmFpZW50IGNvdXJzIGVuIGRlcyB0ZW1wcyBxdSYjMTQ2O29uIGF1cmFpdCBlc3AmZWFj
dXRlO3ImZWFjdXRlOyByJmVhY3V0ZTt2b2x1cy48YnI+CgkJPGJyPgoJCUxlIE1vbmRlIG5v
dXMgYXZhaXQgZCZlYWN1dGU7aiZhZ3JhdmU7IGhhYml0dSZlYWN1dGU7ICZhZ3JhdmU7IGNv
bmZvbmRyZSBsZXMgbmV3cyBldCBsZXMgdmlld3MsIGxlcyBmYWl0cyBldCBsJiMxNDY7b3Bp
bmlvbi4gU29pdCwgbSZlY2lyYzttZSBzaSBzZSBjb3Jyb21wdCBhaW5zaSBwYWdlIGFwciZl
Z3JhdmU7cyBwYWdlIHVuIGNlcnRhaW4gaWQmZWFjdXRlO2FsIGR1IGpvdXJuYWxpc21lLjxi
cj4KCQlPbiBwZXV0IHMmIzE0NjtvcHBvc2VyICZhZ3JhdmU7IGxhIHBvbGl0aXF1ZSBkdSBn
b3V2ZXJuZW1lbnQgaXNyYSZlYWN1dGU7bGllbi4gTGlicmUgJmFncmF2ZTsgdG91cyBkZSBz
b3V0ZW5pciBsZXMgYXNwaXJhdGlvbnMgcGFsZXN0aW5pZW5uZXMuIElsIGVzdCBwZXJtaXMg
ZGUgc2UgcmV2ZW5kaXF1ZXIgZCYjMTQ2O3VuIGpvdXJuYWxpc21lIGVuZ2FnJmVhY3V0ZTsg
ZXQgcGFydGlzYW4sIGV0IGRlIG1pbGl0ZXIgZW4gZmF2ZXVyIGRlIHRlbCBvdSB0ZWwgY2Ft
cCYjMTMzOzxicj4KCQk8YnI+CgkJTWFpcyBzZSB2YXV0cmVyIGFpbnNpIGRhbnMgbGEgYmFz
c2Vzc2UgZCYjMTQ2O3VuZSB0ZWxsZSB2aWxlIHByb3BhZ2FuZGUgISBRdWkgbCYjMTQ2O2Um
dWNpcmM7dCBjciZ1Y2lyYzsgZGUgbGEgcGFydCBkJiMxNDY7dW4gam91cm5hbCBxdWUgbCYj
MTQ2O29uIGRpdCBlbmNvcmUgJmVjaXJjO3RyZSBsYSByJmVhY3V0ZTtmJmVhY3V0ZTtyZW5j
ZSBlbiBtYXRpJmVncmF2ZTtyZSBkZSBwcmVzc2UgZGFucyBub3RyZSBwYXlzID88YnI+CgkJ
PGJyPgoJCU91aSwgbCYjMTQ2O2hpc3RvaXJlIGEgdW5lIGJpZW4gY3VyaWV1c2UgZmEmY2Nl
ZGlsO29uIGRlIHNlIHImZWFjdXRlO3AmZWFjdXRlO3RlciA6IGF1am91cmQmIzE0NjtodWkg
YyYjMTQ2O2VzdCBsJiMxNDY7JmVhY3V0ZTtsaXRlICZlYWN1dGU7Y2xhaXImZWFjdXRlO2Us
IGQmZWFjdXRlO21vY3JhdGUgZXQgcHJvZ3Jlc3Npc3RlLCBxdWkgYWRvcHRlIGxhIHZlcnZl
IGFudGlzJmVhY3V0ZTttaXRlIGRlcyBsaWd1ZXMgZCYjMTQ2O2V4dHImZWNpcmM7bWUgZHJv
aXRlIGV0IGxhIHN0aWdtYXRpc2F0aW9uIGR1IGp1aWYgcXVpIGZsZXVyaXNzYWl0IGRhbnMg
bGEgcHJlc3NlIGNvbGxhYm8uIENlcnRlcywgbGUgcGFyYWRpZ21lIGVzdCBkaWZmJmVhY3V0
ZTtyZW50LCBlbiBjZSBOb3V2ZWF1IEJyJmVhY3V0ZTt2aWFpcmUgZGUgbGEgSGFpbmUgZCZl
YWN1dGU7Y3JpdCBwYXIgTWEmaWNpcmM7dHJlIEdvbGRuYWRlbC4gTWFpcyBsYSBjb25jbHVz
aW9uIGRlbWV1cmUsIElzcmEmZXVtbDtsLCBjJiMxNDY7ZXN0ICZhZ3JhdmU7IGRpcmUgbGUg
SnVpZiwgZXN0ICZhZ3JhdmU7IG1ldHRyZSBhdSBiYW4gZHUgbW9uZGUuIENhciBhdSB0cmF2
ZXJzIGQmIzE0NjtJc3JhJmV1bWw7bCwgZnVzdGlnJmVhY3V0ZTsgYWluc2kgZGFucyB2b3Mg
Y29sb25uZXMsIGMmIzE0Njtlc3QgY2hhcXVlIGp1aWYgcXVpIGVzdCBhdHRlaW50LiBFdCBp
bCBuJiMxNDY7ZXN0IHBpcmUgaW5zdWx0ZSBxdWUgZCYjMTQ2O2luc2ludWVyIHF1ZSBsZXMg
dmljdGltZXMgZCYjMTQ2O2hpZXIgbmUgdmFsZW50IHBhcyBtaWV1eCBhdWpvdXJkJiMxNDY7
aHVpIHF1ZSBsZXVycyBib3VycmVhdXggbmF6aXMuPGJyPgoJCTxicj4KCQlBaW5zaSBzZWxv
biBMZSBNb25kZSwgSXNyYSZldW1sO2wgYXVyYWl0IGQmZWFjdXRlO3Zhc3QmZWFjdXRlOyBs
ZSBjYW1wcyBkZSBKZW5pbmUgY29tbWUgbGEgc29sZGF0ZXNxdWUgU1MgYSByYXMmZWFjdXRl
OyBsZSBnaGV0dG8gZGUgVmFyc292aWUgPyAoZXQgbGVzIHBhbGVzdGluaWVucyBzdXJ2aXZh
bnRzLCBvbnQgaWxzICZlYWN1dGU7dCZlYWN1dGU7IGJyJnVjaXJjO2wmZWFjdXRlO3MgZGFu
cyBkZXMgY2hhbWJyZXMgJmFncmF2ZTsgZ2F6ID8gUXVhbmQgb3NlcmV6IHZvdXMgbCYjMTQ2
OyZlYWN1dGU7Y3JpcmU/KTxicj4KCQk8YnI+CgkJTiYjMTQ2O3kgYS10LWlsIGF1Y3VuIGxl
dHRyJmVhY3V0ZTsgcnVlIENsYXVkZSBCZXJuYXJkID8gTiYjMTQ2O3kgYS10LWlsIHBsdXMg
dW5lIHBlcnNvbm5lIHNlbnMmZWFjdXRlOyBldCBjb25uYWlzc2FudCBsJiMxNDY7aGlzdG9p
cmUgPyBKZSBuZSB2ZXV4IG0mZWNpcmM7bWUgcGFzIHBhcmxlciBkZSBsYSByJmVhY3V0ZTth
bGl0JmVhY3V0ZTsgZGUgY2UgcXVpIHMmIzE0Njtlc3QgcGFzcyZlYWN1dGU7ICZhZ3JhdmU7
IEplbmluZSBhdWpvdXJkJiMxNDY7aHVpLCBldCBkb250IGxlIGQmZWFjdXRlO3RhaWwgcmVz
dGUgJmFncmF2ZTsgJmVhY3V0ZTtjbGFpcmNpciwgbWFpcyBkb250IGxhIG1lc3VyZSBuJiMx
NDY7ZXN0IHNhbnMgY29tcGFyYWlzb24gcG9zc2libGUgYXZlYyBjZSBxdWkgcyYjMTQ2O2Vz
dCBwYXNzJmVhY3V0ZTsgaGllciAmYWdyYXZlOyBWYXJzb3ZpZS48YnI+CgkJPGJyPgoJCVBv
dXIgbSZlYWN1dGU7bW9pcmUsIGR1cmFudCBsYSBzZXVsZSBwJmVhY3V0ZTtyaW9kZSBkZSAx
MSBzZW1haW5lcyByZXRlbnVlIHNvdXMgbGUgbm9tIGRlICZxdW90OyBncmFuZGUgYWN0aW9u
ICZxdW90OyBkZSBsaXF1aWRhdGlvbiBkdSBnaGV0dG8gZGUgVmFyc292aWUsIGVudHJlIGp1
aWxsZXQgZXQgc2VwdGVtYnJlIDE5NDIsIDI4MCAmYWdyYXZlOyAzMDAgMDAwIGp1aWZzIG9u
dCAmZWFjdXRlO3QmZWFjdXRlOyBkJmVhY3V0ZTtwb3J0JmVhY3V0ZTtzIGV0IGV4dGVybWlu
JmVhY3V0ZTtzIGRhbnMgbGVzIGNhbXBzIGRlIFRyZWJsaW5rYSwgQmVsemVjLCBDaGVsbW5v
LCBTb2JpYm9yIGV0IEF1c2Nod2l0ei4gTGEgcG9wdWxhdGlvbiBjaXZpbGUgYXZhaXQgYXVw
YXJhdmFudCAmZWFjdXRlO3QmZWFjdXRlOyBlbXByaXNvbm4mZWFjdXRlO2UsIGVtcCZlY2ly
YztjaCZlYWN1dGU7ZSBkZSBzb3J0aXIgZHUgZ2hldHRvLCAmZWFjdXRlO3B1aXMmZWFjdXRl
O2UgcGFyIGxhIGZhaW0gZXQgbGVzIG1hbGFkaWVzLjxicj4KCQk8YnI+CgkJT3VpLCBsJiMx
NDY7aGlzdG9pcmUgYSB1bmUgYmllbiBjdXJpZXVzZSBmYSZjY2VkaWw7b24gZGUgc2UgciZl
YWN1dGU7cCZlYWN1dGU7dGVyIDogYyYjMTQ2O2VzdCBMZSBNb25kZSBxdWkgeSBwcmVuZCBw
YXJ0IGVuIGpldGFudCBhaW5zaSB1biBhbmF0aCZlZ3JhdmU7bWUgJmVhY3V0ZTtjJiMxNTY7
dXJhbnQgJmFncmF2ZTsgbCYjMTQ2O2VuY29udHJlIGQmIzE0NjtJc3JhJmV1bWw7bCwgc2Fu
cyBtZXN1cmUgZXQgc2FucyBkaXNjZXJuZW1lbnQuIFZvdXMgZCZlYWN1dGU7c2lnbmV6IGFp
bnNpICZhZ3JhdmU7IGxhIHZpbmRpY3RlIHBvcHVsYWlyZSBxdWkgc29udCBsZXMgc2FsYXVk
cy4gQ2FyIGNlIGRpc2NvdXJzIG0mZWFjdXRlO2RpYXRpcXVlIGQmZWFjdXRlO2NoYSZpY2ly
YztuJmVhY3V0ZTsgZXN0ICZlYWN1dGU7Y291dCZlYWN1dGU7LCByZWxheSZlYWN1dGU7LCBq
dXNxdWUgZGFucyBub3MgYmFubGlldWVzLiBOb3VzIGVuIGF2b25zIGQmZWFjdXRlO2omYWdy
YXZlOyB2dSBkYW5zIG5vdHJlIHBheXMgbGVzIHRyaXN0ZXMgY29ucyZlYWN1dGU7cXVlbmNl
cywgbWFpcyB2b3VzIHNlbWJsZXogbiYjMTQ2O2VuIGF2b2lyIHRpciZlYWN1dGU7IGF1Y3Vu
ZSYjMTMzOy48YnI+CgkJPGJyPgoJCVBsdXMgZ3JhdmUgOiBlbiBtZXR0YW50IEplbmluZSBl
dCBsZSBnaGV0dG8gZGUgVmFyc292aWUgc3VyIGxlIG0mZWNpcmM7bWUgcGxhbiwgdm91cyBw
YXJ0aWNpcGV6ICZhZ3JhdmU7IHVuZSAmIzE1Njt1dnJlIGRlIHImZWFjdXRlO3Zpc2lvbm5p
c21lIGhpc3RvcmlxdWUsIGRlIGQmZWFjdXRlO24mZWFjdXRlO2dhdGlvbiBkZSBjZSBxdSYj
MTQ2O2EgcHUgJmVjaXJjO3RyZSBsJiMxNDY7YW1wbGV1ciBkZSBsYSBTaG9haC4gQ2FyIHNp
IGF1am91cmQmIzE0NjtodWkgSmVuaW5lIGMmIzE0Njtlc3QgVmFyc292aWUsIGRlbWFpbiBs
ZSBnaGV0dG8gZGUgVmFyc292aWUgbmUgc2VyYSBwYXMgYXV0cmUgY2hvc2UgcXVlIEplbmlu
ZS48YnI+CgkJPGJyPgoJCUomIzE0NjtlbiBhaSBsYSBuYXVzJmVhY3V0ZTtlLCBldCBzaSBh
aW5zaSBmYWl0ZSBlc3Qgdm90cmUgdmlzaW9uIGRlcyBjaG9zZXMsIHNhY2hleiBxdWUgdm90
cmUgTW9uZGUgbmUgcGV1dCAmZWNpcmM7dHJlIGxlIG1pZW4uPGJyPgoJCUxlY3RldXIganVz
cXUmIzE0NjthbG9ycyBmaWQmZWdyYXZlO2xlIGRlIHZvdHJlIGpvdXJuYWwsIGplIG4mIzE0
NjthY2gmZWdyYXZlO3RlcmFpcyBwbHVzIG5pIG5lIGxpcmFpcyBMZSBNb25kZSwgdGFudCBz
b250IGVudGFjaCZlYWN1dGU7ZXMgJmFncmF2ZTsgbWVzIHlldXggdm9zIGNhcGFjaXQmZWFj
dXRlO3MgJmFncmF2ZTsgdGVuaXIgdm90cmUgciZvY2lyYztsZSBkJiMxNDY7aW5mb3JtYXRp
b24gOmplIG5lIHBldXggcGx1cyBmYWlyZSBjb25maWFuY2UgYXUgTW9uZGUgcG91ciBjb21w
cmVuZHJlIGVuIGNvbnNjaWVuY2UgY2UgcXUmIzE0Njtlc3QgbGEgciZlYWN1dGU7YWxpdCZl
YWN1dGU7IGQmIzE0NjthdWpvdXJkJiMxNDY7aHVpJiMxMzM7PGJyPgoJCTxicj4KCQlBbGV4
YW5kcmUgSi48YnI+CgkJQm91bG9nbmUgKDkyKTxicj4KCQk8L2ZvbnQ+Cgk8L2JvZHk+Cgo8
L2h0bWw+Cj==
--X0L3d9733m7s10V1WmboUT810j101V1--
From dev@trilug.org Mon May 6 17:41:00 2002
From: dev@trilug.org (Jeremy P)
Date: Mon, 6 May 2002 12:41:00 -0400 (EDT)
Subject: [Dev] Virus Alert... seriously
In-Reply-To: <20020506160428.RBT4379.out002.verizon.net@Baqrddn>
Message-ID:
Hey everyone,
Someone on this list has the "Klez" virus.
Please, everyone with Windows, update your Anti-Virus packages, or switch
to Linux! :-)
Here's an article about this virus. There's a free removal tool available
from Symantec.com also.
http://www.wired.com/news/technology/0,1282,52174,00.html
--Jeremy
On Mon, 6 May 2002, scmorris wrote:
[virus-filled attachments]
From dev@trilug.org Mon May 6 17:45:38 2002
From: dev@trilug.org (David A. Cafaro)
Date: Mon, 06 May 2002 12:45:38 -0400
Subject: [Dev] A funny game (really a virus)
In-Reply-To: <20020506160428.RBT4379.out002.verizon.net@Baqrddn>
Message-ID: <5.1.1.2.0.20020506123406.0386b1d8@mail.cafaro.net>
Nice virus....
W32.Klez.gen@mm virus
Might want to scan your windows system.
At 12:05 PM 5/6/2002, scmorris wrote:
>Content-Type: text/html;
>
>Hi,This is a funny game
>This game is my first work.
>You're the first player.
>I wish you would like it.
From dev@trilug.org Mon May 6 17:47:35 2002
From: dev@trilug.org (David A. Cafaro)
Date: Mon, 06 May 2002 12:47:35 -0400
Subject: [Dev] Virus Alert... seriously
In-Reply-To:
References: <20020506160428.RBT4379.out002.verizon.net@Baqrddn>
Message-ID: <5.1.1.2.0.20020506124559.00b13198@mail.cafaro.net>
Yeah, I saw that one. Norton picked it up before anything could happen to
my system, not to mention I don't run .exe files that I get through the
email usually. (happen to be at work and using Windoze at the moment...)
At 12:41 PM 5/6/2002, you wrote:
>Hey everyone,
>Someone on this list has the "Klez" virus.
>
>Please, everyone with Windows, update your Anti-Virus packages, or switch
>to Linux! :-)
>
>Here's an article about this virus. There's a free removal tool available
>from Symantec.com also.
>
>http://www.wired.com/news/technology/0,1282,52174,00.html
>
>--Jeremy
>
>On Mon, 6 May 2002, scmorris wrote:
>
>[virus-filled attachments]
>
>_______________________________________________
>Dev mailing list
>Dev@trilug.org
>http://www.trilug.org/mailman/listinfo/dev
From dev@trilug.org Mon May 6 19:15:42 2002
From: dev@trilug.org (John Beimler)
Date: Mon, 6 May 2002 14:15:42 -0400
Subject: [Dev] Virus Alert... seriously
In-Reply-To:
References: <20020506160428.RBT4379.out002.verizon.net@Baqrddn>
Message-ID: <20020506181542.GA26946@radiomind.com>
begin quotation from Jeremy P [on 020506 12:43]:
>
> Hey everyone,
> Someone on this list has the "Klez" virus.
>
and that someones email headers look like this:
Return-Path:
[...]
Received: from fatalpha.trilug.org (localhost.localdomain [127.0.0.1])
by fatalpha.trilug.org (8.11.6/8.11.6) with ESMTP id g46GAH330287;
Mon, 6 May 2002 12:10:17 -0400
Received: from out002.verizon.net (out002pub.verizon.net [206.46.170.141])
by fatalpha.trilug.org (8.11.6/8.11.6) with ESMTP id g46G8a330256
for ; Mon, 6 May 2002 12:08:36 -0400
Received: from Baqrddn ([213.8.53.81]) by out002.verizon.net
(InterMail vM.5.01.04.05 201-253-122-122-105-20011231) with SMTP
id <20020506160428.RBT4379.out002.verizon.net@Baqrddn>
for ; Mon, 6 May 2002 11:04:28 -0500
[...]
so if the name Baqrddn looks familiar to you, or you are relaying
through verizon.net, its probably you. (Wish it was RR, they catch who
is actually sending the mail, much easier to identify the true sender)
Peace.
john
From dev@trilug.org Tue May 7 18:45:33 2002
From: dev@trilug.org (Chris Hedemark)
Date: 07 May 2002 13:45:33 -0400
Subject: [Dev] Virus Alert... seriously
In-Reply-To:
References:
Message-ID: <1020793541.21074.72.camel@crab.yonderway.priv>
--=-peKcq4szoYMMesy2Kk/h
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable
You can neuter your Lookout... errr... Outlook system by deleting
%SystemRoot%\system32\wscript.exe
You only need that if you legitimately run vbscript. 99% of people
don't.
If you delete this file, those Lookout virii become a thing of the past.
On Mon, 2002-05-06 at 12:41, Jeremy P wrote:
>=20
> Hey everyone,
> Someone on this list has the "Klez" virus.
>=20
> Please, everyone with Windows, update your Anti-Virus packages, or switch
> to Linux! :-)
>=20
> Here's an article about this virus. There's a free removal tool availabl=
e
> from Symantec.com also.
>=20
> http://www.wired.com/news/technology/0,1282,52174,00.html
>=20
> --Jeremy
>=20
> On Mon, 6 May 2002, scmorris wrote:
>=20
> [virus-filled attachments]
>=20
> _______________________________________________
> Dev mailing list
> Dev@trilug.org
> http://www.trilug.org/mailman/listinfo/dev
--=20
***********************************************************
| Rev. Chris Hedemark, DD
| Hillsborough, NC
| http://yonderway.com
***********************************************************
--=-peKcq4szoYMMesy2Kk/h
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQA82BK9YPuF4Zq9lvYRAon3AJoD6vTvtcgjuavCmIr8gvipZ5cW8gCgwD2p
3sBTeEc5tUCOZv5Sir+KdGU=
=YJl6
-----END PGP SIGNATURE-----
--=-peKcq4szoYMMesy2Kk/h--
From dev@trilug.org Tue May 7 19:30:32 2002
From: dev@trilug.org (M. Mueller)
Date: Tue, 7 May 2002 14:30:32 -0400
Subject: [Dev] null terms for strings
Message-ID:
Here's a little program that captures a problem I had today. I have a map
container, map
#include
using namespace std;
main()
{
string a;
a = 'a';
a += ' ';
a += 's';
a += 't';
a += 'r';
a += 'i';
a += 'n';
a += 'g';
a += '\0';
string b;
b = 'a';
b += ' ';
b += 's';
b += 't';
b += 'r';
b += 'i';
b += 'n';
b += 'g';
if (a == b)
cout << "a equals b\n";
else
cout << "a not equals b\n";
if (strcmp(a.c_str(), b.c_str()) == 0)
cout << "a.c_str() equals b.c_str()\n";
else
cout << "a.c_str() not equals b.c_str()\n";
}
--
Michael Mueller
Signalnetware, Inc.
www.signalnetware.com
919.621.6090
From dev@trilug.org Tue May 7 19:55:32 2002
From: dev@trilug.org (Tanner Lovelace)
Date: 07 May 2002 14:55:32 -0400
Subject: [Dev] null terms for strings
In-Reply-To:
References:
Message-ID: <1020797734.18264.26.camel@linux-lovelace.internal.opennms.org>
On Tue, 2002-05-07 at 14:30, M. Mueller wrote:
> Here's a little program that captures a problem I had today. I have a map
> container, map machine. I pack each entry into datagram and send it via sockets to another
> machine where each packet is collected and used to build a copy of the map
> entry by entry. So, I convert the string key to an array of chars for the
> journey to the other side. In the process I got confused about the function
> of null terminators on char array strings versus string objects.
>
Well, for one thing, a C++ string may or may not be null terminated.
Officially, it's not specified as to how they are stored internally.
So, when in doubt, assume it's not.
> To compile: g++ -o test test.cpp
>
>
> #include
> using namespace std;
>
> main()
> {
> string a;
> a = 'a';
> a += ' ';
> a += 's';
> a += 't';
> a += 'r';
> a += 'i';
> a += 'n';
> a += 'g';
> a += '\0';
> string b;
> b = 'a';
> b += ' ';
> b += 's';
> b += 't';
> b += 'r';
> b += 'i';
> b += 'n';
> b += 'g';
>
> if (a == b)
> cout << "a equals b\n";
> else
> cout << "a not equals b\n";
>
> if (strcmp(a.c_str(), b.c_str()) == 0)
> cout << "a.c_str() equals b.c_str()\n";
> else
> cout << "a.c_str() not equals b.c_str()\n";
>
> }
>
Well, I haven't run it, but just looking at it, I'd say the
strings are not the same. String a has a null character at
the end and string b doesn't.
In addition, I'd be interested in seeing what the .c_str()
function returned. I'd bet it doesn't do any checking for
stuff like this and the c-style strings that get returned
*are* the same (because they *must* have a null at the end)
even though the C++ strings are not.
I would just suggest sending over the output of the .c_str()
function of each string and then using the string constructor
to recreate them on the other side.
Tanner
--
Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4
GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
Have we sent the "Don't shoot, we're pathetic" transmission yet?
Commander John Crichton (Farscape)
From dev@trilug.org Tue May 7 20:39:02 2002
From: dev@trilug.org (Ed Hill)
Date: 07 May 2002 13:39:02 -0600
Subject: [Dev] null terms for strings
In-Reply-To:
References:
Message-ID: <1020800342.1133.1370.camel@eddy>
On Tue, 2002-05-07 at 12:30, M. Mueller wrote:
> Here's a little program that captures a problem I had today. I have a map
> container, map machine. I pack each entry into datagram and send it via sockets to another
> machine where each packet is collected and used to build a copy of the map
> entry by entry. So, I convert the string key to an array of chars for the
> journey to the other side. In the process I got confused about the function
> of null terminators on char array strings versus string objects.
Hi Mike,
I tested your snippet and got:
[edhill@eddy ~]$ ./a.out
a not equals b
a.c_str() equals b.c_str()
[edhill@eddy ~]$
which I'm sure is your complaint.
Heres a fix: How about writing the re-assembly part of your code so
that, by default, it automatically strips any trailing nulls?
Its easy and then you don't have to worry about whether you sent the
string with null termination or not. Of course, its a lousy idea if
your strings ever need to contain imbedded nulls, but that may not be a
problem...
hth,
Ed
--
Edward H. Hill III, PhD | Email: ed@eh3.com, ehill@mines.edu
Post-Doctoral Researcher | URLs: http://www.eh3.com
Division of ESE | http://wasser.mines.edu/people/edhill.php
Colorado School of Mines | Phone: 303-273-3483
Golden, CO 80401 | Fax: 303-273-3311
Key fingerprint = 5BDE 4DA1 66BE 4F7B BC17 3A0C 932B 7266 1E76 F123
From dev@trilug.org Tue May 7 20:52:32 2002
From: dev@trilug.org (M. Mueller)
Date: Tue, 7 May 2002 15:52:32 -0400
Subject: [Dev] test-pls ignore
Message-ID:
--
Michael Mueller
Signalnetware, Inc.
www.signalnetware.com
919.621.6090
From dev@trilug.org Tue May 7 22:07:59 2002
From: dev@trilug.org (Michael Mueller / Signalnetware)
Date: Tue, 7 May 2002 17:07:59 -0400
Subject: [Dev] dev mystery solved
In-Reply-To: <1020801471.21074.163.camel@crab.yonderway.priv>
References: <1020801471.21074.163.camel@crab.yonderway.priv>
Message-ID:
I killed everyone of my filters (waaaaaa)...then I remembered what the
problem is (grrrrr). Yahoo kill pop access to mail. I ditched them. I am
subscribed to dev as bhu5nji@yahoo.com. I'm going in now to make changes.
My app transforms a 10 digit telephone number as follows: comes in via TCP as
a sequence of ASCII char; gets transformed and saved into a PACKED array of
nibbles (unsigned int bcd_digit:4 PACKED;) containing BCD values (digit -
'0'), the BCD array gets transformed into a string so the telephone number
becomes a key into a map. The map is duplicated on two mated machines, so
the string key is decomposed into ASCII chars and put into a intermachine
comm structure payload section (plain old byte array). On the other side,
this char string is reassmbled into the map key string.
At the end of this juggling act I should be able to use the same telephone
number to get the same map entry on both machines. That is not the case.
One map's key is len==11 "2128902345"+'\0' and the other is len==10
"2128902345".
The problem was solved by removing the line that adds '\0' to the string. I
was getting caught up in the internal representation of the string as though
it were an array of chars needing a null terminator. The twist came from the
results as Ed pointed out:
a not equals b (this is the comparison the map container is using)
a.c_str() equals b.c_str()
If you try to printf or cout the strings, there are no visual clues
--
Michael Mueller
Signalnetware, Inc.
www.signalnetware.com
919.621.6090
From dev@trilug.org Tue May 7 22:20:12 2002
From: dev@trilug.org (M. Mueller)
Date: Tue, 7 May 2002 17:20:12 -0400
Subject: [Dev] test; ignore; all better now
Message-ID:
--
Michael Mueller
Signalnetware, Inc.
www.signalnetware.com
919.621.6090
From dev@trilug.org Wed May 15 20:49:01 2002
From: dev@trilug.org (Tanner Lovelace)
Date: 15 May 2002 15:49:01 -0400
Subject: [Dev] Re: [TriLUG] anybody use pointers and shared memory?
In-Reply-To:
References:
Message-ID: <1021492142.23636.68.camel@linux-lovelace.internal.opennms.org>
On Wed, 2002-05-15 at 15:30, John F Davis wrote:
> Hello
>
> I know how to use shared memory between processes via shmget and shmat, but
> I'm not an expert on their use. (I've used it for simple flat structures.)
> Anybody have any experience using them with something similar to malloc'd
> pointers? For instance, if I want to dynamically allocate data that is
> shared, do I have to use shmget/shmat in lieu of malloc?
>
> Yes, I realize each process has their own heap so malloced pointers shared
> between process's are meaningless, but is their some simple technique for
> dynamic shared memory?
>
> I realize I'm not very clear on this. Its easier to describe the problem
> more concisely with code, but I don't have any code written at this point
> because I am just thinking out loud.
> JD
Hi John,
Could you explain a little more about what you're doing? If you're
trying to share memory between two processes that were created from
the same original process using fork, you should probably look
at the mm library (http://www.engelschall.com/sw/mm/). If you're
trying to share between two completely separate processes, however,
then mm won't help you.
It sounds like what you need is basically SGI Arenas, which, as
far as I know, aren't available under linux. (Actually, the
SGI performer team did a port of it to linux but last I heard
it wasn't :-( open source.) I was looking for something like
this a while back for completely disparate processes and didn't
have any luck finding anything. If you do come up with something,
I'd be interested in hearing about it.
BTW, I've cc'd the dev list for this. This sounds like it is
more properly a question for that list. (Although, if anyone
on the main list wants to answer it, please don't let me discourage
you.)
Tanner
--
Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4
GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
Have we sent the "Don't shoot, we're pathetic" transmission yet?
Commander John Crichton (Farscape)
From dev@trilug.org Wed May 15 21:44:53 2002
From: dev@trilug.org (H Brett Bolen)
Date: Wed, 15 May 2002 16:44:53 -0400
Subject: [Dev] Re: [TriLUG] anybody use pointers and shared memory?
References:
Message-ID: <3CE2C8C5.6010206@nc.rr.com>
John F Davis wrote:
> Hello
>
> I know how to use shared memory between processes via shmget and shmat, but
> I'm not an expert on their use. (I've used it for simple flat structures.)
> Anybody have any experience using them with something similar to malloc'd
> pointers? For instance, if I want to dynamically allocate data that is
> shared, do I have to use shmget/shmat in lieu of malloc?
>
Hey John,
There is a very simple wrapper class, SharedArray, here:
http://www.pressenter.com/~3nelsons/joecode/
it's implemented in the header file, and is easy to use. as long as
the destructors are called, everything is cleaned up.
use is as simple as
typedef struct {
...
} MyStruct;
MyStruct *MyStructArray = new SharedArray< MyStruct> ( "Name", 100);
MyStructArray[1] = ...
delete MyStructArray;
may not be exact, but close.
b\375
ps: I'm forwarding this to dev@trilug.org
From dev@trilug.org Thu May 23 23:40:09 2002
From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=)
Date: Thu, 23 May 2002 18:40:09 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?HOWTO_write_a_daemon?=
Message-ID: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com>
Hi all,
I have a console application that I want to turn into a daemon. Does anyone
know where I can find documentation on how to do that.
Thanks in advance.
--
Peter Long
From dev@trilug.org Fri May 24 00:13:23 2002
From: dev@trilug.org (M. Mueller)
Date: Thu, 23 May 2002 19:13:23 -0400
Subject: [Dev] HOWTO write a daemon
In-Reply-To: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com>
References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com>
Message-ID:
--------------Boundary-00=_B67LJILHVVNP29FHWORQ
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote:
> Hi all,
>
> I have a console application that I want to turn into a daemon. Does anyone
> know where I can find documentation on how to do that.
>
> Thanks in advance.
Here's my daemon launcher. It is more than a basic daemon launcher because I
have N daemons that all talk to each other. Furthermore, I don't want any
daemons to start doing business until all the other daemons are ready.
--
Mike Mueller
www.ss7box.com
--------------Boundary-00=_B67LJILHVVNP29FHWORQ
Content-Type: text/x-c++;
charset="iso-8859-1";
name="dlaunch_main.c"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="dlaunch_main.c"
I2luY2x1ZGUJPHN5cy9zdGF0Lmg+CiNpbmNsdWRlCTxzeXMvbXNnLmg+CiNpbmNsdWRlCTxmY250
bC5oPgojaW5jbHVkZQk8c3lzbG9nLmg+CiNpbmNsdWRlCTxzdGRpby5oPgojaW5jbHVkZQk8dW5p
c3RkLmg+CiNpbmNsdWRlCTxlcnJuby5oPgojaW5jbHVkZQkiaXBjX21xLmgiCgojZGVmaW5lCQlN
QVhfREFFTU9OUwk1CiNkZWZpbmUJCURBRU1PTl9QQVRICSJ1c3IvbG9jYWwvc3M3dC9iaW4vIgoK
Y2hhcgkJKmVudl9pbml0W10gPSB7IlVTRVI9bXRwM2QiLCAiUEFUSD0vdG1wIiwgTlVMTH07CmNo
YXIJCSpkYWVtb25fbmFtZXNbXVtNQVhfREFFTU9OU10gPSB7CgkJCSJtdHAzX2QiLAoJCQkidGFs
aV9kIiwKLy8JCQkic2N0cF9kIiwKCQkJIm9hbV9kIiwKCQkJIm1yX2QiLAoJCQkicHNfZCIKCQl9
OwoKaW50CQkJc29ja2ZkOwpzdHJ1Y3Qgc29ja2FkZHJfaW4JbXlhZGRyLCBwZWVyYWRkcjsKdF9p
cGNfbXFidWYJCW1iOwpzb2NrbGVuX3QJCXNvY2thZGRybGVuOwoKdm9pZCBnZXRfYnVzeSAodW5z
aWduZWQgaW50IGRhZW1vbl9pZCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCnsKaW50CXI7CgoJYnplcm8oJnBlZXJhZGRyLCBzaXplb2YocGVlcmFkZHIpKTsK
CXBlZXJhZGRyLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwoJcGVlcmFkZHIuc2luX3BvcnQgPSBodG9u
cyhkYWVtb25faWQpOwoJciA9IGluZXRfcHRvbihBRl9JTkVULCBJUENfQUREUl9TVFIsICZwZWVy
YWRkci5zaW5fYWRkci5zX2FkZHIpOwoJaWYgKHIgPT0gLTEpCgkJewoJCXN5c2xvZyAoTE9HX0lO
Rk8sICJGOmRhZW1vbl9sYXVuY2hlcjpnZXRfYnVzeTppbmV0X3B0b24gZmFpbGVkOiVzIiwKCQkJ
CXN0cmVycm9yKGVycm5vKSk7CgkJZXhpdCAoLTEpOwoJCX0KCgliemVybyAoJm1iLCBzaXplb2Yo
bWIpKTsKCW1iLm1oZHIuc19pZCA9IERMQVVOQ0hfSUQ7IC8vIHRoaXMgaXMgdGhlIGxldHRlciBz
ZW5kZXIKCW1iLm1oZHIubWNvZGUgPSBJUENfUFJPQ0VFRDsgCgltYi5taGRyLm1sZW4gPSBzaXpl
b2YodF9pcGNfbWJfaGRyKTsKCglyID0gc2VuZHRvIChzb2NrZmQsICZtYiwgbWIubWhkci5tbGVu
LCBOT0ZMQUdTLCAKCQkJJnBlZXJhZGRyLCBzaXplb2YgKHBlZXJhZGRyKSk7CglpZiAociA9PSAt
MSkKCQl7CgkJc3lzbG9nIChMT0dfSU5GTywgIkY6Z2V0IGJ1c3k6c2VuZHRvIGZhaWxlZDpjYXVz
ZSAlcyB0YXJnZXQ6ICVzIiwgCgkJCQlzdHJlcnJvcihlcnJubyksIGRhZW1vbl9pZCk7CgkJZXhp
dCAoLTEpOwoJCX0KfQoKaW50IGRhZW1vbl9pbml0KGNoYXIgKnBfZGFlbW9uX2ZuYW1lKQovKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KewpjaGFyCWRhZW1vbl9w
YXRobmFtZSBbMTI4XTsKCXBpZF90CXBpZDsKCglpZiAoIChwaWQgPSBmb3JrKCkpIDwgMCkKCQly
ZXR1cm4oLTEpOwoJZWxzZSBpZiAocGlkICE9IDApCgkJcmV0dXJuICgwKTsJLyogdGhlIHBhcmVu
dCBwcm9jZXNzIHJldHVybnMgZnJvbSB0aGlzIGZ1bmN0aW9uIGhlcmUgKi8KCi8vIHRoZSBjaGls
ZCBwcm9jZXNzIGNvbnRpbnVlcyBoZXJlCgoJc2V0c2lkKCk7CQkvKiBiZWNvbWUgc2Vzc2lvbiBs
ZWFkZXIgKi8KCWNoZGlyKCIvIik7CQkvKiBjaGFuZ2Ugd29ya2luZyBkaXJlY3RvcnkgKi8KCXVt
YXNrKDApOwkJLyogY2xlYXIgb3VyIGZpbGUgbW9kZSBjcmVhdGlvbiBtYXNrICovCgoJaWYgKChz
dHJsZW4gKHBfZGFlbW9uX2ZuYW1lKSArIHN0cmxlbiAoREFFTU9OX1BBVEgpKyAxKSA+IHNpemVv
ZiAoZGFlbW9uX3BhdGhuYW1lKSkKCQl7CgkJc3lzbG9nIChMT0dfSU5GTywgImRhZW1vbiBwYXRo
bmFtZSB0b28gbG9uZyIpOwoJCWV4aXQgKC0xKTsKCQl9CgovLyBleGVjIHRoZSBkYWVtb24gaW4g
dGhlIGNoaWxkIHByb2Nlc3MgCgoJZXhlY2wgCSgKCQlzdHJjYXQgKHN0cmNweSAoZGFlbW9uX3Bh
dGhuYW1lLERBRU1PTl9QQVRIKSwgcF9kYWVtb25fZm5hbWUpLCAKCQlwX2RhZW1vbl9mbmFtZSwK
CQkoY2hhciAqKSAwCgkJKTsKCQovLyBzaG91bGQgbmV2ZXIgcmVhY2ggdGhpcyBzdGF0ZW1lbnQK
CglleGl0KDApOwp9CgppbnQgZGFlbW9uX2NvbW1fcmVhZHkgKHZvaWQpCi8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwp7CnNzaXplX3QJYnc7CnVfbG9uZwlkYWVt
b25zX3JlYWR5OwoKCWRhZW1vbnNfcmVhZHkgPSAwOwoKCWZvciAoOzspCgkJewovLyBibG9ja2lu
ZyByZWFkOyB3YWl0IGZvciBhIGRhZW1vbiB0byByZXBvcnQgZm9yIGR1dHk7IGlmIHRoaXMgYmVj
b21lcwovLyBhIGJsb2NrLWZvcmV2ZXIgY29uZGl0aW9uLCB0aGVuIG9uZSBtdXN0IHJlc29ydCB0
byBraWxsaW5nIHByb2Nlc3MKLy8gdXNlICJwcyAtYXhqIiBhcyBzdXBlcnVzZXIgdG8gZmluZCB0
aGUgcHJvY2Vzc2VzIHRvIGJlIGtpbGxlZAoKCQlidyA9IHJlY3Zmcm9tIChzb2NrZmQsICZtYiwg
c2l6ZW9mIChtYiksIE5PRkxBR1MsIAoJCQkmcGVlcmFkZHIsICZzb2NrYWRkcmxlbik7CgkJaWYg
KGJ3ID09IC0xKQoJCQl7CgkJCXN5c2xvZyAoTE9HX0lORk8sICJGOmRhZW1vbl9jb21tX3JlYWR5
OnJlY3Zmcm9tIGZhaWxlZCIpOwoJCQlleGl0ICgtMSk7CgkJCX0KCi8vIHNob3cgd2hvJ3MgcmVh
ZHkgZm9yIGR1dHk7IGFkZCBhIHN0cmluZyB0ZXJtaW5hdGlvbgoKCQkvL21iLm1kYXRhW21iLm1o
ZHIubWxlbiAtIHNpemVvZih0X2lwY19tYl9oZHIpXSA9ICdcMCc7CgkJc3lzbG9nIChMT0dfSU5G
TywgIkk6bWIgY29udGVudHM6c19pZCAlZCBkYWVtb24gb24gZHV0eTogJXMiLCAKCQkJCW1iLm1o
ZHIuc19pZCwgCgkJCQkmbWIubWRhdGEpOwoJCQoJCWRhZW1vbnNfcmVhZHkgPSBkYWVtb25zX3Jl
YWR5IHwgbWIubWhkci5zX2lkOwoJCWlmIChkYWVtb25zX3JlYWR5ID09IEFMTF9EQUVNT05TX1JF
QURZKQoJCQl7CgkJCXN5c2xvZyAoTE9HX0lORk8sICJJOmRhZW1vbl9jb21tX3JlYWR5OmFsbCBk
YWVtb25zIHJlYWR5Iik7CgkJCWJyZWFrOwoJCQl9CgkJfSAvLyBlbmQgb2YgZm9yIGxvb3AKCi8v
IHRlbGwgdGhlIGRhZW1vbnMgdGhhdCBJUEMgbWF5IHByb2NlZWQKCglnZXRfYnVzeSAoTVRQM19Q
T1JUKTsKCWdldF9idXN5IChUQUxJX1BPUlQpOwovLwlnZXRfYnVzeSAoU0NUUF9JUENfUE9SVCk7
CglnZXRfYnVzeSAoT0FNX1BPUlQpOwoJZ2V0X2J1c3kgKE1SX1BPUlQpOwoJZ2V0X2J1c3kgKFBT
X1BPUlQpOwp9CgppbnQJY29uZmlndXJlX2RsKCkKLyoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKiovCnsKCS8vZGxDb25mID0gbmV3IGNfY29uZlJlYWRlcigiZGwiKTsK
CS8vZGVsZXRlIGRsQ29uZgp9CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQovKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KewppbnQJZDsKaW50CXI7
CgoJb3BlbmxvZyAoImRhZW1vbl9pbml0IiAsTE9HX1BJRCwgTE9HX1VTRVIpOwoJc3lzbG9nIChM
T0dfSU5GTyAsIkRhZW1vbiBsYXVuY2hlciBzdGFydGluZyIpOwoKLy8gcmVhZCBkYWVtb24gbGF1
bmNoZXIgY29uZiBmaWxlCgkKCWNvbmZpZ3VyZV9kbCgpOwoJCglzb2NrZmQgPSBzb2NrZXQoQUZf
SU5FVCwgU09DS19ER1JBTSwgMCk7CglpZiAoc29ja2ZkID09IC0xKQoJCXsKCQlzeXNsb2cgKExP
R19JTkZPLCAic29ja2V0IGZhaWxlZCIpOwoJCWV4aXQgKC0xKTsKCQl9CgovLyBjcmVhdGUgYW4g
SW50ZXJuZXQgUHJvdG9jb2wgYWRkcmVzcwoKCWJ6ZXJvKCZteWFkZHIsIHNpemVvZihteWFkZHIp
KTsKCW15YWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCW15YWRkci5zaW5fcG9ydCA9IGh0b25z
KERMQVVOQ0hfUE9SVCk7CglyID0gaW5ldF9wdG9uKEFGX0lORVQsIElQQ19BRERSX1NUUiwgJm15
YWRkci5zaW5fYWRkci5zX2FkZHIpOwoJaWYgKHIgPT0gLTEpCgkJewoJCXN5c2xvZyAoTE9HX0lO
Rk8sICJJOmRhZW1vbl9sYXVuY2hlcjptYWluOmluZXRfcHRvbiBmYWlsZWQ6JXMiLAoJCQkJc3Ry
ZXJyb3IoZXJybm8pKTsKCQlleGl0ICgtMSk7CgkJfQoKCXIgPSBiaW5kIChzb2NrZmQsIChjb25z
dCBzdHJ1Y3Qgc29ja2FkZHIgKikgJm15YWRkciwgc2l6ZW9mKG15YWRkcikpOwoJaWYgKHIgPT0g
LTEpCgkJewoJCXN5c2xvZyAoTE9HX0lORk8sICJiaW5kIGZhaWxlZCIpOwoJCWV4aXQgKC0xKTsK
CQl9CgoJZm9yIChkID0gMDsgZCA8IE1BWF9EQUVNT05TOyBkKyspIAoJCXsKCQlpZiAoZGFlbW9u
X2luaXQgKGRhZW1vbl9uYW1lcyBbMF1bZF0pID09IC0xKQoJCQl7CgkJCXN5c2xvZyAoTE9HX0lO
Rk8sICJmb3JrIGZhaWxlZDsgZGFlbW9uIElEOiAlc1xuIiwgZGFlbW9uX25hbWVzW2RdKTsKCQkJ
cmV0dXJuICgtMSk7CgkJCX0KCQl9CgoJaWYgKGRhZW1vbl9jb21tX3JlYWR5ICgpID09IC0xKQoJ
CXsKCQl9CglyZXR1cm4gKDApOwp9Cg==
--------------Boundary-00=_B67LJILHVVNP29FHWORQ--
From dev@trilug.org Fri May 24 00:15:18 2002
From: dev@trilug.org (M. Mueller)
Date: Thu, 23 May 2002 19:15:18 -0400
Subject: [Dev] HOWTO write a daemon
In-Reply-To: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com>
References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com>
Message-ID:
On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote:
> Hi all,
>
> I have a console application that I want to turn into a daemon. Does anyone
> know where I can find documentation on how to do that.
>
> Thanks in advance.
BTW, check out Richard Stevens texts. http://www.kohala.com/start/#books
--
Mike Mueller
www.ss7box.com
From dev@trilug.org Fri May 24 00:39:58 2002
From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=)
Date: Thu, 23 May 2002 19:39:58 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_HOWTO_write_a_daemon?=
In-Reply-To:
References:
Message-ID: <3582.192.168.0.2.1022197198.squirrel@albert.petelong.com>
> On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote:
>> Hi all,
>>
>> I have a console application that I want to turn into a daemon. Does
>> anyone know where I can find documentation on how to do that.
>>
>> Thanks in advance.
>
> BTW, check out Richard Stevens texts.
> http://www.kohala.com/start/#books
>
> --
> Mike Mueller
> www.ss7box.com
Thanks!
That link and your daemon launcher should get me on the right track.
--
Peter Long
mailto:petelong@petelong.com
From dev@trilug.org Fri May 24 02:06:26 2002
From: dev@trilug.org (David A. Cafaro)
Date: 23 May 2002 21:06:26 -0400
Subject: [Dev] HOWTO write a daemon
In-Reply-To:
References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com>
Message-ID: <1022202387.2055.6.camel@kara.georgetown.edu>
Just curious but what is wrong with just writing a program that doesn't
put out any text to the console and starting it with a script with a
command like this:
mydaemon&
Besides the fact that it's a little less elegant?
It's been a long long time since I did C/C++ coding and righting
daemons. I'm planning on writing up a little tcp/ip daemon for my
Zaurus. Thanks for any input.
-David
On Thu, 2002-05-23 at 19:13, M. Mueller wrote:
> On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote:
>
> > Hi all,
> >
> > I have a console application that I want to turn into a daemon. Does anyone
> > know where I can find documentation on how to do that.
> >
> > Thanks in advance.
>
>
> Here's my daemon launcher. It is more than a basic daemon launcher because I
> have N daemons that all talk to each other. Furthermore, I don't want any
> daemons to start doing business until all the other daemons are ready.
>
> --
> Mike Mueller
> www.ss7box.com
> ----
>
> #include
> #include
> #include
> #include
> #include
> #include
> #include
> #include "ipc_mq.h"
>
> #define MAX_DAEMONS 5
> #define DAEMON_PATH "usr/local/ss7t/bin/"
>
> char *env_init[] = {"USER=mtp3d", "PATH=/tmp", NULL};
> char *daemon_names[][MAX_DAEMONS] = {
> "mtp3_d",
> "tali_d",
> // "sctp_d",
> "oam_d",
> "mr_d",
> "ps_d"
> };
>
> int sockfd;
> struct sockaddr_in myaddr, peeraddr;
> t_ipc_mqbuf mb;
> socklen_t sockaddrlen;
>
> void get_busy (unsigned int daemon_id)
> /******************************************************************************
> ******************************************************************************/
> {
> int r;
>
> bzero(&peeraddr, sizeof(peeraddr));
> peeraddr.sin_family = AF_INET;
> peeraddr.sin_port = htons(daemon_id);
> r = inet_pton(AF_INET, IPC_ADDR_STR, &peeraddr.sin_addr.s_addr);
> if (r == -1)
> {
> syslog (LOG_INFO, "F:daemon_launcher:get_busy:inet_pton failed:%s",
> strerror(errno));
> exit (-1);
> }
>
> bzero (&mb, sizeof(mb));
> mb.mhdr.s_id = DLAUNCH_ID; // this is the letter sender
> mb.mhdr.mcode = IPC_PROCEED;
> mb.mhdr.mlen = sizeof(t_ipc_mb_hdr);
>
> r = sendto (sockfd, &mb, mb.mhdr.mlen, NOFLAGS,
> &peeraddr, sizeof (peeraddr));
> if (r == -1)
> {
> syslog (LOG_INFO, "F:get busy:sendto failed:cause %s target: %s",
> strerror(errno), daemon_id);
> exit (-1);
> }
> }
>
> int daemon_init(char *p_daemon_fname)
> /******************************************************************************
> ******************************************************************************/
> {
> char daemon_pathname [128];
> pid_t pid;
>
> if ( (pid = fork()) < 0)
> return(-1);
> else if (pid != 0)
> return (0); /* the parent process returns from this function here */
>
> // the child process continues here
>
> setsid(); /* become session leader */
> chdir("/"); /* change working directory */
> umask(0); /* clear our file mode creation mask */
>
> if ((strlen (p_daemon_fname) + strlen (DAEMON_PATH)+ 1) > sizeof (daemon_pathname))
> {
> syslog (LOG_INFO, "daemon pathname too long");
> exit (-1);
> }
>
> // exec the daemon in the child process
>
> execl (
> strcat (strcpy (daemon_pathname,DAEMON_PATH), p_daemon_fname),
> p_daemon_fname,
> (char *) 0
> );
>
> // should never reach this statement
>
> exit(0);
> }
>
> int daemon_comm_ready (void)
> /******************************************************************************
> ******************************************************************************/
> {
> ssize_t bw;
> u_long daemons_ready;
>
> daemons_ready = 0;
>
> for (;;)
> {
> // blocking read; wait for a daemon to report for duty; if this becomes
> // a block-forever condition, then one must resort to killing process
> // use "ps -axj" as superuser to find the processes to be killed
>
> bw = recvfrom (sockfd, &mb, sizeof (mb), NOFLAGS,
> &peeraddr, &sockaddrlen);
> if (bw == -1)
> {
> syslog (LOG_INFO, "F:daemon_comm_ready:recvfrom failed");
> exit (-1);
> }
>
> // show who's ready for duty; add a string termination
>
> //mb.mdata[mb.mhdr.mlen - sizeof(t_ipc_mb_hdr)] = '\0';
> syslog (LOG_INFO, "I:mb contents:s_id %d daemon on duty: %s",
> mb.mhdr.s_id,
> &mb.mdata);
>
> daemons_ready = daemons_ready | mb.mhdr.s_id;
> if (daemons_ready == ALL_DAEMONS_READY)
> {
> syslog (LOG_INFO, "I:daemon_comm_ready:all daemons ready");
> break;
> }
> } // end of for loop
>
> // tell the daemons that IPC may proceed
>
> get_busy (MTP3_PORT);
> get_busy (TALI_PORT);
> // get_busy (SCTP_IPC_PORT);
> get_busy (OAM_PORT);
> get_busy (MR_PORT);
> get_busy (PS_PORT);
> }
>
> int configure_dl()
> /******************************************************************************
> ******************************************************************************/
> {
> //dlConf = new c_confReader("dl");
> //delete dlConf
> }
>
> int main (int argc, char **argv)
> /******************************************************************************
> ******************************************************************************/
> {
> int d;
> int r;
>
> openlog ("daemon_init" ,LOG_PID, LOG_USER);
> syslog (LOG_INFO ,"Daemon launcher starting");
>
> // read daemon launcher conf file
>
> configure_dl();
>
> sockfd = socket(AF_INET, SOCK_DGRAM, 0);
> if (sockfd == -1)
> {
> syslog (LOG_INFO, "socket failed");
> exit (-1);
> }
>
> // create an Internet Protocol address
>
> bzero(&myaddr, sizeof(myaddr));
> myaddr.sin_family = AF_INET;
> myaddr.sin_port = htons(DLAUNCH_PORT);
> r = inet_pton(AF_INET, IPC_ADDR_STR, &myaddr.sin_addr.s_addr);
> if (r == -1)
> {
> syslog (LOG_INFO, "I:daemon_launcher:main:inet_pton failed:%s",
> strerror(errno));
> exit (-1);
> }
>
> r = bind (sockfd, (const struct sockaddr *) &myaddr, sizeof(myaddr));
> if (r == -1)
> {
> syslog (LOG_INFO, "bind failed");
> exit (-1);
> }
>
> for (d = 0; d < MAX_DAEMONS; d++)
> {
> if (daemon_init (daemon_names [0][d]) == -1)
> {
> syslog (LOG_INFO, "fork failed; daemon ID: %s\n", daemon_names[d]);
> return (-1);
> }
> }
>
> if (daemon_comm_ready () == -1)
> {
> }
> return (0);
> }
From dev@trilug.org Fri May 24 02:56:38 2002
From: dev@trilug.org (Paul D. Boyle)
Date: Thu, 23 May 2002 21:56:38 -0400 (EDT)
Subject: [Dev] HOWTO write a daemon
In-Reply-To: <1022202387.2055.6.camel@kara.georgetown.edu> from "David A. Cafaro" at May 23, 2002 09:06:26 PM
Message-ID: <200205240156.g4O1ucP31961@laue.chem.ncsu.edu>
>
> Just curious but what is wrong with just writing a program that doesn't
> put out any text to the console and starting it with a script with a
> command like this:
>
> mydaemon&
>
> Besides the fact that it's a little less elegant?
What distinguishes a daemon from a "regular" process (either foreground
or background) is that the process becomes (according to Stevens) a
session leader of a new session, it becomes a process group leader of
a new process group, and it has no controlling terminal. In addition,
very often daemon change their current working directory to a specific
directory (often, but not always, "/"), so that filesystems can be
unmounted while the daemon is running (did you ever try to unmount a
file system and got a 'device busy' message?).
Under Unix (Linux) all processes automatically open three I/O streams,
stdin, stdout, stderr, these are often closed in a daemon process.
Paul
--
Paul D. Boyle | boyle@laue.chem.ncsu.edu
Director, X-ray Structural Facility | phone: (919) 515-7362
Department of Chemistry - Box 8204 | FAX: (919) 515-5079
North Carolina State University |
Raleigh, NC, 27695-8204
http://laue.chem.ncsu.edu/web/xray.welcome.html
From dev@trilug.org Fri May 24 04:46:14 2002
From: dev@trilug.org (M. Mueller)
Date: Thu, 23 May 2002 23:46:14 -0400
Subject: [Dev] HOWTO write a daemon
In-Reply-To: <200205240156.g4O1ucP31961@laue.chem.ncsu.edu>
References: <200205240156.g4O1ucP31961@laue.chem.ncsu.edu>
Message-ID:
--------------Boundary-00=_2TJLW1WXNDY57GVJYCNH
Content-Type: text/plain;
charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
On Thursday 23 May 2002 09:56 pm, Paul D. Boyle reputedly wrote:
> Under Unix (Linux) all processes automatically open three I/O streams,
> stdin, stdout, stderr, these are often closed in a daemon process.
So, you need alternatives to these services.
I make great use of the syslogger daemon. I had to become aware of the
klogger, or kernel logger daemon because it would generate useful information
for me. This led to needing an awareness of the logrotate function which led
to needing an awareness of cron from a system point of view. I "tail -f" the
/var/log/messages file for long periods of time and found that logrotate
changes the file handles so that the "tail -f" goes dead so to speak. I've
hacked a script that lets me quickly manage the tail function (script
attached). I eventually learned how to manage the /etc/syslog.conf and syslog
calls to define new log files associated with new facilities.
Another capability that I think Brent Verner brought to my attention, and
that I have not investigated yet, is the FIFO abilities of the Linux
syslogger. More at "man syslogd".
My daemons use AF_INET sockets for interprocess communication. I tried
several flavors of IPC (SystemV, AF_UNIX sockets). And there are more IPC
methods I did not try. I've seen code that used disk files for IPC. The
Stevens book, "UNIX Network Programming, Volume 2, Second Edition:
Interprocess Communications, Prentice Hall, 1999" was my primary resource. I
use Python to write shell to daemon "communicators".
My intent here is to dump a bunch of ideas to the list that you can pick
through. If there is further interest, I can provide code detail and system
configuration detail as requested.
--
Mike Mueller
www.ss7box.com
--------------Boundary-00=_2TJLW1WXNDY57GVJYCNH
Content-Type: application/x-shellscript;
name="Tail"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Tail"
IyEvYmluL3NoCgpwcyAtQyB0YWlsIHwgZWdyZXAgInRhaWwifCBjdXQgLWMgMS01ID4gdGVtcAoK
Y2F0IHRlbXAKCndoaWxlIHJlYWQgcGlkOyBkbwoJZWNobyBraWxsICRwaWQKCWtpbGwgJHBpZApk
b25lIDwgdGVtcApybSAtZiB0ZW1wCgppZiBbICQxID0gIm9mZiIgXTsgdGhlbiBleGl0CmZpCgp0
YWlsIC1mIC92YXIvbG9nL21lc3NhZ2VzICYKI3BzIC1heGoK
--------------Boundary-00=_2TJLW1WXNDY57GVJYCNH--
From dev@trilug.org Fri May 24 13:14:09 2002
From: dev@trilug.org (Andrew C. Oliver)
Date: Fri, 24 May 2002 08:14:09 -0400
Subject: [Dev] HOWTO write a daemon
References: <37828.129.33.49.251.1022193609.squirrel@albert.petelong.com> <1022202387.2055.6.camel@kara.georgetown.edu>
Message-ID: <3CEE2E91.2000704@apache.org>
just make sure you start it as some other user than root.
David A. Cafaro wrote:
>Just curious but what is wrong with just writing a program that doesn't
>put out any text to the console and starting it with a script with a
>command like this:
>
>mydaemon&
>
>Besides the fact that it's a little less elegant?
>
>It's been a long long time since I did C/C++ coding and righting
>daemons. I'm planning on writing up a little tcp/ip daemon for my
>Zaurus. Thanks for any input.
>
>-David
>
>On Thu, 2002-05-23 at 19:13, M. Mueller wrote:
>
>
>>On Thursday 23 May 2002 06:40 pm, Peter Long reputedly wrote:
>>
>>
>>
>>>Hi all,
>>>
>>>I have a console application that I want to turn into a daemon. Does anyone
>>>know where I can find documentation on how to do that.
>>>
>>>Thanks in advance.
>>>
>>>
>>Here's my daemon launcher. It is more than a basic daemon launcher because I
>>have N daemons that all talk to each other. Furthermore, I don't want any
>>daemons to start doing business until all the other daemons are ready.
>>
>>--
>>Mike Mueller
>>www.ss7box.com
>>----
>>
>>
>>
>
>
>
>>#include
>>#include
>>#include
>>#include
>>#include
>>#include
>>#include
>>#include "ipc_mq.h"
>>
>>#define MAX_DAEMONS 5
>>#define DAEMON_PATH "usr/local/ss7t/bin/"
>>
>>char *env_init[] = {"USER=mtp3d", "PATH=/tmp", NULL};
>>char *daemon_names[][MAX_DAEMONS] = {
>> "mtp3_d",
>> "tali_d",
>>// "sctp_d",
>> "oam_d",
>> "mr_d",
>> "ps_d"
>> };
>>
>>int sockfd;
>>struct sockaddr_in myaddr, peeraddr;
>>t_ipc_mqbuf mb;
>>socklen_t sockaddrlen;
>>
>>void get_busy (unsigned int daemon_id)
>>/******************************************************************************
>>******************************************************************************/
>>{
>>int r;
>>
>> bzero(&peeraddr, sizeof(peeraddr));
>> peeraddr.sin_family = AF_INET;
>> peeraddr.sin_port = htons(daemon_id);
>> r = inet_pton(AF_INET, IPC_ADDR_STR, &peeraddr.sin_addr.s_addr);
>> if (r == -1)
>> {
>> syslog (LOG_INFO, "F:daemon_launcher:get_busy:inet_pton failed:%s",
>> strerror(errno));
>> exit (-1);
>> }
>>
>> bzero (&mb, sizeof(mb));
>> mb.mhdr.s_id = DLAUNCH_ID; // this is the letter sender
>> mb.mhdr.mcode = IPC_PROCEED;
>> mb.mhdr.mlen = sizeof(t_ipc_mb_hdr);
>>
>> r = sendto (sockfd, &mb, mb.mhdr.mlen, NOFLAGS,
>> &peeraddr, sizeof (peeraddr));
>> if (r == -1)
>> {
>> syslog (LOG_INFO, "F:get busy:sendto failed:cause %s target: %s",
>> strerror(errno), daemon_id);
>> exit (-1);
>> }
>>}
>>
>>int daemon_init(char *p_daemon_fname)
>>/******************************************************************************
>>******************************************************************************/
>>{
>>char daemon_pathname [128];
>> pid_t pid;
>>
>> if ( (pid = fork()) < 0)
>> return(-1);
>> else if (pid != 0)
>> return (0); /* the parent process returns from this function here */
>>
>>// the child process continues here
>>
>> setsid(); /* become session leader */
>> chdir("/"); /* change working directory */
>> umask(0); /* clear our file mode creation mask */
>>
>> if ((strlen (p_daemon_fname) + strlen (DAEMON_PATH)+ 1) > sizeof (daemon_pathname))
>> {
>> syslog (LOG_INFO, "daemon pathname too long");
>> exit (-1);
>> }
>>
>>// exec the daemon in the child process
>>
>> execl (
>> strcat (strcpy (daemon_pathname,DAEMON_PATH), p_daemon_fname),
>> p_daemon_fname,
>> (char *) 0
>> );
>>
>>// should never reach this statement
>>
>> exit(0);
>>}
>>
>>int daemon_comm_ready (void)
>>/******************************************************************************
>>******************************************************************************/
>>{
>>ssize_t bw;
>>u_long daemons_ready;
>>
>> daemons_ready = 0;
>>
>> for (;;)
>> {
>>// blocking read; wait for a daemon to report for duty; if this becomes
>>// a block-forever condition, then one must resort to killing process
>>// use "ps -axj" as superuser to find the processes to be killed
>>
>> bw = recvfrom (sockfd, &mb, sizeof (mb), NOFLAGS,
>> &peeraddr, &sockaddrlen);
>> if (bw == -1)
>> {
>> syslog (LOG_INFO, "F:daemon_comm_ready:recvfrom failed");
>> exit (-1);
>> }
>>
>>// show who's ready for duty; add a string termination
>>
>> //mb.mdata[mb.mhdr.mlen - sizeof(t_ipc_mb_hdr)] = '\0';
>> syslog (LOG_INFO, "I:mb contents:s_id %d daemon on duty: %s",
>> mb.mhdr.s_id,
>> &mb.mdata);
>>
>> daemons_ready = daemons_ready | mb.mhdr.s_id;
>> if (daemons_ready == ALL_DAEMONS_READY)
>> {
>> syslog (LOG_INFO, "I:daemon_comm_ready:all daemons ready");
>> break;
>> }
>> } // end of for loop
>>
>>// tell the daemons that IPC may proceed
>>
>> get_busy (MTP3_PORT);
>> get_busy (TALI_PORT);
>>// get_busy (SCTP_IPC_PORT);
>> get_busy (OAM_PORT);
>> get_busy (MR_PORT);
>> get_busy (PS_PORT);
>>}
>>
>>int configure_dl()
>>/******************************************************************************
>>******************************************************************************/
>>{
>> //dlConf = new c_confReader("dl");
>> //delete dlConf
>>}
>>
>>int main (int argc, char **argv)
>>/******************************************************************************
>>******************************************************************************/
>>{
>>int d;
>>int r;
>>
>> openlog ("daemon_init" ,LOG_PID, LOG_USER);
>> syslog (LOG_INFO ,"Daemon launcher starting");
>>
>>// read daemon launcher conf file
>>
>> configure_dl();
>>
>> sockfd = socket(AF_INET, SOCK_DGRAM, 0);
>> if (sockfd == -1)
>> {
>> syslog (LOG_INFO, "socket failed");
>> exit (-1);
>> }
>>
>>// create an Internet Protocol address
>>
>> bzero(&myaddr, sizeof(myaddr));
>> myaddr.sin_family = AF_INET;
>> myaddr.sin_port = htons(DLAUNCH_PORT);
>> r = inet_pton(AF_INET, IPC_ADDR_STR, &myaddr.sin_addr.s_addr);
>> if (r == -1)
>> {
>> syslog (LOG_INFO, "I:daemon_launcher:main:inet_pton failed:%s",
>> strerror(errno));
>> exit (-1);
>> }
>>
>> r = bind (sockfd, (const struct sockaddr *) &myaddr, sizeof(myaddr));
>> if (r == -1)
>> {
>> syslog (LOG_INFO, "bind failed");
>> exit (-1);
>> }
>>
>> for (d = 0; d < MAX_DAEMONS; d++)
>> {
>> if (daemon_init (daemon_names [0][d]) == -1)
>> {
>> syslog (LOG_INFO, "fork failed; daemon ID: %s\n", daemon_names[d]);
>> return (-1);
>> }
>> }
>>
>> if (daemon_comm_ready () == -1)
>> {
>> }
>> return (0);
>>}
>>
>>
>
>
>
>_______________________________________________
>Dev mailing list
>Dev@trilug.org
>http://www.trilug.org/mailman/listinfo/dev
>
>
>
From dev@trilug.org Fri May 24 13:43:06 2002
From: dev@trilug.org (John F Davis)
Date: Fri, 24 May 2002 08:43:06 -0400
Subject: [Dev] HOWTO write a daemon
Message-ID:
Hello Mike,
That was a good read. I like the bit about 'and this unknown led to this
unknown etc'. You tracked down each unknown in turn and learned a lot. I
can identify with that.
If the original poster wants to talk about what they plan to do in more
detail, I'm sure we can all help.
Thanks
JD
"M. Mueller" @trilug.org on 05/23/2002 11:46:14 PM
Please respond to dev@trilug.org
Sent by: dev-admin@trilug.org
To: dev@trilug.org
cc:
Subject: Re: [Dev] HOWTO write a daemon
On Thursday 23 May 2002 09:56 pm, Paul D. Boyle reputedly wrote:
> Under Unix (Linux) all processes automatically open three I/O streams,
> stdin, stdout, stderr, these are often closed in a daemon process.
So, you need alternatives to these services.
I make great use of the syslogger daemon. I had to become aware of the
klogger, or kernel logger daemon because it would generate useful
information
for me. This led to needing an awareness of the logrotate function which
led
to needing an awareness of cron from a system point of view. I "tail -f"
the
/var/log/messages file for long periods of time and found that logrotate
changes the file handles so that the "tail -f" goes dead so to speak. I've
hacked a script that lets me quickly manage the tail function (script
attached). I eventually learned how to manage the /etc/syslog.conf and
syslog
calls to define new log files associated with new facilities.
Another capability that I think Brent Verner brought to my attention, and
that I have not investigated yet, is the FIFO abilities of the Linux
syslogger. More at "man syslogd".
My daemons use AF_INET sockets for interprocess communication. I tried
several flavors of IPC (SystemV, AF_UNIX sockets). And there are more IPC
methods I did not try. I've seen code that used disk files for IPC. The
Stevens book, "UNIX Network Programming, Volume 2, Second Edition:
Interprocess Communications, Prentice Hall, 1999" was my primary resource.
I
use Python to write shell to daemon "communicators".
My intent here is to dump a bunch of ideas to the list that you can pick
through. If there is further interest, I can provide code detail and
system
configuration detail as requested.
--
Mike Mueller
www.ss7box.com
From dev@trilug.org Fri May 24 14:24:13 2002
From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=)
Date: Fri, 24 May 2002 09:24:13 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_HOWTO_write_a_daemon?=
In-Reply-To:
References:
Message-ID: <2397.192.168.0.2.1022246653.squirrel@albert.petelong.com>
> Hello Mike,
>
> That was a good read. I like the bit about 'and this unknown led to
> this unknown etc'. You tracked down each unknown in turn and learned a
> lot. I can identify with that.
>
> If the original poster wants to talk about what they plan to do in more
> detail, I'm sure we can all help.
Well thanks for the offer to help. I planned to turn my application in to a
daemon all along so I wrote it to have no interface. It does not rely on
the existence of stdin/stdout/stderr and I log everything using calls to
syslog(). So what I needed to know what how to detach the io streams and
whatever else was necessary for a process to be considered a daemon.
BTW: I was under the impression that just typing 'mydaemon&' would not work.
I thought that the process would be terminated when I logged off in any
case. Is there some way around that or am I just completely mistaken?
Thanks again for all the help.
--
Peter Long
From dev@trilug.org Fri May 24 14:29:41 2002
From: dev@trilug.org (John F Davis)
Date: Fri, 24 May 2002 09:29:41 -0400
Subject: [Dev] Re: [Dev] HOWTO write a daemon
Message-ID:
Hello
Well, I haven't really written a demon per se.
I did write some code which was called during initiailization and forked
off a child. The child ran an existing non-interactive app which in turn
would use syslog to record messages. My code was only four lines long. Oh
yeah, I also piped the output to /dev/null. (Not all of its output was
sent to the logfiles.)
You are correct about the backgrounding of a app. It will indeed die when
you log off. For what its worth, you can use cron or one its ilk to
schedule the job.
It sounds to me that you are most of the way to your goal. ie.
o Your code uses syslog.
o It doesn't use stdin/stdout/stderr
All you need is the code to run unintended. You just need to tie it in
with the rc.d scripts. The scripts will handle the start, stop and status
bit for you. You can even hook in with inittab if you want to make sure it
stays running. It is inittab which restarts daemons automatically when
there are killed, right?
JD
"Peter Long" @trilug.org on 05/24/2002 09:24:13 AM
Please respond to dev@trilug.org
Sent by: dev-admin@trilug.org
To: dev@trilug.org
cc:
Subject: [Dev] Re: [Dev] HOWTO write a daemon
> Hello Mike,
>
> That was a good read. I like the bit about 'and this unknown led to
> this unknown etc'. You tracked down each unknown in turn and learned a
> lot. I can identify with that.
>
> If the original poster wants to talk about what they plan to do in more
> detail, I'm sure we can all help.
Well thanks for the offer to help. I planned to turn my application in to a
daemon all along so I wrote it to have no interface. It does not rely on
the existence of stdin/stdout/stderr and I log everything using calls to
syslog(). So what I needed to know what how to detach the io streams and
whatever else was necessary for a process to be considered a daemon.
BTW: I was under the impression that just typing 'mydaemon&' would not
work.
I thought that the process would be terminated when I logged off in any
case. Is there some way around that or am I just completely mistaken?
Thanks again for all the help.
--
Peter Long
_______________________________________________
Dev mailing list
Dev@trilug.org
http://www.trilug.org/mailman/listinfo/dev
From dev@trilug.org Fri May 24 14:35:24 2002
From: dev@trilug.org (Jeremy P)
Date: Fri, 24 May 2002 09:35:24 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_HOWTO_write_a_daemon?=
In-Reply-To: <2397.192.168.0.2.1022246653.squirrel@albert.petelong.com>
Message-ID:
On Fri, 24 May 2002, [iso-8859-1] Peter Long wrote:
> BTW: I was under the impression that just typing 'mydaemon&' would not work.
> I thought that the process would be terminated when I logged off in any
> case. Is there some way around that or am I just completely mistaken?
It won't die if you trap the appropriate signals (like SIGHUP, signal
1). SIGHUP is normally used to signal child processes that the user
logged off; for daemons it's trapped and is often used to reread the
configuartion file.
Even if you're not writing a program, you can block SIGHUP with the
"nohup" utility... read the man page for nohup (or "pinfo nohup" for the
better documentation). I think nohup also "nice's" the background
process, which you may or may not want.
--Jeremy
From dev@trilug.org Fri May 24 17:49:06 2002
From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=)
Date: Fri, 24 May 2002 12:49:06 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_Re:_[Dev]_HOWTO_write_a_daemon?=
In-Reply-To:
References:
Message-ID: <45557.129.33.49.208.1022258946.squirrel@albert.petelong.com>
> On Fri, 24 May 2002, [iso-8859-1] Peter Long wrote:
>
>> BTW: I was under the impression that just typing 'mydaemon&' would not
>> work. I thought that the process would be terminated when I logged off
>> in any case. Is there some way around that or am I just completely
>> mistaken?
>
> It won't die if you trap the appropriate signals (like SIGHUP, signal
> 1). SIGHUP is normally used to signal child processes that the user
> logged off; for daemons it's trapped and is often used to reread the
> configuartion file.
>
> Even if you're not writing a program, you can block SIGHUP with the
> "nohup" utility... read the man page for nohup (or "pinfo nohup" for
> the better documentation). I think nohup also "nice's" the background
> process, which you may or may not want.
>
> --Jeremy
I assume trapping SIGHUP will work on any form on unix machine. The
application that I am writing has to work on Win2K, AIX and Linux. Making a
win2k service I can do. Hopefully daemons are implemented the same on both
AIX and Linux. :)
--
Peter Long
mailto:petelong@petelong.com
From dev@trilug.org Fri May 24 17:48:10 2002
From: dev@trilug.org (Jeremy P)
Date: Fri, 24 May 2002 12:48:10 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_Re:_[Dev]_HOWTO_write_a_daemon?=
In-Reply-To: <45557.129.33.49.208.1022258946.squirrel@albert.petelong.com>
Message-ID:
On Fri, 24 May 2002, [iso-8859-1] Peter Long wrote:
> I assume trapping SIGHUP will work on any form on unix machine. The
> application that I am writing has to work on Win2K, AIX and Linux.
> Making a win2k service I can do. Hopefully daemons are implemented the
> same on both AIX and Linux. :)
AFAIK, that will work on any Unix-like machine. I don't have personal
experience with AIX, but it certainly works that way on Solaris as well as
Linux. Try it out, see what happens! :-)
--Jeremy
From dev@trilug.org Wed May 29 04:00:24 2002
From: dev@trilug.org (Michael Mueller)
Date: Tue, 28 May 2002 23:00:24 -0400
Subject: [Dev] byte swapper
Message-ID:
Is there a byte swapper for big-to-little, and vice-versa, endian interchange
lurking about, or shall I be forced to write yet another?
TIA,
--
Mike Mueller
www.ss7box.com
From dev@trilug.org Wed May 29 04:22:17 2002
From: dev@trilug.org (Brent Verner)
Date: Tue, 28 May 2002 23:22:17 -0400
Subject: [Dev] byte swapper
In-Reply-To:
References:
Message-ID: <20020529032217.GA69378@rcfile.org>
[2002-05-28 23:00] Michael Mueller said:
| Is there a byte swapper for big-to-little, and vice-versa, endian interchange
| lurking about, or shall I be forced to write yet another?
on (recent?) glibc systems, try
#include
uint32_t flipped = __bswap_32(uint32_t_input)
uint16_t flipped = __bswap_16(uint16_t_input)
not sure if *bsd have an analogous function, but if portability is
paramount, you might have to roll your own.
hth.
b
--
"Develop your talent, man, and leave the world something. Records are
really gifts from people. To think that an artist would love you enough
to share his music with anyone is a beautiful thing." -- Duane Allman
From dev@trilug.org Wed May 29 04:29:31 2002
From: dev@trilug.org (Ed Hill)
Date: 28 May 2002 21:29:31 -0600
Subject: [Dev] byte swapper
In-Reply-To:
References:
Message-ID: <1022642971.1202.2.camel@eddy>
On Tue, 2002-05-28 at 21:00, Michael Mueller wrote:
> Is there a byte swapper for big-to-little, and vice-versa, endian interchange
> lurking about, or shall I be forced to write yet another?
Hi Mike,
I've used these.
hth,
Ed
#ifdef LITTLE_ENDIAN
/* Little-endian architectures need byte-swapping. */
#define sws(x) (((x >> 8) & 0x00ff) | ((x << 8) & 0xff00))
#define swl(x) (sws(x >> 16) | (sws(x) << 16))
#define swap_short(x) (x = sws(x))
#define swap_long(x) (x = swl(x))
#else
/* Big-endian architectures don't need byte-swapping. */
#define sws(x) (x)
#define swl(x) (x)
#define swap_short(x) (x = sws(x))
#define swap_long(x) (x = swl(x))
#endif
--
Edward H. Hill III, PhD | Email: ed@eh3.com, ehill@mines.edu
Post-Doctoral Researcher | URLs: http://www.eh3.com
Division of ESE | http://wasser.mines.edu/people/edhill.php
Colorado School of Mines | Phone: 303-273-3483
Golden, CO 80401 | Fax: 303-273-3311
Key fingerprint = 5BDE 4DA1 66BE 4F7B BC17 3A0C 932B 7266 1E76 F123
From dev@trilug.org Wed May 29 05:19:52 2002
From: dev@trilug.org (Michael Mueller)
Date: Wed, 29 May 2002 00:19:52 -0400
Subject: [Dev] byte swapper
In-Reply-To: <20020529032217.GA69378@rcfile.org>
References: <20020529032217.GA69378@rcfile.org>
Message-ID:
Thanks, Brent and Ed. That helped for sure.
--
Mike Mueller
www.ss7box.com
From dev@trilug.org Wed May 29 19:10:22 2002
From: dev@trilug.org (John Beimler)
Date: Wed, 29 May 2002 14:10:22 -0400
Subject: [Dev] byte swapper
In-Reply-To:
References:
Message-ID: <20020529181022.GB12812@radiomind.com>
commence quotation from Michael Mueller [on 020528 23:05]:
> Is there a byte swapper for big-to-little, and vice-versa, endian interchange
> lurking about, or shall I be forced to write yet another?
> TIA,
> --
how about dd? Check out the swab keyword.
Peace
john
From dev@trilug.org Wed May 29 19:12:57 2002
From: dev@trilug.org (John F Davis)
Date: Wed, 29 May 2002 14:12:57 -0400
Subject: [Dev] Re: simple daemon dies
Message-ID:
Hello
I thought this would be interesting to those who followed the "Re: [Dev]
HOWTO write a daemon" thread.
JD
---------------------- Forwarded by John F Davis/Raleigh/IBM on 05/29/2002
02:10 PM ---------------------------
Glynn Clements @vger.kernel.org on 05/29/2002
05:29:36 AM
Sent by: linux-c-programming-owner@vger.kernel.org
To: Sindunata
cc: linux-c-programming@vger.kernel.org
Subject: Re: simple daemon dies
Sindunata wrote:
> I'm trying to write a simple daemon background process.
> It connects to PostgreSQL and wait for a notify event and upon receiving
> some event will invoke some URL using curl library.
>
> I got it working already if I run it in foreground. But if I put the
> process in background (using &), and then after sometime the process
> will die.
In which case, the shell will tell you why it died.
Exited normally with zero status:
[1]+ Done prog
Exited normally with non-zero status:
[1]+ Exit 1 prog
Terminated due to SIGTERM:
[1]+ Terminated prog
Terminated due to SIGIOT (aka SIGABRT):
[1]+ Aborted (core dumped) prog
Terminated due to SIGKILL:
[1]+ Killed prog
... and so on.
> I think there's some signal that I need to catch, can
> someone please help me?
You don't necessarily *need* to catch any signals. Most of the signals
which terminate a process (e.g. SIGHUP, SIGTERM, SIGINT) are *meant*
to terminate the process. When a program catches one of these signals,
it's normally so that it can "clean up" before it terminates, not to
prevent termination altogether.
> Currently i'm trapping the following signals:
> sigaction (SIGTERM, &act, NULL);
> sigaction (SIGINT, &act, NULL);
These are meant to kill the process; there's no reason to catch them.
> /* ignore SIGHUP & SIGTTOU */
> act.sa_handler = SIG_IGN;
> sigaction(SIGHUP, &act, NULL);
Same here.
> sigaction(SIGTTOU, &act, NULL);
This will only stop the process, not terminate it.
If you're trying to write a daemon (as opposed to simply running in
the background), the process should be entirely disassociating itself
from the terminal and from the process group, so it shouldn't be
affected by terminal-related signals.
--
Glynn Clements
-
To unsubscribe from this list: send the line "unsubscribe
linux-c-programming" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
From dev@trilug.org Wed May 29 19:18:47 2002
From: dev@trilug.org (Andrew C. Oliver)
Date: Wed, 29 May 2002 14:18:47 -0400
Subject: [Dev] GCC Front end anyone?
References: <20020529181022.GB12812@radiomind.com>
Message-ID: <3CF51B87.5020904@apache.org>
Hi,
Has anyone done any work on the internals of GCC. Specifically language
front-ends? I'm working on creaing a GCC front end for
http://www.digitalmars/d. The front end code for the compiler has been
released GPL/Artisitic, its just a matter of porting it to GCC.
I've yet to find a working example of the "toy" language referred to in
the GCC docs, that works with any defined version of GCC. (So far I
grab the version of Toy that says its for 3.0 and it turns out not to
work! Frustrating!).
Anyone with front end experience that might be able to give me a few
pointers (pun intended)?
-Andy
From dev@trilug.org Wed May 29 19:21:30 2002
From: dev@trilug.org (John F Davis)
Date: Wed, 29 May 2002 14:21:30 -0400
Subject: [Dev] GCC Front end anyone?
Message-ID:
Geoff Berry of Bops. Considering that Bops is closing their shop, he'll
probably be looking for a job.
JD
"Andrew C. Oliver" @trilug.org on 05/29/2002 02:18:47
PM
Please respond to dev@trilug.org
Sent by: dev-admin@trilug.org
To: dev@trilug.org
cc:
Subject: [Dev] GCC Front end anyone?
Hi,
Has anyone done any work on the internals of GCC. Specifically language
front-ends? I'm working on creaing a GCC front end for
http://www.digitalmars/d. The front end code for the compiler has been
released GPL/Artisitic, its just a matter of porting it to GCC.
I've yet to find a working example of the "toy" language referred to in
the GCC docs, that works with any defined version of GCC. (So far I
grab the version of Toy that says its for 3.0 and it turns out not to
work! Frustrating!).
Anyone with front end experience that might be able to give me a few
pointers (pun intended)?
-Andy
_______________________________________________
Dev mailing list
Dev@trilug.org
http://www.trilug.org/mailman/listinfo/dev
From dev@trilug.org Wed May 29 19:31:17 2002
From: dev@trilug.org (Andrew C. Oliver)
Date: Wed, 29 May 2002 14:31:17 -0400
Subject: [Dev] GCC Front end anyone?
References:
Message-ID: <3CF51E75.7010204@apache.org>
John F Davis wrote:
>Geoff Berry of Bops. Considering that Bops is closing their shop, he'll
>probably be looking for a job.
>
>
Well I'll give him 90% of what I'm making off of it....oh wait... I'm
not making anything ;-)
I'm doing this to brush up on my C and have an alternative to Java
that's OO and doesn't suck.
(C++ in my view, Sucks)
-Andy
>
>JD
>
>"Andrew C. Oliver" @trilug.org on 05/29/2002 02:18:47
>PM
>
>Please respond to dev@trilug.org
>
>Sent by: dev-admin@trilug.org
>
>
>To: dev@trilug.org
>cc:
>Subject: [Dev] GCC Front end anyone?
>
>
>
>Hi,
>
>Has anyone done any work on the internals of GCC. Specifically language
>front-ends? I'm working on creaing a GCC front end for
>http://www.digitalmars/d. The front end code for the compiler has been
>released GPL/Artisitic, its just a matter of porting it to GCC.
>
>I've yet to find a working example of the "toy" language referred to in
>the GCC docs, that works with any defined version of GCC. (So far I
>grab the version of Toy that says its for 3.0 and it turns out not to
>work! Frustrating!).
>
>Anyone with front end experience that might be able to give me a few
>pointers (pun intended)?
>
>-Andy
>
>
>_______________________________________________
>Dev mailing list
>Dev@trilug.org
>http://www.trilug.org/mailman/listinfo/dev
>
>
>_______________________________________________
>Dev mailing list
>Dev@trilug.org
>http://www.trilug.org/mailman/listinfo/dev
>
>
>
From dev@trilug.org Wed May 29 19:37:52 2002
From: dev@trilug.org (Tanner Lovelace)
Date: 29 May 2002 14:37:52 -0400
Subject: [Dev] GCC Front end anyone?
In-Reply-To: <3CF51E75.7010204@apache.org>
References:
<3CF51E75.7010204@apache.org>
Message-ID: <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org>
On Wed, 2002-05-29 at 14:31, Andrew C. Oliver wrote:
>
> Well I'll give him 90% of what I'm making off of it....oh wait... I'm
> not making anything ;-)
> I'm doing this to brush up on my C and have an alternative to Java
> that's OO and doesn't suck.
> (C++ in my view, Sucks)
If you're looking for object oriented, don't look at C. Sure, you
can do OO in C, but it's an incredible kludge.
Why do you say C++ sucks? We just had this same discussion at
lunch here and came to the conclusion that pretty much every language
out there has its strengths and weaknesses and that instead of
focusing on a particular language you should look at what you
need to get done and use the best tool for the job. Sometimes
that's C++, sometimes it's C, or even Java, Perl, Python, Ruby,
etc... C++ no more sucks than Java does (and I personally think
it sucks a *lot* less). It's just what you know and are used to.
Tanner
--
Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4
GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
This would be a very good time to hang out with the Open Source
people, before they get formally reclassified as a national security
threat. -- Bruce Sterling
From dev@trilug.org Wed May 29 19:45:13 2002
From: dev@trilug.org (Andrew C. Oliver)
Date: Wed, 29 May 2002 14:45:13 -0400
Subject: [Dev] GCC Front end anyone?
References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org>
Message-ID: <3CF521B9.60802@apache.org>
Tanner Lovelace wrote:
>On Wed, 2002-05-29 at 14:31, Andrew C. Oliver wrote:
>
>
>
>>Well I'll give him 90% of what I'm making off of it....oh wait... I'm
>>not making anything ;-)
>>I'm doing this to brush up on my C and have an alternative to Java
>>that's OO and doesn't suck.
>>(C++ in my view, Sucks)
>>
>>
>
>If you're looking for object oriented, don't look at C. Sure, you
>can do OO in C, but it's an incredible kludge.
>
>Why do you say C++ sucks? We just had this same discussion at
>lunch here and came to the conclusion that pretty much every language
>out there has its strengths and weaknesses and that instead of
>focusing on a particular language you should look at what you
>need to get done and use the best tool for the job. Sometimes
>that's C++, sometimes it's C, or even Java, Perl, Python, Ruby,
>etc... C++ no more sucks than Java does (and I personally think
>it sucks a *lot* less). It's just what you know and are used to.
>
>Tanner
>
>
I used to be a C++ programmer. I'm not particularly interested in a
discussion about C++'s suckiness, its a very
old discussion and I'm sure you can find plenty of references.
Java has its strengths and weaknesses. One strength is its simplicity,
one weakness is its simplicity. One
horrible weakness is the Java environment. Take a look at D
(www.digitalmars.com/d) and see what you think.
U/F the current compiler only works on Windoze. I'm excited to work
with it.
Any knowledge of GCC internals? Particuarly the "Trees" and Frontends?
-Andy
From dev@trilug.org Wed May 29 20:12:22 2002
From: dev@trilug.org (Tanner Lovelace)
Date: 29 May 2002 15:12:22 -0400
Subject: [Dev] GCC Front end anyone?
In-Reply-To: <3CF521B9.60802@apache.org>
References:
<3CF51E75.7010204@apache.org>
<1022697474.9444.53.camel@linux-lovelace.internal.opennms.org>
<3CF521B9.60802@apache.org>
Message-ID: <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org>
On Wed, 2002-05-29 at 14:45, Andrew C. Oliver wrote:
> I used to be a C++ programmer. I'm not particularly interested in a
> discussion about C++'s suckiness, its a very
> old discussion and I'm sure you can find plenty of references.
>
> Java has its strengths and weaknesses. One strength is its simplicity,
> one weakness is its simplicity. One
> horrible weakness is the Java environment. Take a look at D
> (www.digitalmars.com/d) and see what you think.
> U/F the current compiler only works on Windoze. I'm excited to work
> with it.
I'll see if I can take a look at it sometime after work...
> Any knowledge of GCC internals? Particuarly the "Trees" and Frontends?
No, sorry, only in passing. I did teach a "Concepts of Programming"
languages class at UNC so I know about parse trees in general, but
as far as actually applying them to gcc I wouldn't have any clue.
(Hmmm... I guess my wife is good friends with Bruce Tiemann [they're
both life members of the International Jugglers Association], brother
of Micheal Tiemann who wrote a lot of GCC, but that's about as close
as I come to knowing GCC internals, and that isn't any.)
Good luck finding someone.
--
Tanner Lovelace | lovelace@wayfarer.org | http://wtl.wayfarer.org/
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
GPG Fingerprint = A66C 8660 924F 5F8C 71DA BDD0 CE09 4F8E DE76 39D4
GPG Key can be found at http://wtl.wayfarer.org/lovelace.gpg.asc
--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--*--
Si hoc legere scis, nimium eruditionis habes.
From dev@trilug.org Wed May 29 20:25:11 2002
From: dev@trilug.org (Ed Hill)
Date: 29 May 2002 13:25:11 -0600
Subject: [Dev] GCC Front end anyone?
In-Reply-To: <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org>
References:
<3CF51E75.7010204@apache.org>
<1022697474.9444.53.camel@linux-lovelace.internal.opennms.org>
<3CF521B9.60802@apache.org>
<1022699543.9444.88.camel@linux-lovelace.internal.opennms.org>
Message-ID: <1022700311.1292.173.camel@eddy>
On Wed, 2002-05-29 at 13:12, Tanner Lovelace wrote:
> On Wed, 2002-05-29 at 14:45, Andrew C. Oliver wrote:
> > Any knowledge of GCC internals? Particuarly the "Trees" and Frontends?
> Good luck finding someone.
Tom Tromey of autoconf fame lives out here in Boulder and is, I believe,
currently working on the gcj front-end. His email is: tromey@redhat.com
Ed
--
Edward H. Hill III, PhD | Email: ed@eh3.com, ehill@mines.edu
Post-Doctoral Researcher | URLs: http://www.eh3.com
Division of ESE | http://wasser.mines.edu/people/edhill.php
Colorado School of Mines | Phone: 303-273-3483
Golden, CO 80401 | Fax: 303-273-3311
Key fingerprint = 5BDE 4DA1 66BE 4F7B BC17 3A0C 932B 7266 1E76 F123
From dev@trilug.org Wed May 29 20:39:20 2002
From: dev@trilug.org (Andrew C. Oliver)
Date: Wed, 29 May 2002 15:39:20 -0400
Subject: [Dev] GCC Front end anyone?
References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org> <3CF521B9.60802@apache.org> <1022699543.9444.88.camel@linux-lovelace.internal.opennms.org> <1022700311.1292.173.camel@eddy>
Message-ID: <3CF52E68.60408@apache.org>
Ed Hill wrote:
>On Wed, 2002-05-29 at 13:12, Tanner Lovelace wrote:
>
>
>>On Wed, 2002-05-29 at 14:45, Andrew C. Oliver wrote:
>>
>>
>
>
>
>>>Any knowledge of GCC internals? Particuarly the "Trees" and Frontends?
>>>
>>>
>
>
>
>>Good luck finding someone.
>>
>>
>
>
>Tom Tromey of autoconf fame lives out here in Boulder and is, I believe,
>currently working on the gcj front-end. His email is: tromey@redhat.com
>
>
cool. Thanks man.
-Andy
>Ed
>
>
>
From dev@trilug.org Wed May 29 23:16:24 2002
From: dev@trilug.org (Dan Chen)
Date: Wed, 29 May 2002 18:16:24 -0400
Subject: [Dev] GCC Front end anyone?
In-Reply-To: <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org>
References: <3CF51E75.7010204@apache.org> <1022697474.9444.53.camel@linux-lovelace.internal.opennms.org>
Message-ID: <20020529221624.GA30457@opeth.ath.cx>
--fUYQa+Pmc3FrFX/N
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
On Wed, May 29, 2002 at 02:37:52PM -0400, Tanner Lovelace wrote:
[snip]
> lunch here and came to the conclusion that pretty much every language
> out there has its strengths and weaknesses and that instead of=20
> focusing on a particular language you should look at what you
> need to get done and use the best tool for the job. Sometimes
> that's C++, sometimes it's C, or even Java, Perl, Python, Ruby,
> etc... C++ no more sucks than Java does (and I personally think
> it sucks a *lot* less). It's just what you know and are used to.
Wow, this is highly reminiscent of Comp144! Thanks, Tanner! =3D)
--=20
Dan Chen crimsun@email.unc.edu
GPG key: www.unc.edu/~crimsun/pubkey.gpg.asc
--fUYQa+Pmc3FrFX/N
Content-Type: application/pgp-signature
Content-Disposition: inline
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)
iD8DBQE89VM3MwVVFhIHlU4RAro/AJ4o9v+xiGagGlLD/gymOwMBt3UWoQCdEhiD
mGTrpO9JB1bt72JVNQ3euvg=
=fDcJ
-----END PGP SIGNATURE-----
--fUYQa+Pmc3FrFX/N--
From dev@trilug.org Thu May 30 05:25:38 2002
From: dev@trilug.org (=?iso-8859-1?Q?Peter_Long?=)
Date: Thu, 30 May 2002 00:25:38 -0400 (EDT)
Subject: [Dev] =?iso-8859-1?Q?Re:_[Dev]_Re:_simple_daemon_dies?=
In-Reply-To:
References:
Message-ID: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com>
> Hello
>
> I thought this would be interesting to those who followed the "Re:
> [Dev] HOWTO write a daemon" thread.
>
Interesting reading. I got my little daemon working in about 1 hour thanks
to all the advice given here. The only signal I am handling is SIGQUIT. I
use it to set a flag that causes all the worker threads in my daemon to
exit. It works perfectly.
I was wondering if there is a template out there showing a reference
implementation of signal handlers? If seems dangerous to just let the
default handler handle all signals. Does that not mean SIGTERM would zap
your process without giving you a chance to free file handles, close
sockets of whatever?
--
Peter Long
mailto:petelong@petelong.com
From dev@trilug.org Thu May 30 14:09:48 2002
From: dev@trilug.org (Michael Mueller)
Date: Thu, 30 May 2002 09:09:48 -0400
Subject: [Dev] Re: [Dev] Re: simple daemon dies
In-Reply-To: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com>
References: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com>
Message-ID:
On Thursday 30 May 2002 00:25, Peter Long reputedly wrote:
The only signal I am handling is SIGQUIT. I
> use it to set a flag that causes all the worker threads in my daemon to
> exit. It works perfectly.
What happens when the the daemon is abruptly killed? Happy ending with a
clean restart?
>
> I was wondering if there is a template out there showing a reference
> implementation of signal handlers? If seems dangerous to just let the
> default handler handle all signals. Does that not mean SIGTERM would zap
> your process without giving you a chance to free file handles, close
> sockets of whatever?
My experience with the default handlers are positive. I have systems that
have been running for months that have endured repeated ungraceful endings to
my multi-daemon application. I have a script to kill all the remaining
daemons. I prefer to have a manual cleanup so I can analyse the "crime
scene".
There's one nagging problem I can use some help with. When I run in
foreground and get a segmentation fault, there is a nice message alerting me
to this event. When my daemons hit a seg. fault there's no indication in
/var/log/messages. Any hints on how to find clues that a daemon did a seg.
fault would be most appreciated.
--
Mike Mueller
www.ss7box.com
From dev@trilug.org Fri May 31 03:31:04 2002
From: dev@trilug.org (Peter Long)
Date: Thu, 30 May 2002 22:31:04 -0400
Subject: [Dev] Re: simple daemon dies
References: <2787.192.168.0.2.1022732738.squirrel@albert.petelong.com>
Message-ID: <000d01c2084b$367dd1e0$0200a8c0@amdaemon>
----- Original Message -----
From: "Michael Mueller"
To:
Sent: Thursday, May 30, 2002 9:09 AM
Subject: Re: [Dev] Re: [Dev] Re: simple daemon dies
> On Thursday 30 May 2002 00:25, Peter Long reputedly wrote:
> The only signal I am handling is SIGQUIT. I
> > use it to set a flag that causes all the worker threads in my daemon to
> > exit. It works perfectly.
>
> What happens when the the daemon is abruptly killed? Happy ending with a
> clean restart?
I am not 100% sure what you are asking? When you say "killed abruptly" do
you mean with SIGKILL(-9)?
In my case the default behaviour (to terminate the process) would abort any
open tcp connections. I would prefer to shut them down gracefully. It
restarts cleanly after being killed.
Looking at man 7 signal it says that the default behaviour for SIGQUIT (-3)
is to terminate and dump core. I do not do that, I just terminate. I guess I
should rather catch SIGTERM (-15) since it can be caught where as SIGKILL
cannot. Its default behaviour is to terminate the process.
> There's one nagging problem I can use some help with. When I run in
> foreground and get a segmentation fault, there is a nice message alerting
me
> to this event. When my daemons hit a seg. fault there's no indication in
> /var/log/messages. Any hints on how to find clues that a daemon did a
seg.
> fault would be most appreciated.
Again according to man 7 signal, SIGSEGV is signaled when a segmentation
fault occurs. I wonder if you could catch it and then try extract some
usefull information from the system. At the very least you could log the
fact that is occured.
--
Peter Long