[Biocorba-l] biocorba and the OMG spec

Brad Chapman chapmanb@arches.uga.edu
25 Aug 2000 18:41:27 EDT


This is a multi-part message in MIME format...

------------=_967243287-672-0
Content-Type: text/plain
Content-Disposition: inline
Content-Transfer-Encoding: binary

Hey all!
I wanted to give a big thanks to Jason and Chris for setting up the
biocorba site and mailing lists. It's very nice to have a place to talk
about biocorba specific things and not have to cross-post like crazy.

Jason mentioned one of the first things we should do is try to see about
is trying to get a little bit of compatibility with the OMG LSR IDL
(gawd, those acronyms suck!). Towards this goal, I tried to see how we
could make the biocorba IDL look a little more like the OMG spec. A
preliminary changed version is attached, with basically the following
simple changes:

Changes to make the biocorba sequence objects more similar to the 
OMG 'BioSequence' object
========================

AnonymousSeq
------------
- Changed length() to an attribute 'length'
- Changed type() to an attribute 'type'

- changed get_subseq to seq_interval

PrimarySeq
----------
- changed display_id() to attribute 'name'
- changed primary_id() to attribute 'id'
- changed accession_number() to attribute 'accession_number'
- added attribute 'description'
- changed version() to attribute 'version'

I have quite a few questions for everyone about this:

o Do this changes make any sense? Are there more changes that could be
made to the sequence class to make it more similar?

o Can anyone see how the OMG Annotation interface could be made to fit
with the biocorba SeqFeature interface? I couldn't really see how to do
this...

o Are there any exceptions we could use from the OMG spec to replace
biocorba exceptions? Again, I didn't see any.

o Is there other stuff I am missing that would make things more similar?
Should we be doing more to bring things together?

o Is it worthwhile to make these changes? Does this really help at all to
bring us together or does it just make things more confusing?

Anyways, enough questions :-). As you can see I'd love to hear people's
input on this!

Brad





------------=_967243287-672-0
Content-Type: application/x-unknown; name="biocorba-omg.idl"
Content-Disposition: inline; filename="biocorba-omg.idl"
Content-Transfer-Encoding: base64

