---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII
Hi,
This is the second part of my MakeClass suite.
Please find attached some example files generated by the new version of my
MakeClass suite for the $ROOTSYS/tutorials/hsimple.root file.
First, if you are using emacs, please find attached an emacs.rc.add ( some
code to be placed in your private .emacs file ) which gives you
outline/folding editor settings to be used with both the MakeClass.cxx
itself, and with files generated by this macro ( try "EmacsMenu -> Hide ->
Hide Body" or C-c @ C-t and enjoy ).
Then, some notes on how to use the generated skeleton analysis :
1. You can use the ntuple.[hc]xx directly in root ( as a CINT macro ) :
root > .L ntuple.cxx
root > ntuple *n = new ntuple()
or, you can build the shared library ntuple.so ( an example Makefile
for Linux is also attached ), and then :
root > .L ntuple.so
root > ntuple *n = new ntuple()
The second method is preferred, as it gives much better performance.
2. You can "hardcode" your analysis into the ntuple::Loop() function, as
in the example file ntuple.cxx, but this makes the problem, that
whenever you need to make any small change in it, you need to "reload"
the whole analysis ( including creating a new shared library, if you
use this method ) :
root > .L ntuple.so // or ".L ntuple.cxx"
root > ntuple *n = new ntuple()
root > n->Loop()
3. You can leave the ntuple::Loop() function EMPTY ( you won't need it
later ) and create the ntuple.so ONCE. Then you can copy the ntuple.cxx
into the loop.cxx, and modify the ntuple::Loop() skeleton ( in loop.cxx
file ) to be an "Int_t loop(ntuple *)" function, and later you can :
root > .L ntuple.so
root > ntuple *n = new ntuple()
root > .L loop.cxx
root > loop(n)
or simply :
root > .L ntuple.so
root > ntuple *n = new ntuple()
root > .x loop.cxx(n)
Note, whenever you change anything in your analysis "loop" you only
need to reload the ".L loop.cxx", no changes to the shared library
ntuple.so are required ( you get the full compiled code speed in
accessing your ntuple mixed with CINT flexibility ).
An example loop.cxx is also attached.
4. Last, but not least, there is an automatically generated function :
Int_t ntuple::Loop(Int_t (*analysis)(ntuple *))
which loops over all entries and for every entry calls the given
"Int_t analysis(ntuple *)" function which is expected to analyse the
current ( single ) entry. And again, you can mix compiled ntuple.so
( created ONCE ) with interpreted "analysis" :
root > .L ntuple.so
root > ntuple *n = new ntuple()
root > .L analysis.cxx
root > n->Loop(analysis)
Note again, whenever you change anything in your "analysis", you only
need to reload the ".L analysis.cxx", no changes to the shared library
ntuple.so are required. An example analysis.cxx is also attached.
Warning : CINT shipped with root 2.21/08 has some problems with this
method, but the new CINT, starting with root 2.22/04, works well.
Have fun,
Jacek.
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="emacs.rc.add"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708D@uranos.cto.us.edu.pl>
Content-Description: emacs.rc.add
Ozs7Ow0KOzs7OyBtaW5vciBtb2RlOiBjb2x1bW4NCihhdXRvbG9hZCAnZGlz
cGxheS1jb2x1bW4tbW9kZSAiY29sdW1uIiBuaWwgdCkNCihkaXNwbGF5LWNv
bHVtbi1tb2RlIDEpDQo7Ozs7DQoobG9hZCAicGFyZW4iKSA7IGF1dG9tYXRp
YyBwYXJlbnRoZXNpcyBtYXRjaGluZyBsaWJyYXJ5DQo7Ozs7DQo7Ozs7IC4u
LiBsb2FkIHRoZSBjYy1tb2RlIG1vZGUgLi4uDQooYXV0b2xvYWQgJ2MrKy1t
b2RlICAiY2MtbW9kZSIgIkMrKyBFZGl0aW5nIE1vZGUiIHQpDQooYXV0b2xv
YWQgJ2MtbW9kZSAgICAiY2MtbW9kZSIgIkMgRWRpdGluZyBNb2RlIiB0KQ0K
KGF1dG9sb2FkICdvYmpjLW1vZGUgImNjLW1vZGUiICJPYmplY3RpdmUtQyBF
ZGl0aW5nIE1vZGUiIHQpDQo7Ozs7IC4uLiB0byBiZSB1c2VkIHdpdGggYysr
LCBjIGFuZCBvYmplY3RpdmUtYyBmaWxlcw0KKHNldHEgYXV0by1tb2RlLWFs
aXN0DQogICAgICAoYXBwZW5kDQogICAgICAgJygoIlxcLkMkIiAgLiBjKyst
bW9kZSkNCgkgKCJcXC5IJCIgIC4gYysrLW1vZGUpDQoJICgiXFwuY2MkIiAu
IGMrKy1tb2RlKQ0KCSAoIlxcLmhoJCIgLiBjKystbW9kZSkNCgkgKCJcXC5j
JCIgIC4gYy1tb2RlKQ0KCSAoIlxcLmgkIiAgLiBjLW1vZGUpDQoJICgiXFwu
bSQiICAuIG9iamMtbW9kZSkNCgkgKSBhdXRvLW1vZGUtYWxpc3QpKQ0KOzs7
Ow0KOzs7OyBNeSBDIGFuZCBDKysgb3V0bGluZS1taW5vci1tb2RlIHNldHRp
bmdzICggSmFjZWsgTS4gSG9sZWN6ZWsgMTk5OSApLg0KOzs7Ow0KOzs7OyBP
dXRsaW5lIG1vZGUgaGVhZGluZ3MgYXJlIGxpbmVzIG9mIEMgYW5kIEMrKyBz
b3VyY2UgY29kZSB3aGljaCBjb250YWluLA0KOzs7OyBhdCBhbnkgcG9zaXRp
b24sIEMgb3IgQysrIGNvbW1lbnRhcnkgaGVhZGluZ3MgKCB0aGF0IGlzIGAv
Kicgb3IgYC8vJyApDQo7Ozs7IGZvbGxvd2VkIGJ5IG9uZSBvciBtb3JlIGFz
dGVyaXNrLCBoYXNoIG9yIHVuZGVyc2NvcmUgY2hhcmFjdGVycyAoIG1peGlu
Zw0KOzs7OyBvZiB0aGVtIGlzIGFsbG93ZWQgKSA6IG9uZSBjaGFyYWN0ZXIg
Zm9yIG1ham9yIGhlYWRpbmdzLCB0d28gY2hhcmFjdGVycw0KOzs7OyBmb3Ig
c3ViaGVhZGluZ3MsIGV0Yy4sIG9wdGlvbmFsbHkgZm9sbG93ZWQgYnkgYSAo
c3ViKWhlYWRpbmcgZGVzY3JpcHRpb24NCjs7OzsgKCBzZWUgYG15LWMtYysr
LW91dGxpbmUtcmVnZXhwJyBhbmQgYG15LWMtYysrLW91dGxpbmUtbGV2ZWwn
IGJlbG93ICkuDQo7Ozs7IEFsbCBvdGhlciBDIGFuZCBDKysgc291cmNlIGNv
ZGUgbGluZXMgYXJlIGJvZHkgbGluZXMuDQo7Ozs7DQo7OyhkZWZ2YXIgbXkt
Yy1jKystb3V0bGluZS1yZWdleHANCjs7ICAiXi4qL1tcKi9dWyBcdF0qXFwo
XFwpW1wqI19dK1xcKFsgXHRdKy4qJFxcfCRcXCkiKQ0KOzsoZGVmdW4gbXkt
Yy1jKystb3V0bGluZS1sZXZlbCAoKQ0KOzsgIChzYXZlLWV4Y3Vyc2lvbg0K
OzsgICAgKGxvb2tpbmctYXQgb3V0bGluZS1yZWdleHApDQo7OyAgICAoLSAo
bWF0Y2gtYmVnaW5uaW5nIDIpIChtYXRjaC1lbmQgMSkpKSkNCjs7OzsNCjs7
OzsgT3V0bGluZSBtb2RlIGhlYWRpbmdzIGFyZSBsaW5lcyBvZiBDIGFuZCBD
Kysgc291cmNlIGNvZGUgd2hpY2ggaW4gdGhlDQo7Ozs7IGJlZ2lubmluZywg
bm90IGNvdW50aW5nIGxlYWRpbmcgd2hpdGUgc3BhY2UgY2hhcmFjdGVycywg
Y29udGFpbiBDIG9yDQo7Ozs7IEMrKyBjb21tZW50YXJ5IGhlYWRpbmdzICgg
dGhhdCBpcyBgLyonIG9yIGAvLycgKSBmb2xsb3dlZCBieSBvbmUgb3INCjs7
OzsgbW9yZSBhc3RlcmlzaywgaGFzaCBvciB1bmRlcnNjb3JlIGNoYXJhY3Rl
cnMgKCB0aGUgY291bnQgb2YgdGhlc2UNCjs7OzsgY2hhcmFjdGVycyBkb2Vz
IG5vdCBtYXR0ZXIsIG1peGluZyBvZiB0aGVtIGlzIGFsbG93ZWQgKSwgb3B0
aW9uYWxseQ0KOzs7OyBmb2xsb3dlZCBieSBhIChzdWIpaGVhZGluZyBkZXNj
cmlwdGlvbi4gVGhlIGhlYWRpbmcncyBuZXN0aW5nIGxldmVsIGlzDQo7Ozs7
IGNhbGN1bGF0ZWQgZnJvbSB0aGUgaW5kZW50YXRpb24gb2YgdGhlIEMgb3Ig
QysrIGNvbW1lbnRhcnkgKCBzZWUNCjs7OzsgYG15LWMtYysrLW91dGxpbmUt
cmVnZXhwJyBhbmQgYG15LWMtYysrLW91dGxpbmUtbGV2ZWwnIGJlbG93ICku
DQo7Ozs7IEFsbCBvdGhlciBDIGFuZCBDKysgc291cmNlIGNvZGUgbGluZXMg
YXJlIGJvZHkgbGluZXMuDQo7Ozs7DQooZGVmdmFyIG15LWMtYysrLW91dGxp
bmUtcmVnZXhwDQogICJeWyBcdF0qXFwoXFwpL1tcKi9dWyBcdF0qW1wqI19d
K1xcKFsgXHRdKy4qJFxcfCRcXCkiKQ0KKGRlZnVuIG15LWMtYysrLW91dGxp
bmUtbGV2ZWwgKCkNCiAgKHNhdmUtZXhjdXJzaW9uDQogICAgKGxvb2tpbmct
YXQgb3V0bGluZS1yZWdleHApDQogICAgKHN0cmluZy13aWR0aCAoYnVmZmVy
LXN1YnN0cmluZyAobWF0Y2gtYmVnaW5uaW5nIDApIChtYXRjaC1lbmQgMSkp
KSkpDQo7Ozs7DQo7Ozs7IEFsc28gdGhlIGZvbGRvdXQuZWwgaXMgYXV0b21h
dGljYWxseSBsb2FkZWQuIEl0IHByb3ZpZGVzIGZvbGRpbmcgZWRpdG9yDQo7
Ozs7IGV4dGVuc2lvbnMgYW5kIG1vdXNlIGJpbmRpbmdzIGZvciBlbnRlcmlu
ZyBhbmQgZXhpdGluZyBmb2xkcyBhbmQgZm9yDQo7Ozs7IHNob3dpbmcgYW5k
IGhpZGluZyB0ZXh0ICggTWV0YS1Db250cm9sLURvd24tTW91c2UtezEsMiwz
fSAtIHNlZSB0aGUNCjs7OzsgZm9sZG91dC5lbCBzb3VyY2UgY29kZSBmb3Ig
ZGV0YWlscyApLg0KOzs7Ow0KKGFkZC1ob29rICdjLW1vZGUtaG9vaw0KCSAg
KGZ1bmN0aW9uDQoJICAgKGxhbWJkYSAoKQ0KCSAgICAgKHNldHEgb3V0bGlu
ZS1yZWdleHAgbXktYy1jKystb3V0bGluZS1yZWdleHApDQoJICAgICAoc2V0
cSBvdXRsaW5lLWxldmVsICdteS1jLWMrKy1vdXRsaW5lLWxldmVsKQ0KCSAg
ICAgKG91dGxpbmUtbWlub3ItbW9kZSAxKQ0KCSAgICAgKHJlcXVpcmUgJ2Zv
bGRvdXQpKSkpDQooYWRkLWhvb2sgJ2MrKy1tb2RlLWhvb2sNCgkgIChmdW5j
dGlvbg0KCSAgIChsYW1iZGEgKCkNCgkgICAgIChzZXRxIG91dGxpbmUtcmVn
ZXhwIG15LWMtYysrLW91dGxpbmUtcmVnZXhwKQ0KCSAgICAgKHNldHEgb3V0
bGluZS1sZXZlbCAnbXktYy1jKystb3V0bGluZS1sZXZlbCkNCgkgICAgIChv
dXRsaW5lLW1pbm9yLW1vZGUgMSkNCgkgICAgIChyZXF1aXJlICdmb2xkb3V0
KSkpKQ0KOzs7Ow0KOzs7OyBFbmQgb2YgbXkgQyBhbmQgQysrIG91dGxpbmUt
bWlub3ItbW9kZSBzZXR0aW5ncy4NCjs7OzsNCjs7OzsgSGlnaGxpZ2h0aW5n
IGJ5IGZvbnQtbG9jay5lbCBtb2RlLg0KKGdsb2JhbC1mb250LWxvY2stbW9k
ZSB0KQ0KKHNldHEgZm9udC1sb2NrLXN1cHBvcnQtbW9kZSAnbGF6eS1sb2Nr
LW1vZGUpDQooc2V0cSBmb250LWxvY2stbWF4aW11bS1kZWNvcmF0aW9uIHQp
DQo7Ozs7DQo=
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ntuple.hxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708E@uranos.cto.us.edu.pl>
Content-Description: ntuple.hxx
Ly8gIyANCi8vICMgVGhpcyBjbGFzcyBoYXMgYmVlbiBhdXRvbWF0aWNhbGx5
IGdlbmVyYXRlZCANCi8vICMgKFR1ZSBKdW4gMTUgMTA6NDM6MjMgMTk5OSBi
eSBST09UIHZlcnNpb24gMi4yMi8wNCkgDQovLyAjIGZyb20gVFRyZWUgbnR1
cGxlL0RlbW8gbnR1cGxlIA0KLy8gIyBmb3VuZCBvbiBmaWxlOiBoc2ltcGxl
LnJvb3QgDQovLyAjIA0KDQovLyAjICoqKiBUaGUgbnR1cGxlIGNsYXNzIGlu
dGVyZmFjZSAqKiogDQojaWZuZGVmIG50dXBsZV9oeHgNCiNkZWZpbmUgbnR1
cGxlX2h4eA0KDQovLyAjIFJlcXVpcmVkIGluY2x1ZGVzIA0KI2lmbmRlZiBf
X0NJTlRfXw0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8c3RyZWFt
Lmg+DQojaW5jbHVkZSAiVFJPT1QuaCINCiNpbmNsdWRlICJUVHJlZS5oIg0K
I2luY2x1ZGUgIlRGaWxlLmgiDQojaW5jbHVkZSAiQXBpLmgiDQojZWxzZQ0K
Y2xhc3MgVEJyYW5jaDsNCmNsYXNzIFRUcmVlOw0KY2xhc3MgVEZpbGU7DQoj
ZW5kaWYNCg0KLy8gIyBjbGFzcyBudHVwbGUgDQpjbGFzcyBudHVwbGUgew0K
cHVibGljOg0KICAvLyAjIHB1YmxpYyB2YXJpYWJsZXMgDQogIFRUcmVlICAg
ICAgICAgICAqZlRyZWU7IC8vIHBvaW50ZXIgdG8gdGhlIGFuYWx5c2VkIFRU
cmVlDQogIEludF90ICAgICAgICAgICBmRW50cnk7IC8vIGN1cnJlbnQgZW50
cnkgbnVtYmVyDQogIC8vICMgZGVjbGFyYXRpb24gb2YgYnJhbmNoZXMgYW5k
IGxlYXZlcyANCiAgLy8gYnJhbmNoIHB4DQogIEludF90ICAgICAgICAgICBJ
c1JlYWRfcHg7DQogIFRCcmFuY2ggICAgICAgICAqYl9weDsNCiAgRmxvYXRf
dCAgICAgICAgIGxfcHg7DQogIEZsb2F0X3QgICAgICAgICAmcHgoKSB7aWYg
KElzUmVhZF9weCkgcmV0dXJuIGxfcHg7Yl9weC0+R2V0RW50cnkoZkVudHJ5
KTtJc1JlYWRfcHg9MTtyZXR1cm4gbF9weDt9DQogIC8vIGJyYW5jaCBweQ0K
ICBJbnRfdCAgICAgICAgICAgSXNSZWFkX3B5Ow0KICBUQnJhbmNoICAgICAg
ICAgKmJfcHk7DQogIEZsb2F0X3QgICAgICAgICBsX3B5Ow0KICBGbG9hdF90
ICAgICAgICAgJnB5KCkge2lmIChJc1JlYWRfcHkpIHJldHVybiBsX3B5O2Jf
cHktPkdldEVudHJ5KGZFbnRyeSk7SXNSZWFkX3B5PTE7cmV0dXJuIGxfcHk7
fQ0KICAvLyBicmFuY2ggcHoNCiAgSW50X3QgICAgICAgICAgIElzUmVhZF9w
ejsNCiAgVEJyYW5jaCAgICAgICAgICpiX3B6Ow0KICBGbG9hdF90ICAgICAg
ICAgbF9wejsNCiAgRmxvYXRfdCAgICAgICAgICZweigpIHtpZiAoSXNSZWFk
X3B6KSByZXR1cm4gbF9wejtiX3B6LT5HZXRFbnRyeShmRW50cnkpO0lzUmVh
ZF9wej0xO3JldHVybiBsX3B6O30NCiAgLy8gYnJhbmNoIHJhbmRvbQ0KICBJ
bnRfdCAgICAgICAgICAgSXNSZWFkX3JhbmRvbTsNCiAgVEJyYW5jaCAgICAg
ICAgICpiX3JhbmRvbTsNCiAgRmxvYXRfdCAgICAgICAgIGxfcmFuZG9tOw0K
ICBGbG9hdF90ICAgICAgICAgJnJhbmRvbSgpIHtpZiAoSXNSZWFkX3JhbmRv
bSkgcmV0dXJuIGxfcmFuZG9tO2JfcmFuZG9tLT5HZXRFbnRyeShmRW50cnkp
O0lzUmVhZF9yYW5kb209MTtyZXR1cm4gbF9yYW5kb207fQ0KICAvLyBicmFu
Y2ggaQ0KICBJbnRfdCAgICAgICAgICAgSXNSZWFkX2k7DQogIFRCcmFuY2gg
ICAgICAgICAqYl9pOw0KICBGbG9hdF90ICAgICAgICAgbF9pOw0KICBGbG9h
dF90ICAgICAgICAgJmkoKSB7aWYgKElzUmVhZF9pKSByZXR1cm4gbF9pO2Jf
aS0+R2V0RW50cnkoZkVudHJ5KTtJc1JlYWRfaT0xO3JldHVybiBsX2k7fQ0K
ICANCiAgLy8gIyBwdWJsaWMgZnVuY3Rpb25zIA0KICBudHVwbGUoQ2hhcl90
ICpmaWxlbmFtZSA9IDApOw0KICBudHVwbGUoVFRyZWUgKnRyZWUpIHtpZiAo
IXRyZWUpIG50dXBsZSgpO2Vsc2UgSW5pdCh0cmVlKTt9DQogIH5udHVwbGUo
KSB7O30NCiAgU3RhdF90IEdldEVudHJpZXMoKSB7aWYgKCFmVHJlZSkgcmV0
dXJuIDA7cmV0dXJuIGZUcmVlLT5HZXRFbnRyaWVzKCk7fQ0KICBJbnRfdCBH
ZXRFbnRyeShJbnRfdCBlbnRyeSk7DQogIHZvaWQgSW5pdChUVHJlZSAqdHJl
ZSk7DQogIEludF90IExvb3AoKTsNCiAgSW50X3QgTG9vcChJbnRfdCAoKmFu
YWx5c2lzKShudHVwbGUgKikpOw0KICB2b2lkIFNob3coSW50X3QgZW50cnkg
PSAtMSk7DQp9Ow0KDQojZW5kaWYNCg0KLy8gIyAqKiogVGhlIG50dXBsZSBj
bGFzcyBpbXBsZW1lbnRhdGlvbiAqKiogDQojaWZkZWYgbnR1cGxlX2N4eA0K
DQovLyAjIG50dXBsZTo6bnR1cGxlKENoYXJfdCAqZmlsZW5hbWUpIA0KbnR1
cGxlOjpudHVwbGUoQ2hhcl90ICpmaWxlbmFtZSkNCnsNCiAgLy8gIyBJZiBw
YXJhbWV0ZXIgZmlsZW5hbWUgaXMgbm90IHNwZWNpZmllZCAob3IgemVybyks
IGNvbm5lY3QgdGhlIGZpbGUgDQogIC8vICMgdXNlZCB0byBnZW5lcmF0ZSB0
aGlzIGNsYXNzICggaHNpbXBsZS5yb290ICkuIA0KICBpZiAoIWZpbGVuYW1l
IHx8ICEoKmZpbGVuYW1lKSkgew0KICAgIGZpbGVuYW1lID0gImhzaW1wbGUu
cm9vdCI7DQogIH0NCiAgLy8gIyBGaW5kIHRoZSByZXF1aXJlZCBmaWxlIGlu
IFJPT1QgYW5kLCBpZiBub3QgZm91bmQsIG9wZW4gaXQuIA0KICBURmlsZSAq
ZiA9IChURmlsZSopZ1JPT1QtPkdldExpc3RPZkZpbGVzKCktPkZpbmRPYmpl
Y3QoZmlsZW5hbWUpOw0KICBpZiAoIWYpIHsNCiAgICBmID0gbmV3IFRGaWxl
KGZpbGVuYW1lKTsNCiAgfQ0KICAvLyAjIEZpbmQgdGhlIG50dXBsZSB0cmVl
IGFuZCBpbml0aWFsaXplIG9iamVjdC4gDQogIFRUcmVlICp0ID0gKFRUcmVl
KilnRGlyZWN0b3J5LT5HZXQoIm50dXBsZSIpOw0KICBJbml0KHQpOw0KfQ0K
DQovLyAjIEludF90IG50dXBsZTo6R2V0RW50cnkoSW50X3QgZW50cnkpIA0K
SW50X3QgbnR1cGxlOjpHZXRFbnRyeShJbnRfdCBlbnRyeSkNCnsNCiAgLy8g
IyBQcmVwYXJlIHRvIHJlYWQgc3BlY2lmaWVkIGVudHJ5IGZyb20gdGhlIFRy
ZWUuIA0KICAvLyAjIEluIGNhc2UgdGhlIGVudHJ5IGlzIGFscmVhZHkgcmVh
ZCwganVzdCByZXR1cm4uIA0KICBpZiAoIWZUcmVlKSByZXR1cm4gMDsNCiAg
aWYgKGZFbnRyeT09ZW50cnkpIHJldHVybiAxOw0KICBmRW50cnkgPSBlbnRy
eTsNCiAgLy8gIyBTZXQgYnJhbmNoIHN0YXR1c2VzIHRvIDAuIA0KICBJc1Jl
YWRfcHggPSAwOw0KICBJc1JlYWRfcHkgPSAwOw0KICBJc1JlYWRfcHogPSAw
Ow0KICBJc1JlYWRfcmFuZG9tID0gMDsNCiAgSXNSZWFkX2kgPSAwOw0KICAv
LyAjIFdlIGFyZSBkb25lLCByZXR1cm4uIA0KICByZXR1cm4gMTsNCn0NCg0K
Ly8gIyB2b2lkIG50dXBsZTo6SW5pdChUVHJlZSAqdHJlZSkgDQp2b2lkIG50
dXBsZTo6SW5pdChUVHJlZSAqdHJlZSkNCnsNCiAgLy8gIyBJbml0aWFsaXpl
IHB1YmxpYyB2YXJpYWJsZXMuIA0KICBmVHJlZSA9IHRyZWU7DQogIGZFbnRy
eSA9IC0xOw0KICBpZiAoIXRyZWUpIHJldHVybjsNCiAgLy8gIyBTZXQgYnJh
bmNoIHN0YXR1c2VzIHRvIDAsIGdldCBicmFuY2ggcG9pbnRlcnMsIA0KICAv
LyAjIHNldCBicmFuY2ggYWRkcmVzc2VzLiANCiAgZlRyZWUtPlNldEJyYW5j
aFN0YXR1cygiKiIsMSk7IC8vIGVuYWJsZSBhbGwgYnJhbmNoZXMNCiAgLy8g
YnJhbmNoIHB4DQogIElzUmVhZF9weCA9IDA7DQogIGJfcHggPSBmVHJlZS0+
R2V0QnJhbmNoKCJweCIpOw0KICBiX3B4LT5TZXRBZGRyZXNzKCZsX3B4KTsN
CiAgLy8gYnJhbmNoIHB5DQogIElzUmVhZF9weSA9IDA7DQogIGJfcHkgPSBm
VHJlZS0+R2V0QnJhbmNoKCJweSIpOw0KICBiX3B5LT5TZXRBZGRyZXNzKCZs
X3B5KTsNCiAgLy8gYnJhbmNoIHB6DQogIElzUmVhZF9weiA9IDA7DQogIGJf
cHogPSBmVHJlZS0+R2V0QnJhbmNoKCJweiIpOw0KICBiX3B6LT5TZXRBZGRy
ZXNzKCZsX3B6KTsNCiAgLy8gYnJhbmNoIHJhbmRvbQ0KICBJc1JlYWRfcmFu
ZG9tID0gMDsNCiAgYl9yYW5kb20gPSBmVHJlZS0+R2V0QnJhbmNoKCJyYW5k
b20iKTsNCiAgYl9yYW5kb20tPlNldEFkZHJlc3MoJmxfcmFuZG9tKTsNCiAg
Ly8gYnJhbmNoIGkNCiAgSXNSZWFkX2kgPSAwOw0KICBiX2kgPSBmVHJlZS0+
R2V0QnJhbmNoKCJpIik7DQogIGJfaS0+U2V0QWRkcmVzcygmbF9pKTsNCn0N
Cg0KLy8gIyBJbnRfdCBudHVwbGU6Okxvb3AoSW50X3QgKCphbmFseXNpcyko
bnR1cGxlICopKSANCkludF90IG50dXBsZTo6TG9vcChJbnRfdCAoKmFuYWx5
c2lzKShudHVwbGUgKikpDQp7DQogIC8vICMgRXhlY3V0ZSB0aGUgYW5hbHlz
aXMgZnVuY3Rpb24gZm9yIGV2ZXJ5IGVudHJ5LiBJbiBjYXNlIHRoZSANCiAg
Ly8gIyBhbmFseXNpcyBmdW5jdGlvbiByZXR1cm5zIGEgbm9uIHplcm8gdmFs
dWUsIGJyZWFrIHRoZSBsb29wLiANCiAgaWYgKCFmVHJlZSB8fCAhYW5hbHlz
aXMpIHJldHVybiAwOw0KICANCiAgLy8gIyBMb2NhbCB2YXJpYWJsZXMgKCBj
b21tb24gdG8gY29tcGlsZWQgYW5kIGludGVycHJldGVkIGNvZGUgKS4gDQog
IFN0YXRfdCBuZW50cmllcyA9IEdldEVudHJpZXMoKTsgLy8gTnVtYmVyIG9m
IGVudHJpZXMgaW4gdGhlIFRyZWUuDQogIEludF90IGllbnRyaWVzID0gMDsg
Ly8gSG93IG1hbnkgZW50cmllcyB3ZXJlIGFuYWx5c2VkLg0KICANCiAgLy8g
IyBUaGlzIGlzIHRoZSBlbnRyeSBsb29wIGluIGNvbXBpbGVkIGNvZGUuIA0K
I2lmbmRlZiBfX0NJTlRfXw0KICANCiAgLy8gIyBGaXJzdCBkZWZpbmUgc29t
ZSBsb2NhbCB2YXJpYWJsZXMgYW5kIG9iamVjdHMuIA0KICBjaGFyIHRlbXBb
NjRdOyAvLyBJTlRFUlBSRVRFREZVTkMNCiAgbG9uZyBvZmZzZXQgPSAwOyAv
LyBJTlRFUlBSRVRFREZVTkMNCiAgR19fQ2xhc3NJbmZvIGdsb2JhbHNjb3Bl
OyAvLyBJTlRFUlBSRVRFREZVTkMNCiAgR19fQ2FsbEZ1bmMgZnVuYzsgLy8g
SU5URVJQUkVURURGVU5DLCBDT01QSUxFRElOVEVSRkFDRU1FVEhPRCwgQllU
RUNPREVGVU5DDQogIA0KICAvLyAjIFRoZW4gZXhlY3V0ZSB0aGUgbG9vcC4g
DQogIHN3aXRjaChHX19pc2ludGVycHJldGVkcDJmKCgodm9pZCopYW5hbHlz
aXMpKSkgew0KICAgIC8vICMgdXNpbmcgZnVuY3Rpb24gY2FsbCBhcyBzdHJp
bmcgDQogIGNhc2UgR19fSU5URVJQUkVURURGVU5DOg0KICAgIHNwcmludGYo
dGVtcCwiKG50dXBsZSAqKSVwIiwodm9pZCopdGhpcyk7DQogICAgZnVuYy5T
ZXRGdW5jKCZnbG9iYWxzY29wZSwoY2hhciopYW5hbHlzaXMsdGVtcCwmb2Zm
c2V0KTsNCiAgICBmb3IgKEludF90IGk9MDsgaTxuZW50cmllczsgaSsrKSB7
DQogICAgICBpZW50cmllcyArPSBHZXRFbnRyeShpKTsNCiAgICAgIGlmIChm
dW5jLkV4ZWNJbnQoKHZvaWQqKU5VTEwpKSBicmVhazsNCiAgICB9DQogICAg
YnJlYWs7DQogICAgLy8gIyB1c2luZyBpbnRlcmZhY2UgbWV0aG9kIA0KICBj
YXNlIEdfX0NPTVBJTEVESU5URVJGQUNFTUVUSE9EOg0KICAgIGZ1bmMuU2V0
RnVuYygoR19fSW50ZXJmYWNlTWV0aG9kKWFuYWx5c2lzKTsNCiAgICBmdW5j
LlNldEFyZygoKGxvbmcpdGhpcykpOw0KICAgIGZvciAoSW50X3QgaT0wOyBp
PG5lbnRyaWVzOyBpKyspIHsNCiAgICAgIGllbnRyaWVzICs9IEdldEVudHJ5
KGkpOw0KICAgICAgaWYgKGZ1bmMuRXhlY0ludCgodm9pZCopTlVMTCkpIGJy
ZWFrOw0KICAgIH0NCiAgICBicmVhazsNCiAgICAvLyAjIGJ5dGVjb2RlIHZl
cnNpb24gb2YgaW50ZXJwcmV0ZWQgZnVuYyANCiAgY2FzZSBHX19CWVRFQ09E
RUZVTkM6DQogICAgZnVuYy5TZXRCeXRlY29kZSgoc3RydWN0IEdfX2J5dGVj
b2RlZnVuYyopYW5hbHlzaXMpOw0KICAgIGZ1bmMuU2V0QXJnKCgobG9uZyl0
aGlzKSk7DQogICAgZm9yIChJbnRfdCBpPTA7IGk8bmVudHJpZXM7IGkrKykg
ew0KICAgICAgaWVudHJpZXMgKz0gR2V0RW50cnkoaSk7DQogICAgICBpZiAo
ZnVuYy5FeGVjSW50KCh2b2lkKilOVUxMKSkgYnJlYWs7DQogICAgfQ0KICAg
IGJyZWFrOw0KICAgIC8vICMgdXNpbmcgdHJ1ZSBwb2ludGVyIHRvIGZ1bmN0
aW9uIA0KICBjYXNlIEdfX0NPTVBJTEVEVFJVRUZVTkM6DQogICAgLy8gIyBw
b2ludGVyIG5vdCBpbiBDSU5UIGdsb2JhbCBmdW5jdGlvbiB0YWJsZSANCiAg
Y2FzZSBHX19VTktOT1dORlVOQzoNCiAgICBmb3IgKEludF90IGk9MDsgaTxu
ZW50cmllczsgaSsrKSB7DQogICAgICBpZW50cmllcyArPSBHZXRFbnRyeShp
KTsNCiAgICAgIGlmICgoKmFuYWx5c2lzKSh0aGlzKSkgYnJlYWs7DQogICAg
fQ0KICAgIGJyZWFrOw0KICAgIC8vICMgdGhpcyBzaG91bGQgbmV2ZXIgaGFw
cGVuICggdW5rbm93biBraW5kIG9mIHBvaW50ZXIgKSANCiAgZGVmYXVsdDoN
CiAgICBjZXJyIDw8ICJFcnJvciA6IFVua25vd24ga2luZCBvZiBwb2ludGVy
IHRvIGZ1bmN0aW9uIiA8PCBlbmRsOw0KICAgIGJyZWFrOw0KICB9DQogIA0K
ICAvLyAjIFRoaXMgaXMgdGhlIGVudHJ5IGxvb3AgaW4gaW50ZXJwcmV0ZWQg
Y29kZS4gDQojZWxzZQ0KICANCiAgLy8gIyBjdXJyZW50IENJTlQgY2Fubm90
IGRlYWwgd2l0aCB0aGlzIA0KI2lmIDANCiAgZm9yIChJbnRfdCBpPTA7IGk8
bmVudHJpZXM7IGkrKykgew0KICAgIGllbnRyaWVzICs9IEdldEVudHJ5KGkp
Ow0KICAgIGlmICgoKmFuYWx5c2lzKSh0aGlzKSkgYnJlYWs7IC8vIGN1cnJl
bnQgQ0lOVCBjYW5ub3QgZGVhbCB3aXRoIGl0DQogIH0NCiAgLy8gIyBzbyB3
ZSBuZWVkIHRvIHVzZSB0aGlzIA0KI2Vsc2UNCiAgSW50X3QgcmVzdWx0Ow0K
ICBmb3IgKEludF90IGk9MDsgaTxuZW50cmllczsgaSsrKSB7DQogICAgaWVu
dHJpZXMgKz0gR2V0RW50cnkoaSk7DQogICAgcmVzdWx0ID0gKCphbmFseXNp
cykodGhpcyk7DQogICAgaWYgKHJlc3VsdCkgYnJlYWs7DQogIH0NCiNlbmRp
Zg0KICANCiNlbmRpZg0KICANCiAgLy8gIyBXZSBhcmUgZG9uZSwgcmV0dXJu
LiANCiAgcmV0dXJuIGllbnRyaWVzOw0KfQ0KDQovLyAjIHZvaWQgbnR1cGxl
OjpTaG93KEludF90IGVudHJ5KSANCnZvaWQgbnR1cGxlOjpTaG93KEludF90
IGVudHJ5KQ0Kew0KICAvLyAjIFByaW50IGNvbnRlbnRzIG9mIGVudHJ5ICgg
YWxsIGJyYW5jaGVzICkuIA0KICAvLyAjIElmIGVudHJ5IGlzIG5vdCBzcGVj
aWZpZWQsIHByaW50IGN1cnJlbnQgZW50cnkuIA0KICBpZiAoIWZUcmVlKSBy
ZXR1cm47DQogIGlmIChlbnRyeT49MCkgZkVudHJ5ID0gZW50cnk7IGVsc2Ug
ZW50cnkgPSBmRW50cnk7DQogIGlmIChmRW50cnk8MCkgcmV0dXJuOw0KICAv
LyAjIFNldCBicmFuY2ggc3RhdHVzZXMgdG8gMS4gDQogIGZUcmVlLT5TZXRC
cmFuY2hTdGF0dXMoIioiLDEpOyAvLyBlbmFibGUgYWxsIGJyYW5jaGVzDQog
IElzUmVhZF9weCA9IDE7DQogIElzUmVhZF9weSA9IDE7DQogIElzUmVhZF9w
eiA9IDE7DQogIElzUmVhZF9yYW5kb20gPSAxOw0KICBJc1JlYWRfaSA9IDE7
DQogIC8vICMgU2hvdyBlbnRyeS4gDQogIGZUcmVlLT5TaG93KGZFbnRyeSk7
DQp9DQoNCiNlbmRpZg0KDQovLyAjIEVuZCBvZiBmaWxlIG50dXBsZS5oeHgg
DQo=
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="ntuple.cxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708F@uranos.cto.us.edu.pl>
Content-Description: ntuple.cxx
Ly8gIyBJbmNsdWRlIHRoZSBudHVwbGUgY2xhc3MgaW50ZXJmYWNlIHNwZWNp
ZmljYXRpb24uIA0KI2lmbmRlZiBudHVwbGVfY3h4DQojZGVmaW5lIG50dXBs
ZV9jeHgNCiNlbmRpZg0KI2luY2x1ZGUgIm50dXBsZS5oeHgiDQojdW5kZWYg
bnR1cGxlX2N4eA0KDQovLyAjIFBsYWNlIGhlcmUgYWxsIFJPT1QgcmVsYXRl
ZCBpbmNsdWRlcyB0aGF0IHlvdSBuZWVkLiANCiNpZm5kZWYgX19DSU5UX18N
CiNpbmNsdWRlICJUSDEuaCINCiNpbmNsdWRlICJUSDIuaCINCiNpbmNsdWRl
ICJUQ2FudmFzLmgiDQojZW5kaWYNCg0KLy8gIyBJbnRfdCBudHVwbGU6Okxv
b3AoKSANCkludF90IG50dXBsZTo6TG9vcCgpDQp7DQogIC8vICMgTG9jYWwg
dmFyaWFibGVzLiANCiAgU3RhdF90IG5lbnRyaWVzID0gR2V0RW50cmllcygp
OyAvLyBOdW1iZXIgb2YgZW50cmllcyBpbiB0aGUgVHJlZS4NCiAgSW50X3Qg
aWVudHJpZXMgPSAwOyAvLyBIb3cgbWFueSBlbnRyaWVzIHdlcmUgYW5hbHlz
ZWQuDQogIA0KICAvLyAjIENyZWF0ZSBoaXN0b2dyYW1zLiANCiAgVEgxRiAq
aF9weD0gbmV3IFRIMUYoInB4IiwicHgiLDEwMCwtNCw0KTsNCiAgVEgxRiAq
aF9weT0gbmV3IFRIMUYoInB5IiwicHkiLDEwMCwtNSw1KTsNCiAgVEgxRiAq
aF9wej0gbmV3IFRIMUYoInB6IiwicHoiLDEwMCwwLDIwKTsNCiAgVEgxRiAq
aF9yYW5kb209IG5ldyBUSDFGKCJyYW5kb20iLCJyYW5kb20iLDEwMCwwLDEp
Ow0KICBUSDFGICpoX2k9IG5ldyBUSDFGKCJpIiwiaSIsMTAwLDAsMzAwMDAp
Ow0KICBUSDJGICpoX3B4cHo9IG5ldyBUSDJGKCJweHB6IiwicHhweiIsMTAw
LDAsMjAsMTAwLC00LDQpOw0KICANCiAgLy8gIyBUaGlzIGlzIHRoZSBsb29w
IHNrZWxldG9uLiANCiAgZm9yIChJbnRfdCBsPTA7IGw8bmVudHJpZXM7IGwr
Kykgew0KICAgIGllbnRyaWVzICs9IEdldEVudHJ5KGwpOw0KICAgIGhfcHgt
PkZpbGwocHgoKSk7DQogICAgaF9weS0+RmlsbChweSgpKTsNCiAgICBoX3B6
LT5GaWxsKHB6KCkpOw0KICAgIGhfcmFuZG9tLT5GaWxsKHJhbmRvbSgpKTsN
CiAgICBoX2ktPkZpbGwoaSgpKTsNCiAgICBoX3B4cHotPkZpbGwocHooKSxw
eCgpKTsNCiAgfQ0KICANCiAgLy8gIyBTaG93IHJlc3VsdHMuIA0KICBUQ2Fu
dmFzICpjID0gbmV3IFRDYW52YXMoImMiKTsNCiAgYy0+RGl2aWRlKDIsMyk7
DQogIGMtPmNkKDEpOw0KICBoX3B4LT5EcmF3KCk7DQogIGMtPmNkKDIpOw0K
ICBoX3B5LT5EcmF3KCk7DQogIGMtPmNkKDMpOw0KICBoX3B6LT5EcmF3KCk7
DQogIGMtPmNkKDQpOw0KICBoX3JhbmRvbS0+RHJhdygpOw0KICBjLT5jZCg1
KTsNCiAgaF9pLT5EcmF3KCk7DQogIGMtPmNkKDYpOw0KICBoX3B4cHotPkRy
YXcoKTsNCiAgDQogIC8vICMgV2UgYXJlIGRvbmUsIHJldHVybi4gDQogIHJl
dHVybiBpZW50cmllczsNCn0NCg0KLy8gIyBFbmQgb2YgZmlsZSBudHVwbGUu
Y3h4IA0K
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Makefile.root.2.21"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708G@uranos.cto.us.edu.pl>
Content-Description: Makefile.root.2.21
U3JjU3VmICAgICAgICA9IGN4eA0KSW5jU3VmICAgICAgICA9IGh4eA0KDQpP
YmpTdWYgICAgICAgID0gbw0KRXhlU3VmICAgICAgICA9DQpEbGxTdWYgICAg
ICAgID0gc28NCk91dFB1dE9wdCAgICAgPSAtbw0KDQpST09UTElCUyAgICAg
ID0gLUwkKFJPT1RTWVMpL2xpYiAtbE5ldyAtbEJhc2UgLWxDaW50IC1sQ2xp
YiAtbENvbnQgLWxGdW5jIFwNCiAgICAgICAgICAgICAgICAtbEdyYWYgLWxH
cmFmM2QgLWxIaXN0IC1sSHRtbCAtbE1hdHJpeCAtbE1ldGEgLWxNaW51aXQg
LWxOZXQgXA0KICAgICAgICAgICAgICAgIC1sUGh5c2ljcyAtbFBvc3RzY3Jp
cHQgLWxQcm9vZiAtbFRyZWUgLWxVbml4IC1sWmlwDQpST09UR0xJQlMgICAg
ID0gLWxHcGFkIC1sR3VpIC1sR1gxMSAtbFgzZA0KDQojIExpbnV4IHdpdGgg
ZWdjcw0KRUdDUyAgICAgICAgICA9IC9vcHQvZWdjcy9wcm8NCkNYWCAgICAg
ICAgICAgPSBnKysNCkNYWEZMQUdTICAgICAgPSAtZyAtTzIgLVdhbGwgLWZu
by1ydHRpIC1mbm8tZXhjZXB0aW9ucyAtZlBJQyAtSSQoUk9PVFNZUykvaW5j
bHVkZQ0KTEQgICAgICAgICAgICA9IGcrKw0KTERGTEFHUyAgICAgICA9IC1n
IC1PMiAtV2wsLXJwYXRoLCQoRUdDUykvbGliOiQoUk9PVFNZUykvbGliDQpT
T0ZMQUdTICAgICAgID0gLXNoYXJlZA0KTElCUyAgICAgICAgICA9ICQoUk9P
VExJQlMpIC1sbSAtbGRsIC1yZHluYW1pYw0KR0xJQlMgICAgICAgICA9ICQo
Uk9PVExJQlMpICQoUk9PVEdMSUJTKSAtTC91c3IvWDExUjYvbGliIFwNCiAg
ICAgICAgICAgICAgICAtbFhwbSAtbFgxMSAtbG0gLWxkbCAtcmR5bmFtaWMN
Cg0KDQojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoNCk5U
VVBMRU8gICAgICAgPSBudHVwbGUuJChPYmpTdWYpIG50dXBsZURpY3QuJChP
YmpTdWYpDQpOVFVQTEVTICAgICAgID0gbnR1cGxlLiQoU3JjU3VmKSBudHVw
bGVEaWN0LiQoU3JjU3VmKQ0KTlRVUExFU08gICAgICA9IG50dXBsZS4kKERs
bFN1ZikNCg0KT0JKUyAgICAgICAgICA9ICQoTlRVUExFTykNCg0KUFJPR1JB
TVMgICAgICA9ICQoTlRVUExFU08pDQoNCmFsbDogICAgICAgICAgICAkKFBS
T0dSQU1TKQ0KDQokKE5UVVBMRVNPKTogICAgJChOVFVQTEVPKQ0KCQkkKExE
KSAkKFNPRkxBR1MpICQoTERGTEFHUykgJChOVFVQTEVPKSAkKE91dFB1dE9w
dCkgJChOVFVQTEVTTykNCg0KY2xlYW46DQoJCUBybSAtZiAkKE9CSlMpICpE
aWN0LiogKn4gLip+IGNvcmUNCg0KLlNVRkZJWEVTOiAuJChTcmNTdWYpDQoN
CiMjIw0KDQpudHVwbGUuJChPYmpTdWYpOiBudHVwbGUuJChTcmNTdWYpIG50
dXBsZS4kKEluY1N1ZikNCm50dXBsZURpY3QuJChTcmNTdWYpOiBudHVwbGUu
JChJbmNTdWYpDQoJQGVjaG8gIkdlbmVyYXRpbmcgZGljdGlvbmFyeSBudHVw
bGVEaWN0Li4uIg0KCUAkKFJPT1RTWVMpL2Jpbi9yb290Y2ludCAtZiBudHVw
bGVEaWN0LiQoU3JjU3VmKSAtYyBudHVwbGUuJChJbmNTdWYpDQoNCi4kKFNy
Y1N1ZikuJChPYmpTdWYpOg0KCSQoQ1hYKSAkKENYWEZMQUdTKSAtYyAkPA0K
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="Makefile.root.2.22"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708H@uranos.cto.us.edu.pl>
Content-Description: Makefile.root.2.22
U3JjU3VmICAgICAgICA9IGN4eA0KSW5jU3VmICAgICAgICA9IGh4eA0KDQpP
YmpTdWYgICAgICAgID0gbw0KRXhlU3VmICAgICAgICA9DQpEbGxTdWYgICAg
ICAgID0gc28NCk91dFB1dE9wdCAgICAgPSAtbw0KDQpST09UTElCUyAgICAg
ID0gLUwkKFJPT1RTWVMpL2xpYiAtbE5ldyAtbEJhc2UgLWxDaW50IC1sQ2xp
YiAtbENvbnQgLWxGdW5jIFwNCiAgICAgICAgICAgICAgICAtbEdyYWYgLWxH
cmFmM2QgLWxIaXN0IC1sSHRtbCAtbE1hdHJpeCAtbE1ldGEgLWxNaW51aXQg
LWxOZXQgXA0KICAgICAgICAgICAgICAgIC1sUGh5c2ljcyAtbFBvc3RzY3Jp
cHQgLWxQcm9vZiAtbFRyZWUgLWxVbml4IC1sWmlwDQpST09UR0xJQlMgICAg
ID0gLWxHcGFkIC1sR3VpIC1sR1gxMSAtbFgzZA0KDQojIExpbnV4IHdpdGgg
ZWdjcw0KRUdDUyAgICAgICAgICA9IC9vcHQvZWdjcy9wcm8NCkNYWCAgICAg
ICAgICAgPSBnKysNCkNYWEZMQUdTICAgICAgPSAtZyAtTzIgLVdhbGwgLWZQ
SUMgLUkkKFJPT1RTWVMpL2luY2x1ZGUNCkxEICAgICAgICAgICAgPSBnKysN
CkxERkxBR1MgICAgICAgPSAtZyAtTzIgLVdsLC1ycGF0aCwkKEVHQ1MpL2xp
YjokKFJPT1RTWVMpL2xpYg0KU09GTEFHUyAgICAgICA9IC1zaGFyZWQNCkxJ
QlMgICAgICAgICAgPSAkKFJPT1RMSUJTKSAtbG0gLWxkbCAtcmR5bmFtaWMN
CkdMSUJTICAgICAgICAgPSAkKFJPT1RMSUJTKSAkKFJPT1RHTElCUykgLUwv
dXNyL1gxMVI2L2xpYiBcDQogICAgICAgICAgICAgICAgLWxYcG0gLWxYMTEg
LWxtIC1sZGwgLXJkeW5hbWljDQoNCg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQ0KDQpOVFVQTEVPICAgICAgID0gbnR1cGxlLiQoT2Jq
U3VmKSBudHVwbGVEaWN0LiQoT2JqU3VmKQ0KTlRVUExFUyAgICAgICA9IG50
dXBsZS4kKFNyY1N1ZikgbnR1cGxlRGljdC4kKFNyY1N1ZikNCk5UVVBMRVNP
ICAgICAgPSBudHVwbGUuJChEbGxTdWYpDQoNCk9CSlMgICAgICAgICAgPSAk
KE5UVVBMRU8pDQoNClBST0dSQU1TICAgICAgPSAkKE5UVVBMRVNPKQ0KDQph
bGw6ICAgICAgICAgICAgJChQUk9HUkFNUykNCg0KJChOVFVQTEVTTyk6ICAg
ICQoTlRVUExFTykNCgkJJChMRCkgJChTT0ZMQUdTKSAkKExERkxBR1MpICQo
TlRVUExFTykgJChPdXRQdXRPcHQpICQoTlRVUExFU08pDQoNCmNsZWFuOg0K
CQlAcm0gLWYgJChPQkpTKSAqRGljdC4qICp+IC4qfiBjb3JlDQoNCi5TVUZG
SVhFUzogLiQoU3JjU3VmKQ0KDQojIyMNCg0KbnR1cGxlLiQoT2JqU3VmKTog
bnR1cGxlLiQoU3JjU3VmKSBudHVwbGUuJChJbmNTdWYpDQpudHVwbGVEaWN0
LiQoU3JjU3VmKTogbnR1cGxlLiQoSW5jU3VmKQ0KCUBlY2hvICJHZW5lcmF0
aW5nIGRpY3Rpb25hcnkgbnR1cGxlRGljdC4uLiINCglAJChST09UU1lTKS9i
aW4vcm9vdGNpbnQgLWYgbnR1cGxlRGljdC4kKFNyY1N1ZikgLWMgbnR1cGxl
LiQoSW5jU3VmKQ0KDQouJChTcmNTdWYpLiQoT2JqU3VmKToNCgkkKENYWCkg
JChDWFhGTEFHUykgLWMgJDwNCg==
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="loop.cxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708I@uranos.cto.us.edu.pl>
Content-Description: loop.cxx
Ly8gIyBQbGFjZSBoZXJlIGFsbCBST09UIHJlbGF0ZWQgaW5jbHVkZXMgdGhh
dCB5b3UgbmVlZC4gDQojaWZuZGVmIF9fQ0lOVF9fDQojaW5jbHVkZSAibnR1
cGxlLmh4eCIgLy8gSW5jbHVkZSB0aGUgbnR1cGxlIGNsYXNzIGludGVyZmFj
ZSBzcGVjaWZpY2F0aW9uLg0KI2luY2x1ZGUgIlRIMS5oIg0KI2luY2x1ZGUg
IlRIMi5oIg0KI2luY2x1ZGUgIlRDYW52YXMuaCINCiNlbHNlDQpjbGFzcyBu
dHVwbGU7DQojZW5kaWYNCg0KLy8gIyBJbnRfdCBsb29wKG50dXBsZSAqbikg
DQpJbnRfdCBsb29wKG50dXBsZSAqbikNCnsNCiAgLy8gIyBMb2NhbCB2YXJp
YWJsZXMuIA0KICBTdGF0X3QgbmVudHJpZXMgPSBuLT5HZXRFbnRyaWVzKCk7
IC8vIE51bWJlciBvZiBlbnRyaWVzIGluIHRoZSBUcmVlLg0KICBJbnRfdCBp
ZW50cmllcyA9IDA7IC8vIEhvdyBtYW55IGVudHJpZXMgd2VyZSBhbmFseXNl
ZC4NCiAgDQogIC8vICMgQ3JlYXRlIGhpc3RvZ3JhbXMuIA0KICBUSDFGICpo
X3B4PSBuZXcgVEgxRigicHgiLCJweCIsMTAwLC00LDQpOw0KICBUSDFGICpo
X3B5PSBuZXcgVEgxRigicHkiLCJweSIsMTAwLC01LDUpOw0KICBUSDFGICpo
X3B6PSBuZXcgVEgxRigicHoiLCJweiIsMTAwLDAsMjApOw0KICBUSDFGICpo
X3JhbmRvbT0gbmV3IFRIMUYoInJhbmRvbSIsInJhbmRvbSIsMTAwLDAsMSk7
DQogIFRIMUYgKmhfaT0gbmV3IFRIMUYoImkiLCJpIiwxMDAsMCwzMDAwMCk7
DQogIFRIMkYgKmhfcHhwej0gbmV3IFRIMkYoInB4cHoiLCJweHB6IiwxMDAs
MCwyMCwxMDAsLTQsNCk7DQogIA0KICAvLyAjIFRoaXMgaXMgdGhlIGxvb3Ag
c2tlbGV0b24uIA0KICBmb3IgKEludF90IGw9MDsgbDxuZW50cmllczsgbCsr
KSB7DQogICAgaWVudHJpZXMgKz0gbi0+R2V0RW50cnkobCk7DQogICAgaF9w
eC0+RmlsbChuLT5weCgpKTsNCiAgICBoX3B5LT5GaWxsKG4tPnB5KCkpOw0K
ICAgIGhfcHotPkZpbGwobi0+cHooKSk7DQogICAgaF9yYW5kb20tPkZpbGwo
bi0+cmFuZG9tKCkpOw0KICAgIGhfaS0+RmlsbChuLT5pKCkpOw0KICAgIGhf
cHhwei0+RmlsbChuLT5weigpLG4tPnB4KCkpOw0KICB9DQogIA0KICAvLyAj
IFNob3cgcmVzdWx0cy4gDQogIFRDYW52YXMgKmMgPSBuZXcgVENhbnZhcygi
YyIpOw0KICBjLT5EaXZpZGUoMiwzKTsNCiAgYy0+Y2QoMSk7DQogIGhfcHgt
PkRyYXcoKTsNCiAgYy0+Y2QoMik7DQogIGhfcHktPkRyYXcoKTsNCiAgYy0+
Y2QoMyk7DQogIGhfcHotPkRyYXcoKTsNCiAgYy0+Y2QoNCk7DQogIGhfcmFu
ZG9tLT5EcmF3KCk7DQogIGMtPmNkKDUpOw0KICBoX2ktPkRyYXcoKTsNCiAg
Yy0+Y2QoNik7DQogIGhfcHhwei0+RHJhdygpOw0KICANCiAgLy8gIyBXZSBh
cmUgZG9uZSwgcmV0dXJuLiANCiAgcmV0dXJuIGllbnRyaWVzOw0KfQ0KDQov
LyAjIEVuZCBvZiBmaWxlIGxvb3AuY3h4IA0K
---559023410-1804928587-929437667=:18708
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="analysis.cxx"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.GSO.3.96.990615110747.18708J@uranos.cto.us.edu.pl>
Content-Description: analysis.cxx
Ly8gIyBQbGFjZSBoZXJlIGFsbCBST09UIHJlbGF0ZWQgaW5jbHVkZXMgdGhh
dCB5b3UgbmVlZC4gDQojaWZuZGVmIF9fQ0lOVF9fDQojaW5jbHVkZSAibnR1
cGxlLmh4eCIgLy8gSW5jbHVkZSB0aGUgbnR1cGxlIGNsYXNzIGludGVyZmFj
ZSBzcGVjaWZpY2F0aW9uLg0KI2luY2x1ZGUgIlRIMS5oIg0KI2luY2x1ZGUg
IlRIMi5oIg0KI2luY2x1ZGUgIlRDYW52YXMuaCINCiNlbHNlDQpjbGFzcyBu
dHVwbGU7DQojZW5kaWYNCg0KLy8gIyBDcmVhdGUgaGlzdG9ncmFtcy4gDQpU
SDFGICpoX3B4PSBuZXcgVEgxRigicHgiLCJweCIsMTAwLC00LDQpOw0KVEgx
RiAqaF9weT0gbmV3IFRIMUYoInB5IiwicHkiLDEwMCwtNSw1KTsNClRIMUYg
KmhfcHo9IG5ldyBUSDFGKCJweiIsInB6IiwxMDAsMCwyMCk7DQpUSDFGICpo
X3JhbmRvbT0gbmV3IFRIMUYoInJhbmRvbSIsInJhbmRvbSIsMTAwLDAsMSk7
DQpUSDFGICpoX2k9IG5ldyBUSDFGKCJpIiwiaSIsMTAwLDAsMzAwMDApOw0K
VEgyRiAqaF9weHB6PSBuZXcgVEgyRigicHhweiIsInB4cHoiLDEwMCwwLDIw
LDEwMCwtNCw0KTsNCg0KLy8gIyBJbnRfdCBhbmFseXNpcyhudHVwbGUgKm4p
IA0KSW50X3QgYW5hbHlzaXMobnR1cGxlICpuKQ0Kew0KICAvLyAjIEFuYWx5
c2Ugc2luZ2xlICggY3VycmVudCApIGVudHJ5LiANCiAgaF9weC0+RmlsbChu
LT5weCgpKTsNCiAgaF9weS0+RmlsbChuLT5weSgpKTsNCiAgaF9wei0+Rmls
bChuLT5weigpKTsNCiAgaF9yYW5kb20tPkZpbGwobi0+cmFuZG9tKCkpOw0K
ICBoX2ktPkZpbGwobi0+aSgpKTsNCiAgaF9weHB6LT5GaWxsKG4tPnB6KCks
bi0+cHgoKSk7DQogIA0KICAvLyAjIFdlIGFyZSBkb25lLCByZXR1cm4uIA0K
ICByZXR1cm4gMDsNCn0NCg0KLy8gIyBFbmQgb2YgZmlsZSBhbmFseXNpcy5j
eHggDQo=
---559023410-1804928587-929437667=:18708--