Ly8gc2VtaS1maW5hbGl6ZWQgYmlvKiBJREwtLWZyb20gMDAtMDItMTEKLy8g
QmlvRW52IGludGVyZmFjZSBhZGRlZC0tMDAtMDItMTkKLy8gQ2hhbmdlZCBC
aW9FbnYgaW50ZXJmYWNlIHRvIG1hdGNoIEJpb3BlcmwtPjAwLTA0LTE5Ci8v
IE1vZGlmaWNhdGlvbnMgdG8gYmUgY2xvc2VyIHRvIE9NRyBJREwgLT4gMDAt
MDgtMjQKCi8vIE5vdGVzIG9uIHRoZSBJREwuIAovLwovLyBUaGlzIElETCBp
cyBkZXNpZ25lZCB0byBiZSBwcmV0dHkgdW5jb250cm92ZXJzaWFsIGFuZCBz
aW1wbGUuIEkgYW0KLy8gdXNpbmcgdmVyeSBzaW1wbGUgQ09SQkEgZmVhdHVy
ZXMsIGFuZCBzbyBubyB2YWx1ZXR5cGVzLCBhbnkncywKLy8gY29uc3QncyBh
bGwgb2Ygd2hpY2ggZ2V0IGltcGxlbWVudGVkIGxhdGUgaW4gT1JCcyAoaWYg
YXQgYWxsKS4KLy8KLy8gVGhpcyBJREwgaXMgZGVzaWduZWQgb25seSBmb3Ig
c2VxdWVuY2VzIGFuZCBmZWF0dXJlcy4gIFRoZXJlIGlzIG5vCi8vIHByb3Zp
c2lvbiBmb3Igb3RoZXIgc3R1ZmYgLSB3ZSBuZWVkIHRvIHN0YXJ0IHdpdGgg
dGhlIHRoaW5ncyB3ZSBjYW4KLy8gYWdyZWUgd2l0aCBhbmQgYnVpbGQgb24g
dGhhdC4KLy8KLy8gVGhpcyBJREwgc2hvdWxkIHdvcmsgd2VsbCBhcyBhbiBp
bnRlcm5hbCBJREwgZm9yIGFuIE9NRyBjb21wbGlhbnQKLy8gc2VydmVyLiBU
aGUgT01HIHNwZWNpZmljYXRpb24gbGVhdmVzIGFsb3Qgb2YgdGhlICJtYWdp
YyIgdG8gdGhlCi8vIHNlcnZlciwgaW5jbHVkaW5nIG1lbW9yeSBtYW5hZ2Vt
ZW50IGV0YywgYW5kIGFsc28gdXNlcyBhbG90IG9mCi8vICJzdGFuZGFyZCIg
T01HIHR5cGVzIGFuZCBzZXJ2aWNlcyB3aGljaCBnZW5lcmFsbHkgZG8gbm90
IGNvbWUKLy8gd2l0aCBhIHN0YW5kYXJkIGZyZWUgT1JCLiBIZW5jZSB0aGUg
R05PTUUgbWVtb3J5IG1hbmFnZW1lbnQKLy8gbW9kZWwgYW5kIHRoZSBzaW1w
bGUgaXRlcmF0b3JzLgovLwovLyA8YmlybmV5QGViaS5hYy51az4KLy8KCi8v
Ci8vIFRoaXMgY29tZXMgZGlyZWN0bHkgZnJvbSB0aGUgR05PTUUgYm9ub2Jv
byBtb2RlbC4KLy8gSXQgYWxsb3dzIG1lbW9yeSBtYW5hZ2VtZW50IHZpYSBy
ZWYgYW5kIHVucmVmIGNhbGxzLgovLyBUaGUgcXVlcnlfaW50ZXJmYWNlIGlz
IG5vdCBpbXBvcnRhbnQgZm9yIHRoaXMgY2FzZSwKLy8gYnV0IGhlcmUgZm9y
IGNvbXBsZXRlbmVzcy4KLy8KCm1vZHVsZSBHTk9NRSB7CiAgaW50ZXJmYWNl
IFVua25vd24gewogICAgdm9pZCByZWYoKTsKICAgIHZvaWQgdW5yZWYoKTsK
ICAgIE9iamVjdCBxdWVyeV9pbnRlcmZhY2UoaW4gc3RyaW5nIHJlcG9pZCk7
CiAgfTsKfTsKCi8vCi8vIFRoZXNlIGFyZSB0aGUgYWN0dWFsIGJpb2xvZ2lj
YWwgb2JqZWN0cyB0aGF0IHdlIGFyZSBpbnRlcmVzdGVkCi8vIGluLiBOZWFy
bHkgZXZlcnl0aGluZyBpcyBhbiBpbnRlcmZhY2UuIEl0IGlzIG5vdCBnb2lu
ZyB0byB3b3JrCi8vIHdlbGwgYWNyb3NzIGxhcmdlIGludGVybmV0IGNvbm5l
Y3Rpb25zLCBzbyBkb24ndCB1c2UgaXQgZm9yIHRoYXQuCi8vCgovLyBUaGUg
b3JnLkJpb2NvcmJhLlNlcWNvcmUgcGFja2FnZSBpcyBzbyB3ZSBsb29rIGdv
b2QgaW4gSmF2YS4KLy8gTWFrZXMgdGhlIEMgaW50ZXJmYWNlIG5hbWVzIHdh
YWFhYXkgdG9vIGxvbmcgb2YgY291cnNlCgptb2R1bGUgb3JnIHsKICBtb2R1
bGUgQmlvY29yYmEgIHsKICAgIG1vZHVsZSBTZXFjb3JlIHsKICAgICAgLy8g
bWVhbnMgeW91IG5lZWQgdG8gcmVxdWVzdCBhIHNtYWxsZXIgbnVtYmVyLAog
ICAgICAvLyBpZSwgcmVxdWVzdCBvbmx5IGZhaWxlZCBkdWUgdG8gaXRzIHNp
emUuCiAgICAgIGV4Y2VwdGlvbiBSZXF1ZXN0VG9vTGFyZ2UgeyAKCXN0cmlu
ZyByZWFzb247IAoJbG9uZyBzdWdnZXN0ZWRfc2l6ZTsgCiAgICAgIH07IAoK
ICAgICAgLy8gRm9yIHdoZW4gc3RhcnQvZW5kIHBvaW50cyBhcmUgb3V0IG9m
IHJhbmdlLgogICAgICBleGNlcHRpb24gT3V0T2ZSYW5nZSB7IHN0cmluZyBy
ZWFzb247IH07IAoKICAgICAgZXhjZXB0aW9uIEVuZE9mU3RyZWFtIHsgfTsg
ICAgICAgICAgICAgICAgICAgIC8vIGZvciBlbmQgb2Ygc3RyZWFtcwogICAg
ICBleGNlcHRpb24gVW5hYmxlVG9Qcm9jZXNzIHsgc3RyaW5nIHJlYXNvbjsg
fTsgLy8gQWxsIG90aGVyIGVycm9ycwogIAogICAgICBlbnVtIFNlcVR5cGUg
eyBQUk9URUlOLEROQSxSTkEgfTsKICAKICAgICAgLy8gQW5vbnltb3VzU2Vx
IGlzIGp1c3QgdGhlIHNlcXVlbmNlIGluZm9ybWFpdG9uIGFuZCAqbm90aGlu
ZyBlbHNlKgogICAgICAvLyBpbmNsdWRpbmcgbmFtZXMKICAKICAgICAgaW50
ZXJmYWNlIEFub255bW91c1NlcSA6IEdOT01FOjpVbmtub3duIHsKCglyZWFk
b25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsZW5ndGg7CgkvLyBzZXJ2
ZXIgaGFzIHRvIGF0IGxlYXN0ICpndWVzcyogdGhlIHR5cGUuCglyZWFkb25s
eSBhdHRyaWJ1dGUgU2VxVHlwZSB0eXBlOyAKCgkvLyB0aGUgZW50aXJlIHNl
cXVlbmNlLiBVc2UgbWF4X3JlcXVlc3RfbGVuZ3RoIHRvIGZpbmQgdGhlIG1h
eAoJLy8gc2l6ZSBhbGxvd2VkCglzdHJpbmcgIGdldF9zZXEoKSByYWlzZXMg
KFJlcXVlc3RUb29MYXJnZSk7CiAgICAKCS8vIGdldHMgYSBzdWIgc2VxdWVu
Y2UuIHRoZSBzdGFydCxlbmQgYXJlIGluIGJpb2xvZ2ljYWwKCS8vIGNvb3Jk
aW5hdGVzLCBpZSwgMS0yIGFyZSB0aGUgZmlyc3QgdHdvIGJhc2VzCglzdHJp
bmcgIHNlcV9pbnRlcnZhbChpbiBsb25nIHN0YXJ0LGluIGxvbmcgZW5kKSBy
YWlzZXMgKE91dE9mUmFuZ2UsCgkJCQkJCQkgICAgICBSZXF1ZXN0VG9vTGFy
Z2UpOwoJLy8gVGhpcyBpcyB0byBmaW5kIHRoZSBsYXJnZXN0IHN0cmluZyB0
aGF0IGNhbiBiZSBwYXNzZWQgYmFjawoJbG9uZyAgICBtYXhfcmVxdWVzdF9s
ZW5ndGgoKTsgCiAgICAgIH07CiAgCiAgICAgIC8vIFByaW1hcnkgc2VxdWVu
Y2VzIGFyZSBqdXN0IHRoZSBzZXF1ZW5jZSBpbmZvcm1hdGlvbiBhbmQgZW5v
dWdoIHRvCiAgICAgIC8vIGlkZW5pdHkgaW5mb3JtYXRpb24gdG8gcHJvY2Vz
cyB0aGUgc2VxdWVuY2Uvc3RvcmUgcmVzdWx0cy9ldGMuCiAgCiAgICAgIGlu
dGVyZmFjZSBQcmltYXJ5U2VxIDogQW5vbnltb3VzU2VxIHsKICAgIAoJLy8g
dGhyZWUgZGlmZmVyZW50IGlkJ3Mgd2hpY2ggbWlnaHQgYmUgdGhlIHNhbWUu
IFRoZSBmaXJzdCwKCS8vICduYW1lJyAgaXMgd2hhdCB0byB1c2UgaWYgYSBo
dW1hbiB1c2VzIGl0LiBUaGUgc2Vjb25kLAoJLy8gJ2lkJyBpcyB3aGF0IHRo
ZSBpbXBsZW1lbnRhdGlvbiBkZWNpZGVzIGFzIHRoZSBjb3JyZWN0CgkvLyB1
bmlxdWUgaWQgZm9yIHRoaXMgc2VxdWVuY2UuIChpbiBhIGxvdCBvZiBjYXNl
cyB0aGlzIHdpbGwgYmUKCS8vIGFjY2Vzc2lvbiBudW1iZXIpLiBUaGUgZmlu
YWwgb25lIGlzIHRoZSAnYWNjZXNzaW9uX251bWJlcicgd2hpY2gKCS8vIGlz
IHRoZSB1bmlxdWUgaWQgaW4gdGhlIGJpb2xvZ2ljYWwgZGF0YWJhc2Ugd2hp
Y2ggaXQgaXMgZnJvbQoJLy8gKHRoaXMgbWF5YmUgdGhlIHNhbWUgYXMgdGhl
ICdpZCcsIGJ1dCBtaWdodCBub3QpLiBZZXMgLQoJLy8gd2UgZG8gbmVlZCBh
bGwgdGhyZWUgaWRzLgoKCS8vIGlkIHRvIGRpc3BsYXkgdG8gaHVtYW5zCgly
ZWFkb25seSBhdHRyaWJ1dGUgc3RyaW5nIG5hbWU7IAoKCS8vIGlkIHRvIHVz
ZSBhcyBhIHVuaXF1ZSBpZCBmb3IgdGhpcyBzZXF1ZW5jZS4gSW4gc29tZSBj
YXNlcyAKCS8vIGl0IGNvdWxkIGJlIGJ5dGUgcG9zaXRpb24vZmlsZSBtdW5n
ZWQgaW50byBhIHN0cmluZyBmb3IgZXhhbXBsZS4KCXJlYWRvbmx5IGF0dHJp
YnV0ZSBzdHJpbmcgaWQ7CgoJLy8gVGhlIHVuaXF1ZSBpZCAoY29tbW9ubHkg
Y2FsbGVkIGFjY2Vzc2lvbiBudW1iZXIpIGluCgkvLyB0aGUgYmlvbG9naWNh
bCBkYXRhYmFzZSB0aGlzIGNvbWVzIGZyb20sIG5vdCB0aGUgcGFydGljdWxh
cgoJLy8gaW5zdGFuY2Ugb2YgdGhlIGRhdGFiYXNlIGZvciB0aGUgaW1wbGVt
ZW50YXRpb24uCglyZWFkb25seSBhdHRyaWJ1dGUgc3RyaW5nIGFjY2Vzc2lv
bl9udW1iZXI7CgoKCXJlYWRvbmx5IGF0dHJpYnV0ZSBzdHJpbmcgZGVzY3Jp
cHRpb247CiAgICAKCS8vIHBvdGVudGlhbCAodW5zdGFibGUpIHZlcnNpb24g
bnVtYmVyIGZvciB0aGUgc2VxdWVuY2UuIDAgZm9yCgkvLyB0aGluZ3MgdGhh
dCBkb24ndCBoYXZlIGEgdmVyc2lvbiBudW1iZXIKCXJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nIHZlcnNpb247CiAgICAgIH07CiAgCiAgICAgIC8vIFJlcHJl
c2VudHMgc3RyZWFtaW5nIHRocm91Z2ggYSBzaW5nbGUgZGF0YWJhc2UsIGVn
IG92ZXIgYSBmYXN0YSBmaWxlCiAgICAgIC8vIERvbid0IGZvcmdldCB0byBk
ZWZlcmVuY2Ugb2JqZWN0cyBvbmNlIHRoZXkgYXJlIGRvbmUKICAgICAgaW50
ZXJmYWNlIFByaW1hcnlTZXFJdGVyYXRvciA6IEdOT01FOjpVbmtub3duIHsK
CVByaW1hcnlTZXEgbmV4dCgpIHJhaXNlcyAoRW5kT2ZTdHJlYW0sVW5hYmxl
VG9Qcm9jZXNzKTsKCWJvb2xlYW4gICAgaGFzX21vcmUoKTsgLy8gcmV0dXJu
cyAxIHdoZW4gbmV4dF9zZXEgd2lsbCBnaXZlIGFuIG9iamVjdAogICAgICB9
OwogIAogICAgICAvLyBQcm92aWRlcyBhIGRhdGFiYXNlIG1haW5seSBmb3Ig
ZGF0YWJhc2Ugc2VhcmNoaW5nLiBDYW4gbWFrZSBuZXcKICAgICAgLy8gc3Ry
ZWFtcyBhbmQgY2FuIHJldHJpZXZlIHNlcXVlbmNlcyBmcm9tIHRoZSBkYXRh
YmFzZS4KICAgICAgaW50ZXJmYWNlIFByaW1hcnlTZXFEQiA6IEdOT01FOjpV
bmtub3duIHsKCXN0cmluZyAgZGF0YWJhc2VfbmFtZSgpOyAgICAgLy8gVGhp
cyBpcyB0byBpZGVudGlmeSBkYXRhYmFzZXMgYnkgbmFtZQoJc2hvcnQgICBk
YXRhYmFzZV92ZXJzaW9uKCk7ICAvLyB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFz
ZQoJLy8gbWFrZXMgYSBuZXcgaXRlcmF0b3Igb2JqZWN0LgoJUHJpbWFyeVNl
cUl0ZXJhdG9yIG1ha2VfUHJpbWFyeVNlcUl0ZXJhdG9yKCk7CgkvLyBSZXRy
aWV2ZXMgb25lIHNlcXVlbmNlCglQcmltYXJ5U2VxIGdldF9QcmltYXJ5U2Vx
KGluIHN0cmluZyBwcmltYXJ5X2lkKSByYWlzZXMgKFVuYWJsZVRvUHJvY2Vz
cyk7IAogICAgICB9OwogIAoKICAgICAgLy8gV2UgbmVlZCB0byBiZSBhYmxl
IHRvIHBhc3MgYmFjayBhZGRpdGlvbmFsIHN0cnVjdHVyZWQgaW5mb3JtYXRp
b24KICAgICAgLy8gaW4gc29tZSBjYXNlcy4gVGhpcyBnaXZlcyB1cyBhIHdh
eSBvZiBkb2luZyBpdCB3aXRob3V0IHNwZWNpZnlpbmcgCiAgICAgIC8vIHRo
ZSBzdHJ1Y3R1cmUgYXQgY29tcGlsZSB0aW1lLiBUcnkgbm90IHRvIGFidXNl
IHRoaXMuLi4KICAKICAgICAgLy8gVGhpcyBpcyBlcXVpdmFsZW50IHRvIGEg
aGFzaCBvZiBhcnJheXMgaW4gcGVybAogICAgICB0eXBlZGVmIHNlcXVlbmNl
IDxzdHJpbmc+IHN0cmluZ0xpc3Q7CiAgICAgIHN0cnVjdCBOYW1lVmFsdWVT
ZXQgewoJc3RyaW5nIG5hbWU7CglzdHJpbmdMaXN0IHZhbHVlczsKICAgICAg
fTsKICAKICAgICAgdHlwZWRlZiBzZXF1ZW5jZSA8TmFtZVZhbHVlU2V0PiBO
YW1lVmFsdWVTZXRMaXN0OwogIAogICAgICAvLyBTZXFGZWF0dXJlcyBhcmUg
ZmVhdHVyZXMgb24gYSBzZXF1ZW5jZS4gVGhpcyBpcyBHRkYKICAgICAgLy8g
Y29tcGF0aWJsZS4gCiAgICAgIGludGVyZmFjZSBTZXFGZWF0dXJlIDogR05P
TUU6OlVua25vd24gewoJLy8gZXhvbiwgcmVwZWF0IGV0Yy4KCXN0cmluZyB0
eXBlKCk7ICAgCgkvLyBzb3VyY2Ugb2YgdGhlIFNlcUZlYXR1cmUgbWFpbmx5
IGZvciBHRkYgY29tcGF0aWJpbGl0eSAgICAgICAgCglzdHJpbmcgc291cmNl
KCk7ICAgCgkvLyBUaGlzIGdpdmVzIHRoZSBwcmltYXJ5IHNlcXVlbmNlIGlk
IHRoaXMgaXMgbGlua2VkIHRvLiAgICAgIAoJc3RyaW5nIHNlcV9wcmltYXJ5
X2lkKCk7IAoJLy8gc3RhcnQgaW4gYmlvbG9naWNhbCBjb29yZGluYXRlcyAo
MSBpcyB0aGUgZmlyc3QgYmFzZSkKCWxvbmcgc3RhcnQoKTsgICAKCS8vIGVu
ZCBpbiBiaW9sb2dpY2FsIGNvb3JkaW5hdGVzICgxLTIgYXJlIHRoZSBmaXJz
dCB0d28gCgkvLyBiYXNlcyBpbiBhIHNlcXVlbmNlKSAgICAgICAgCglsb25n
IGVuZCgpOyAKCS8vIC0xLDAsMS4gLTEgbWVhbnMgcmV2ZXJzZSwgMCBtZWFu
cyBlaXRoZXIsIDEgbWVhbnMgZm9yd2FyZC4gCgkvLyBJcnJlbGV2YW50IGZv
ciBwcm90ZWlucyAgICAgICAgICAgICAKCXNob3J0IHN0cmFuZCgpOyAgIAoJ
Ly8gYWRkaXRpb25hbCBzdHJ1Y3R1cmVkIGluZm9ybWF0aW9uICAgICAgIAoJ
TmFtZVZhbHVlU2V0TGlzdCBxdWFsaWZpZXJzKCk7IAoJLy8gcmV0dXJucyAx
IGlmIGl0IGRvZXMsIDAgaWYgbm90LgoJYm9vbGVhbiAgICBQcmltYXJ5U2Vx
X2lzX2F2YWlsYWJsZSgpOyAgIAoJLy8gdGhlIFNlcXVlbmNlIG1heSBvciBt
YXkgbm90IGJlIHRoZXJlLgoJLy8gaW1wbGVtZW50b3JzIGFyZSBmcmVlIHRv
IGNob29zZS4KCVByaW1hcnlTZXEgZ2V0X1ByaW1hcnlTZXEoKSByYWlzZXMg
KCBVbmFibGVUb1Byb2Nlc3MgKTsgCiAgICAgIH07CgogICAgICB0eXBlZGVm
IHNlcXVlbmNlIDxTZXFGZWF0dXJlPiBTZXFGZWF0dXJlTGlzdDsKCiAgICAg
IC8vIFdlIGhhdmUgdG8gaGFuZGxlIGxhcmdlIG51bWJlcnMgb2YgZmVhdHVy
ZXMuCiAgICAgIGludGVyZmFjZSBTZXFGZWF0dXJlSXRlcmF0b3IgOiBHTk9N
RTo6VW5rbm93biB7CglTZXFGZWF0dXJlIG5leHQoKSByYWlzZXMgKEVuZE9m
U3RyZWFtLFVuYWJsZVRvUHJvY2Vzcyk7Cglib29sZWFuICAgIGhhc19tb3Jl
KCk7CiAgICAgIH07CgogICAgICAvLyBZZXMgd2Ugc2hvdWxkIGluaGVyaWV0
IG9mIFNlcUZlYXR1cmUgZm9yIG1vcmUgY29tcGxleCB0aGluZ3MuIFBsZWFz
ZQogICAgICAvLyBpbmhlcmlldCBvZmYgU2VxRmVhdHVyZSBmb3IgeW91ciBm
YXZvdXJ0aWUgZmVhdHVyZSBleHRlbnNpb24hCiAgCiAgICAgIC8vIFRoaXMg
aXMgb25lIGhlYXZ5IG9iamVjdCwgVGhpcyBzaG91bGQgcmVhbGx5IGJlIGEg
bnVtYmVyIG9mCiAgICAgIC8vIGNvb3JkaW5hdGluZyBvYmplY3RzIHVuZGVy
bmVhdGguIE5vdGljZSB0aGF0IHRoZSBTZXEgb2JqZWN0CiAgICAgIC8vIGJv
dGggaW5oZXJpZXRzIGZyb20gdGhlIFByaW1hcnlTZXEgaW50ZXJmYWNlIGFu
ZCBhbHNvIGhhcy1hCiAgICAgIC8vIFByaW1hcnlTZXEgaW50ZXJmYWNlLiBU
aGlzIGlzIGRlbGliZXJhdGUgc28gdGhhdCBjbGllbnRzIGNhbgogICAgICAv
LyBpbmRpY2F0ZSB3aGVuIHRoZXkgcmVhbGx5IHdhbnQgdG8gZGlzY2FyZCBh
IGNvbXBsZXRlIHNlcXVlbmNlCiAgICAgIC8vIHdpdGggZmVhdHVyZXMgYnkg
ZnJlZWluZyBidXQgc3RpbGwgaG9sZCBvbiB0byB0aGUgb3JpZ2luYWwgCiAg
ICAgIC8vIHByaW1hcnkgc2VxdWVuY2UuCgogICAgICAvLyBvdGhlcndpc2Ug
c2VydmVycyB3aWxsIGhhdmUgZXh0cmVtZWx5IGxhcmdlIG9iamVjdHMgZm9y
IGV2ZXJ5CiAgICAgIC8vIHNlcXVlbmNlIGluIGZlYXR1cmUgcmljaCBkYXRh
YmFzZXMgKGJhZCkuCiAgCiAgICAgIGludGVyZmFjZSBTZXEgOiBQcmltYXJ5
U2VxIHsKCVNlcUZlYXR1cmVMaXN0ICAgICBhbGxfZmVhdHVyZXMoKSByYWlz
ZXMgKFJlcXVlc3RUb29MYXJnZSk7CglTZXFGZWF0dXJlSXRlcmF0b3IgYWxs
X2ZlYXR1cmVzX2l0ZXJhdG9yKCk7CiAgICAKCVNlcUZlYXR1cmVMaXN0ICAg
ICBmZWF0dXJlc19yZWdpb24oaW4gbG9uZyBzdGFydCxpbiBsb25nIGVuZCkg
CgkgIHJhaXNlcyAoT3V0T2ZSYW5nZSxVbmFibGVUb1Byb2Nlc3MsUmVxdWVz
dFRvb0xhcmdlKTsKCVNlcUZlYXR1cmVJdGVyYXRvciBmZWF0dXJlc19yZWdp
b25faXRlcmF0b3IoaW4gbG9uZyBzdGFydCxpbiBsb25nIGVuZCkgCgkgIHJh
aXNlcyAoT3V0T2ZSYW5nZSxVbmFibGVUb1Byb2Nlc3MpOwoKCWxvbmcgICAg
ICAgICAgICAgICBtYXhfZmVhdHVyZV9yZXF1ZXN0KCk7CgoJLy8gVGhpcyBp
cyBwdXQgaGVyZSBzbyB0aGF0IGNsaWVudHMgY2FuIGFzayBzZXJ2ZXJzIGp1
c3QgZm9yIHRoZQoJLy8gc2VxdWVuY2UgYW5kIHRoZW4gZnJlZSB0aGUgbGFy
Z2UsIHNlcWZlYXR1cmUgY29udGFpbmluZyBzZXF1ZW5jZS4KCS8vIEl0IHBy
ZXZlbnRzIGEgc2VxdWVuY2Ugd2l0aCBmZWF0dXJlcyBoYXZpbmcgdG8gc3Rh
eSBpbiBtZW1vcnkgCgkvLyBmb3JldmVyLgoJUHJpbWFyeVNlcSAgICAgICAg
IGdldF9QcmltYXJ5U2VxKCk7IAogICAgICB9OyAgCgogICAgICB0eXBlZGVm
IHNlcXVlbmNlIDxzdHJpbmc+IHByaW1hcnlpZExpc3Q7CgoKICAgICAgaW50
ZXJmYWNlIFNlcURCIDogUHJpbWFyeVNlcURCIHsKCS8vIFJldHJpZXZlcyBv
bmUgc2VxdWVuY2UKCVNlcSBnZXRfU2VxKGluIHN0cmluZyBwcmltYXJ5X2lk
KSByYWlzZXMgKFVuYWJsZVRvUHJvY2Vzcyk7IAoJcHJpbWFyeWlkTGlzdCBn
ZXRfcHJpbWFyeWlkTGlzdCgpOwogICAgICB9OwoKICAgICAgLy8gdGhpcyBh
bGxvd3MgdG8gZ2V0IGhvbGQgb2YgYW4gb2JqZWN0IHdoaWNoIHdpbGwgcmVw
cmVzZW50IAogICAgICAvLyBhY2Nlc3NpYmxlIGNvZGUgb24gYSBwYXJ0aWN1
bGFyIHNlcnZlci4gTm90aWNlIHRoYXQgd2UgYWxsb3cgCiAgICAgIC8vIGNv
bmNlcHRzIGxpa2UgZmlsZW5hbWVzIGhlcmUuIElmIHNvIHdpc2hlZCwgdGhl
IHNlcnZlciBjYW4gCiAgICAgIC8vIHRocm93IGFuIGV4Y2VwdGlvbiBvbiBh
bGwgdGhlIGZpbGVuYW1lIGNvZGUgKGVnLCBjbGllbnQgaXMgCiAgICAgIC8v
IG9uIGEgZGlmZmVyZW50IG1hY2hpbmUgdG8gc2VydmVyISkKICAgICAgaW50
ZXJmYWNlIEJpb0VudiB7CgkvLyBmb3JtYXQgY2FuIGFuIGVtcHR5IHN0cmlu
ZywgaW4gd2hpY2ggY2FzZSBCaW9FbnYgc2VydmVyIGd1ZXNzZXMvCgkvLyB0
aHJvd3MgYW4gZXhjZXB0aW9uLCBkZXBlbmRpbmcgb24gd2hhdCBpdCBmZWVs
cyBsaWtlCglQcmltYXJ5U2VxSXRlcmF0b3IgUHJpbWFyeVNlcUl0ZXJhdG9y
X2Zyb21fZmlsZShpbiBzdHJpbmcgZm9ybWF0LAoJCQkJCQkJaW4gc3RyaW5n
IGZpbGVuYW1lKSAKCSAgcmFpc2VzIChVbmFibGVUb1Byb2Nlc3MpOwoKCVBy
aW1hcnlTZXEgICAgICAgICBQcmltYXJ5U2VxX2Zyb21fZmlsZShpbiBzdHJp
bmcgZm9ybWF0LGluIHN0cmluZyBmaWxlbmFtZSkgCgkgIHJhaXNlcyAoVW5h
YmxlVG9Qcm9jZXNzKTsKCglTZXEgICAgICAgICAgICAgICAgU2VxX2Zyb21f
ZmlsZShpbiBzdHJpbmcgZm9ybWF0LGluIHN0cmluZyBmaWxlbmFtZSk7CgoJ
Ly8gdmVyc2lvbiBjYW4gYmUgZW1wdHksIGluIHdoaWNoIGNhc2UsIGFzc3Vt
bWUgdGhlIGxhdGVzdCB2ZXJzaW9uCglTZXFEQiAgICAgICAgICAgICAgU2Vx
REJfYnlfbmFtZShpbiBzdHJpbmcgbmFtZSxpbiBzdHJpbmcgdmVyc2lvbik7
CiAgICAgIH07ICAgIAoKCiAgICB9OyAvLyBlbmQgU2VxY29yZSBtb2R1bGUK
ICB9OyAvLyBlbmQgQmlvY29yYmEgbW9kdWxlCn07IC8vIGVuZCBvcmcgbW9k
dWxlCgoKCgo=

------------=_967243287-672-0--