#!/usr/bin/env ruby # # CENSORED # William S Burroughs "Electronic Revolution" # CENSORED # # Of course, you cannot stop the electronic revolution, so it is still available # on sites we cannot influence: # # http://archive.groovy.net/dl/elerev.html # http://www.totse.com/en/ego/literary_genius/ter.html # http://web.archive.org/web/20031222133203/textz.gnutenberg.net/textz/burroughs_william_s_the_electronic_revolution.txt # http://www.eldespertador.info/moreno/bejuco/electrorev.htm # http://www.artdamage.com/wsb/electric.htm # # # Andy, ftp.fortunaty.net print ' V2lsbGlhbSBTLiBCdXJyb3VnaHMKClRoZSBFbGVjdHJvbmljIFJldm9sdXRp b24KCkZFRURCQUNLIEZST00gV0FURVJHQVRFIFRPIFRIRSBHQVJERU4gT0Yg RURFTiAKCkluIHRoZSBiZWdpbm5pbmcgd2FzIHRoZSB3b3JkIGFuZCB0aGUg d29yZCB3YXMgZ29kIGFuZCBoYXMgcmVtYWluZWQgb25lIG9mIHRoZSAKbXlz dGVyaWVzIGV2ZXIgc2luY2UuIFRoZSB3b3JkIHdhcyBHb2QgYW5kIHRoZSB3 b3JkIHdhcyBmbGVzaCB3ZSBhcmUgdG9sZC4gSW4gCnRoZSBiZWdpbm5pbmcg b2Ygd2hhdCBleGFjdGx5IHdhcyB0aGlzIGJlZ2lubmluZyB3b3JkPyBJbiB0 aGUgYmVnaW5uaW5nIG9mIApXUklUVEVOIGhpc3RvcnkuIEl0IGlzIGdlbmVy YWxseSBhc3N1bWVkIHRoYXQgc3Bva2VuIHdvcmQgY2FtZSBiZWZvcmUgdGhl IAp3cml0dGVuIHdvcmQuIEkgc3VnZ2VzdCB0aGF0IHRoZSBzcG9rZW4gd29y ZCBhcyB3ZSBrbm93IGl0IGNhbWUgYWZ0ZXIgdGhlIAp3cml0dGVuIHdvcmQu IEluIHRoZSBiZWdpbm5pbmcgd2FzIHRoZSB3b3JkIGFuZCB0aGUgd29yZCB3 YXMgR29kIGFuZCB0aGUgd29yZCAKd2FzIGZsZXNoIC4uLiBodW1hbiBmbGVz aCAuLi4gSW4gdGhlIGJlZ2lubmluZyBvZiBXUklUSU5HLiBBbmltYWxzIHRh bGsgYW5kIApjb252ZXkgaW5mb3JtYXRpb24gYnV0IHRoZXkgZG8gbm90IHdy aXRlLiBUaGV5IGNhbm5vdCBtYWtlIGluZm9ybWF0aW9uIGF2YWlsYWJsZSAK dG8gZnV0dXJlIGdlbmVyYXRpb25zIG9yIHRvIGFuaW1hbHMgb3V0c2lkZSB0 aGUgcmFuZ2Ugb2YgdGhlaXIgY29tbXVuaWNhdGlvbiAKc3lzdGVtLiBUaGlz IGlzIHRoZSBjcnVjaWFsIGRpc3RpbmN0aW9uIGJldHdlZW4gbWVuIGFuZCBv dGhlciBhbmltYWxzLiBXUklUSU5HLiAKS29yenlic2tpLCB3aG8gZGV2ZWxv cGVkIHRoZSBjb25jZXB0IG9mIEdlbmVyYWwgU2VtYW50aWNzLCB0aGUgbWVh bmluZyBvZiAKbWVhbmluZywgaGFzIHBvaW50ZWQgb3V0IHRoaXMgaHVtYW4g ZGlzdGluY3Rpb24gYW5kIGRlc2NyaWJlZCBtYW4gYXMgJ3RoZSB0aW1lIApi aW5kaW5nIGFuaW1hbCcuIEhlIGNhbiBtYWtlIGluZm9ybWF0aW9uIHRvIG90 aGVyIG1lbiBvdmVyIGEgbGVuZ3RoIG9mIHRpbWUgCnRocm91Z2ggd3JpdGlu Zy4gQW5pbWFscyB0YWxrLiBUaGV5IGRvbnQgd3JpdGUuIE5vdyBhIHdpc2Ug b2xkIHJhdCBtYXkga25vdyBhIApsb3QgYWJvdXQgdHJhcHMgYW5kIHBvaXNv biBidXQgaGUgY2Fubm90IHdyaXRlIGEgdGV4dCBib29rIG9uIERFQVRIIFRS QVBTIElOIApZT1VSIFdBUkVIT1VTRSBmb3IgdGhlIFJlYWRlcidzIERpZ2Vz dCB3aXRoIHRhY3RpY3MgZm9yIGdhbmdpbmcgdXAgb24gZGlncyBhbmQgCmZl cnJldHMgYW5kIHRha2luZyBjYXJlIG9mIHdpc2UgZ3V5cyB3aG8gc3R1ZmYg c3RlZWwgd29vbCB1cCBvdXIgaG9sZXMuIEl0IGlzIApkb3VidGZ1bCBpZiB0 aGUgc3Bva2Ugd29yZCB3b3VsZCBoYXZlIGV2ZXIgZXZvbHZlZCBiZXlvbmQg dGhlIGFuaW1hbCBzdGFnZSAKd2l0aG91dCB0aGUgd3JpdHRlbiB3b3JkLiBU aGUgd3JpdHRlbiB3b3JkIGlzdCBpbmZlcmVudGlhbCBpbiBIVU1BTiBzcGVl Y2guIEl0IAp3b3VsZCBub3Qgb2NjdXIgdG8gb3VyIHdpc2Ugb2xkIHJhdCB0 byBhc3NlbWJsZSB0aGUgeW91bmcgcmF0cyBhbmQgcGFzcyBoaXMgCmtub3ds ZWRnZSBhbG9uZyBpbiBhbiBhdXJhbCB0cmFkaXRpb24gQkVDQVVTRSBUSEUg V0hPTEUgQ09OQ0VQVCBPRiBUSU1FIEJJTkRJTkcgCkNPVUxEIE5PVCBPQ0NV UiBXSVRIT1VUIFRIRSBXUklUVEVOIFdPUkQuIFRoZSB3cml0dGVuIHdvcmQg aXMgb2YgY291cnNlIGEgc3ltYm9sIApmb3Igc29tZXRoaW5nIGFuZCBpbiB0 aGUgY2FzZSBvZiBoaWVyb2dseXBoaWMgbGFuZ3VhZ2Ugd3JpdGluZyBsaWtl IEVneXB0aWFuIGl0IAptYXkgYmUgYSBzeW1ib2wgZm9yIGl0c2VsZiB0aGF0 IGlzIGEgcGljdHVyZSBvZiB3aGF0IGl0IHJlcHJlc2VudHMuIFRoaXMgaXMg bm90IAp0cnVlIG9mIGFuIGFscGhhYmV0IGxhbmd1YWdlIGxpa2UgRW5nbGlz aC4gVGhlIHdvcmQgbGVnIGhhcyBubyBwaWN0b3JpYWwgCnJlc2VtYmxhbmNl IHRvIGEgbGVnLiBJdCByZWZlcnMgdG8gdGhlIFNQT0tFTiB3b3JkIGxlZy4g c28gd2UgbWF5IGZvcmdldCB0aGF0IGEgCndyaXR0ZW4gd29yZCBJUyBBTiBJ TUFHRSBhbmQgdGhhdCB3cml0dGVuIHdvcmRzIGFyZSBpbWFnZXMgaW4gc2Vx dWVuY2UgdGhhdCBpcyAKdG8gc2F5IE1PVklORyBQSUNUVVJFUy4gU28gYW55 IGhpZXJvZ2x5cGhpYyBzZXF1ZW5jZSBnaXZlcyB1cyBhbiBpbW1lZGlhdGUg CndvcmtpbmcgZGVmaW5pdGlvbiBmb3Igc3Bva2VuIHdvcmRzLiBTcG9rZW4g d29yZHMgYXJlIHZlcmJhbCB1bml0cyB0aGF0IHJlZmVyIHRvIAp0aGlzIHBp Y3RvcmlhbCBzZXF1ZW5jZS4gQW5kIHdoYXQgdGhlbiBpcyB0aGUgd3JpdHRl biB3b3JkPyBNeSBiYXNpcyB0aGVvcnkgaXMgCnRoYXQgdGhlIHdyaXR0ZW4g d29yZCB3YXMgbGl0ZXJhbGx5IGEgdmlydXMgdGhhdCBtYWRlIHNwb2tlbiB3 b3JkIHBvc3NpYmxlLiBUaGUgCndvcmQgaGFzIG5vdCBiZWVuIHJlY29nbml6 ZWQgYXMgYSB2aXJ1cyBiZWNhdXNlIGl0IGhhcyBhY2hpZXZlZCBhIHN0YXRl IG9mIApzdGFibGUgc3ltYmlvc2lzIHdpdGggdGhlIGhvc3QuLi4gKFRoaXMg c3ltYmlvdGljIHJlbGF0aW9uc2hpcCBpcyBub3cgYnJlYWtpbmcgCmRvd24g Zm9yIHJlYXNvbnMgSSB3aWxsIHN1Z2dlc3QgbGF0ZXIuKSAKCkkgcXVvdGUg ZnJvbSBNRUNIQU5JU01TIE9GIFZJUlVTIElORkVDVElPTiBlZGl0ZWQgYnkg TXIuIFdpbHNvbiBTbWl0aCwgYSAKc2NpZW50aXN0IHdobyByZWFsbHkgdGhp bmtzIGFib3V0IGhpcyBzdWJqZWN0IGluc3RlYWQgb2YgbWVyZWx5IGNvcnJl bGF0aW5nIApkYXRhLiBIZSB0aGlua3MsIHRoYXQgaXMsIGFib3V0IHRoZSB1 bHRpbWF0ZSBpbnRlbnRpb25zIG9mIHRoZSB2aXJ1cyBvcmdhbmlzbS4gCklu IGFuIGFydGljbGUgZW50aXRsZWQgVklSVVMgQURBUFRJQklMSVRZIEFORCBI T1NUIFJFU0lTVEFOQ0UgYnkgRy4gQmVseWF2aW4sIApzcGVjdWxhdGlvbnMg YXMgdG8gdGhlIGJpb2xvZ2ljIGdvYWwgb2YgdGhlIHZpcnVzIHNwZWNpZXMg YXJlIGVubGFyZ2VkIC4uLiAKJ1ZpcnVzZXMgYXJlIG9ibGlnYXRvcnkgY2Vs bHVsYXIgcGFyYXNpdGVzIGFuZCBhcmUgdGh1cyB3aG9sbHkgZGVwZW5kYW50 IHVwb24gCnRoZSBpbnRlZ3JpdHkgb2YgdGhlIGNlbGx1bGFyIHN5c3RlbXMg dGhleSBwYXJhc2l0aXplIGZvciB0aGVpciBzdXJ2aXZhbCBpbiBhbiAKYWN0 aXZlIHN0YXRlLiBJdCBpcyBzb21ldGhpbmcgb2YgYSBwYXJhZG94IHRoYXQg bWFueSB2aXJ1c2VzIHVsdGltYXRlbHkgZGVzdHJveSAKdGhlIGNlbGxzIGlu IHdoaWNoIHRoZXkgYXJlIGxpdmluZy4uLiIgCgpBbmQgSSBtYXkgYWRkIHRo ZSBlbnZpcm9ubWVudCBuZWNlc3NhcnkgZm9yIGFueSBjZWxsdWxhciBzdHJ1 Y3R1cmUgdGhleSBjb3VsZCAKcGFyYXNpdGl6ZSB0byBzdXJ2aXZlLiBJcyB0 aGUgdmlydXMgdGhlbiBzaW1wbHkgYSB0aW1lIGJvbWIgbGVmdCBvbiB0aGlz IHBsYW5ldCAKdG8gYmUgYWN0aXZhdGVkIGJ5IHJlbW90ZSBjb250cm9sPyBB biBleHRlcm1pbmF0aW9uIHByb2dyYW0gaW4gZmFjdD8gSW4gaXRzIHBhdGgg CmZyb20gZnVsbCB2aXJ1bGVuY2UgdG8gaXRzIHVsdGltYXRlIGdvYWwgb2Yg c3ltYmlvc2lzIHdpbGwgYW55IGh1bWFuIGNyZWF0dXJlIApzdXJ2aXZlPyBJ cyB0aGUgd2hpdGUgcmFjZSwgd2hpY2ggd291bGQgc2VlbSB0byBiZSBtb3Jl IHVuZGVyIHZpcnVzIGNvbnRyb2wgdGhhbiAKdGhlIGJsYWNrIHllbGxvdyBh bmQgYnJvd24gcmFjZXMsIGdpdmluZyBhbnkgaW5kaWNhdGlvbiBvZiB3b3Jr YWJsZSBzeW1iaW9zaXM/IAoKJ1Rha2luZyB0aGUgdmlydXMgZXllIHZpZXcs IHRoZSBpZGVhbCBzaXR1YXRpb24gd291bGQgYXBwZWFyIHRvIGJlIG9uZSBp biB3aGljaCAKdGhlIHZpcnVzIHJlcGxpY2F0ZXMgaW4gY2VsbHMgd2l0aG91 dCBpbiBhbnkgd2F5IGRpc3R1cmJpbmcgdGhlaXIgbm9ybWFsIAptZXRhYm9s aXNtLicgCgpUaGlzIGhhcyBiZWVuIHN1Z2dlc3RlZCBhcyB0aGUgaWRlYWwg YmlvbG9naWNhbCBzaXR1YXRpb24gdG93YXJkIHdoaWNoIGFsbCAKdmlydXNl cyBhcmUgc2xvd2x5IGV2b2x2aW5nLi4uJyAKCldvdWxkIHlvdSBvZmZlciB2 aW9sZW5jZSB0byBhIHdlbGwgaW50ZW50aW9uZWQgdmlydXMgb24gaXRzIHNs b3cgcm9hZCB0byAKc3ltYmlvc2lzPyAKCidJdCBpcyB3b3J0aCBub3Rpbmcg dGhhdCBpZiBhIHZpcnVzIHdlcmUgdG8gYXR0YWluIGEgc3RhdGUgb2Ygd2hv bGx5IGJlbmlnbiAKZXF1aWxpYnJpdW0gd2l0aCBpdHMgaG9zdCBjZWxsIGl0 IGlzIHVubGlrZWx5IHRoYXQgaXRzIHByZXNlbmNlIHdvdWxkIGJlIHJlYWRp bHkgCmRldGVjdGVkIE9SIFRIQVQgSVQgV09VTEQgTkVDRVNTQVJJTFkgQkUg UkVDT0dOSVpFRCBBUyBBIFZJUlVTLiBJIHN1Z2dlc3QgdGhhdCAKdGhlIHdv cmQgaXMganVzdCBzdWNoIGEgdmlydXMuIERva3RvciBLdXJ0IFVucnVoIHZv biBTdGVpbnBsYXR6IGhhcyBwdXQgZm9ydGggYW4gCmludGVyZXN0aW5nIHRo ZW9yeSBhcyB0byB0aGUgb3JpZ2lucyBhbmQgaGlzdG9yeSBvZiB0aGlzIHdv cmQgdmlydXMuIEhlIApwb3N0dWxhdGVzIHRoYXQgdGhlIHdvcmQgd2FzIGEg dmlydXMgb2Ygd2hhdCBoZSBjYWxscyBCSU9MT0dJQyBNVVRBVElPTiAKZWZm ZWN0aW5nIHRoZSBiaW9sb2dpYyBjaGFuZ2UgaW4gaXRzIGhvc3Qgd2hpY2gg d2FzIHRoZW4gZ2VuZXRpY2FsbHkgY29udmV5ZWQuIApPbmUgcmVhc29uIHRo YXQgYXBlcyBjYW50IHRhbGsgaXMgYmVjYXVzZSB0aGUgc3RydWN0dXJlIG9m IHRoZWlyIGlubmVyIHRocm9hdHMgCmlzIHNpbXBseSBub3QgZGVzaWduZWQg dG8gZm9ybXVsYXRlIHdvcmRzLiBIZSBwb3N0dWxhdGVzIHRoYXQgYWx0ZXJh dGlvbiBpbiAKaW5uZXIgdGhyb2F0IHN0cnVjdHVyZSB3ZXJlIG9jY2FzaW9u ZWQgYnkgdmlydXMgaWxsbmVzcyAuLi4gQW5kIG5vdCBvY2Nhc2lvbiAuLi4g ClRoaXMgaWxsbmVzcyBtYXkgd2VsbCBoYXZlIGhhZCBhIGhpZ2ggcmF0ZSBv ZiBtb3J0YWxpdHkgYnV0IHNvbWUgZmVtYWxlIGFwZXMgCm11c3QgaGF2ZSBz dXJ2aXZlZCB0byBnaXZlIGJpcnRoIHRvIHRoZSB3dW5kZXIga2luZGVybi4g VGhlIGlsbG5lc3MgcGVyaGFwcyAKYXNzdW1lZCBhIG1vcmUgbWFsaWduYW50 IGZvcm0gaW4gdGhlIG1hbGUgYmVjYXVzZSBvZiBoaXMgbW9yZSBkZXZlbG9w ZWQgYW5kIApyaWdpZCBtdXNjdWxhciBzdHJ1Y3R1cmUgY2F1c2luZyBkZWF0 aCB0aHJvdWdoIHN0cmFuZ3VsYXRpb24gYW5kIHZlcnRlYnJhbCAKZnJhY3R1 cmUuIFNpbmNlIHRoZSB2aXJ1cyBpbiBib3RoIG1hbGUgYW5kIGZlbWFsZSBw cmVjaXBpdGF0ZXMgc2V4dWFsIGZyZW56eSAKdGhyb3VnaCBpcnJpdGF0aW9u IG9mIHNleCBjZW50ZXJzIGluIHRoZSBicmFpbiB0aGUgbWFsZXMgaW1wcmVn bmF0ZWQgdGhlIGZlbWFsZXMgCmluIHRoZWlyIGRlYXRoIHNwYXNtcyBhbmQg dGhlIGFsdGVyZWQgdGhyb2F0IHN0cnVjdHVyZWQgd2FzIGdlbmV0aWNhbGx5 IApjb252ZXllZC4gSGF2aW5nIGVmZmVjdGVkIGFsdGVyYXRpb25zIGluIHRo ZSBob3N0J3Mgc3RydWN0dXJlIHRoYXQgcmVzdWx0ZWQgaW4gYSAKbmV3IHNw ZWNpZXMgc3BlY2lhbGx5IGRlc2lnbmVkIHRvIGFjY29tb2RhdGUgdGhlIHZp cnVzIHRoZSB2aXJ1cyBjYW4gbm93IApyZXBsaWNhdGUgd2l0aG91dCBkaXN0 dXJiaW5nIHRoZSBtZXRhYm9saXNtIGFuZCB3aXRob3V0IGJlaW5nIHJlY29n bml6ZWQgYSAKdmlydXMuIEEgc3ltYmlvdGljIHJlbGF0aW9uc2hpcCBoYXMg bm93IGJlZW4gZXN0YWJsaXNoZWQgYW5kIHRoZSB2aXJ1cyBpcyBub3cgCmJ1 aWx0IGludG8gdGhlIGhvc3Qgd2hpY2ggc2VlcyB0aGUgdmlydXMgYXMgYSB1 c2VmdWwgcGFydCBvZiBpdHNlbGYuIFRoaXMgCnN1Y2Nlc3NmdWwgdmlydXMg Y2FuIG5vdyBzbmVlciBhdCBnYW5nc3RlciB2aXJ1c2VzIGxpa2Ugc21hbGwg cG94IGFuZCB0dXJuIHRoZW0gCmluIHRvIFRoZSBQYXN0ZXVyIEluc3RpdHV0 ZS4gQWNoIGp1bmdlbiB3aGF0IGEgc2NlbmUgaXMgaGVyZSAuLi4gdGhlIGFw ZXMgYXJlIAptb3VsdGluZyBmdXIgc3RlYW1pbmcgb2ZmIHRoZW0gZmVtYWxl cyB3aGltcGVyaW5nIGFuZCBzbG9iYmVyaW5nIG92ZXIgZHlpbmcgCm1hbGVz IGxpa2UgY293cyB3aXRoIGFmdG9zYSBhbmQgc28gYSBzdGluayBtdXNreSBz d2VldCByb3R0ZW4gbWV0YWwgc3Rpbmsgb2YgdGhlIApmb3JiaWRkZW4gZnJ1 aXQgaW4gdGhlIEdhcmRlbiBvZiBFZGVuLi4uIAoKVGhlIGNyZWF0aW9uIG9m IEFkYW0sIHRoZSBHYXJkZW4gb2YgRWRlbiwgQWRhbSdzIGZhaW50aW5nIHNw ZWxsIGR1cmluZyB3aGljaCBHb2QgCm1hZGUgRXZhIGZyb20gaGlzIGJvZHks IHRoZSBmb3JiaWRkZW4gZnJ1aXQgd2hpY2ggd2FzIG9mIGNvdXJzZSBrbm93 bGVkZ2Ugb2YgdGhlIAp3aG9sZSBzdGlua2luZyB0aGluZyBhbmQgbWlnaHQg YmUgdGVybWVkIHRoZSBmaXJzdCBXYXRlcmdhdGUgc2NhbmRhbCwgYWxsIHNs b3RzIApuZWF0bHkgaW50byBEb2MgU3RlaW5wbGF0eidzIHRoZW9yeS4gQW5k IHRoaXMgd2FzIGEgd2hpdGUgbXl0aC4gVGhpcyBsZWFkcyB0byAKdGhlIHN1 cHBvc2l0aW9uIHRoYXQgdGhlIHdvcmQgdmlydXMgYXNzdW1lZCBhIHNwZWNp YWxseSBtYWxpZ25hbnQgYW5kIGxldGhhbCAKZm9ybSBpbiB0aGUgd2hpdGUg cmFjZS4gV2hhdCB0aGVuIGFjY291bnRzIGZvciB0aGlzIHNwZWNpYWwgbWFs aWduYW5jZSBvZiB0aGUgCndoaXRlIHdvcmQgdmlydXM/IE1vc3QgbGlrZWx5 IGEgdmlydXMgbXV0YXRpb24gb2NjYXNpb25lZCBieSByYWRpb2FjdGl2aXR5 IC5BbGwgCmFuaW1hbCBhbmQgaW5zZWN0IGV4cGVyaW1lbnRzIHNvIGZhciBj YXJyaWVkIG91dCBpbmRpY2F0ZSB0aGF0IG11dGF0aW9ucyAKcmVzdWx0aW5n IGZyb20gcmFkaWF0aW9uIGFyZSB1bmZhdm9yYWJsZSB0aGF0IGlzIG5vdCBj b25kdWN0aXZlIHRvIHN1cnZpdmFsLiAKVGhlc2UgZXhwZXJpbWVudHMgcmVs YXRlIHRvIHRoZSBlZmZlY3RzIG9mIHJhZGlhdGlvbiBvbiBhdXRvbm9tb3Vz IGNyZWF0dXJlcy4gCldoYXQgYWJvdXQgdGhlIGVmZmVjdHMgb2YgcmFkaWF0 aW9uIG9uIHZpcnVzZXM/IEFyZSB0aGVyZSBub3QgcGVyaGFwcyBzb21lIHNv IApjbGFzc2lmaWVkIGFuZCBzZWNyZXQgZXhwZXJpbWVudHMgaGlkaW5nIGJl aGluZCBuYXRpb25hbCBzZWN1cml0eT8gVmlydXMgCm11dGF0aW9ucyBvY2Nh c2lvbmVkIGJ5IHJhZGlhdGlvbiBtYXkgYmUgcXVpdGUgZmF2b3JhYmxlIGZv ciB0aGUgdmlydXMuIEFuZCBzdWNoIAphIHZpcnVzIG1pZ2h0IHdlbGwgdmlv bGF0ZSB0aGUgZXF1aWxpYnJpdW0gd2l0aCB0aGUgaG9zdCBjZWxsLiBTbyBu b3cgd2l0aCB0aGUgCnRhcGUgcmVjb3JkZXJzIG9mIFdhdGVyZ2F0ZSBhbmQg dGhlIGZhbGwgb3V0IGZyb20gYXRvbWljIHRlc3RpbmcgdGhlIHZpcnVzIHN0 aXJzIAp1bmVhc3kgaW4gYWxsIHlvdXIgd2hpdGUgdGhyb2F0cy4gSXQgd2Fz IGEga2lsbGVyIHZpcnVzIG9uY2UuIEl0IGNvdWxkIGJlY29tZSBhIApraWxs ZXIgdmlydXMgYWdhaW4gYW5kIHJhZ2UgdGhyb3VnaCBjaXRpZXMgb2YgdGhl IHdvcmxkIGxpa2UgYSB0b3BwaW5nIGZvcmVzdCAKZmlyZS4gCgoiSXQgaXMg dGhlIGJlZ2lubmluZyBvZiB0aGUgZW5kLiIgVGhhdCB3YXMgdGhlIHJlYWN0 aW9uIG9mIGEgc2NpZW5jZSBhdHRhY2hlJyBhdCAKb25lIG9mIFdhc2hpbmd0 b24ncyBtYWpvciBlbWJhc3NpZXMgdG8gcmVwb3J0cyB0aGF0IGEgc3ludGhl dGljIGdlbmUgcGFydGljbGUgCmhhZCBiZWVuIHByb2R1Y2VkIGluIHRoZSBs YWJvcmF0b3J5IC4uLiJBbnkgc21hbGwgY291bnRyeSBjYW4gbm93IG1ha2Ug YSB2aXJ1cyAKZm9yIHdoaWNoIHRoZXJlIGlzIG5vIGN1cmUuIEl0IHdvdWxk IG9ubHkgdGFrZSBhIHNtYWxsIGxhYm9yYXRvcnkuIEFueSBzbWFsbCAKY291 bnRyeSB3aXRoIGdvb2QgYmlvY2hlbWlzdHMgY291bGQgZG8gaXQuIiAKCkFu ZCBwcmVzdW1lYWJseSBhbnkgYmlnIGNvdW50cnkgY291bGQgZG8gaXQgcXVp Y2tlciBhbmQgYmV0dGVyLiAKCkluIHRoZSBFbGVjdHJvbmljIFJldm9sdXRp b24gSSBhZHZhbmNlIHRoZSB0aGVvcnkgdGhhdCBhIHZpcnVzIElTIGEgdmVy eSBzbWFsbCAKdW5pdCBvZiB3b3JkIGFuZCBpbWFnZS4gSSBoYXZlIHN1Z2dl c3RlZCBub3cgc3VjaCB1bml0cyBjYW4gYmUgYmlvbG9naWNhbGx5IAphY3Rp dmF0ZWQgdG8gYWN0IGFzIGNvbW11bmljYWJsZSB2aXJ1cyBzdHJhaW5zLiBM ZXQgdXMgc3RhcnQgd2l0aCB0aHJlZSB0YXBlIApyZWNvcmRlcnMgaW4gVGhl IEdhcmRlbiBvZiBFZGVuLiBUYXBlIHJlY29yZGVyIDEgaXMgQWRhbS4gVGFw ZSByZWNvcmRlciAyIGlzIApFdmUuIFRhcGUgcmVjb3JkZXIgMyBpcyBHb2Qs IHdobyBkZXRlcmlvcmF0ZWQgYWZ0ZXIgSGlyb3NoaW1hIGludG8gdGhlIFVn bHkgCkFtZXJpY2FuLiBPciB0byByZXR1cm4gdG8gb3VyIHByaW1ldmlsIHNj ZW5lOiBUYXBlIHJlY29yZGVyIDEgaXMgdGhlIG1hbGUgYXBlIGluIAphIGhl bHBsZXNzIHNleHVhbCBmcmVuenkgYXMgdGhlIHZpcnVzIHN0cmFuZ2xlcyBo aW0uIFRhcGUgcmVjb3JkZXIgMiBpcyBhIGNvb2luZyAKZmVtYWxlIGFwZSB3 aG8gc3RyYWRkbGVzIGhpbS4gVGFwZSByZWNvcmRlciAzIGlzIERFQVRILiAK ClN0ZWlucGxhdHogcG9zdHVsYXRlcyB0aGF0IHRoZSB2aXJ1cyBvZiBiaW9s b2dpYyBtdXRhdGlvbiwgd2hpY2ggaGUgY2FsbHMgVmlydXMgCkItMjMsIGlz IGNvbnRhaW5lZCBpbiB0aGUgd29yZC4gVW5sb29zaW5nIHRoaXMgdmlydXMg ZnJvbSB0aGUgd29yZCBjb3VsZCBiZSBtb3JlIApkZWFkbHkgdGhhdCBsb29z aW5nIHRoZSBwb3dlciBvZiB0aGUgYXRvbS4gQmVjYXVzZSBhbGwgaGF0ZSBh bGwgcGFpbiBhbGwgZmVhciAKYWxsIGx1c3QgaXMgY29udGFpbmVkIGluIHRo ZSB3b3JkLiBQZXJoYXBzIHdlIGhhdmUgaGVyZSBpbiB0aGVzZSB0aHJlZSB0 YXBlIApyZWNvcmRlcnMgdGhlIHZpcnVzIG9mIGJpb2xvZ2ljIG11dGF0aW9u IHdoaWNoIG9uY2UgZ2F2ZSB1cyB0aGUgd29yZCBhbmQgaGFzIApoaWRkZW4g YmVoaW5kIHRoZSB3b3JkIGV2ZXIgc2luY2UuIEFuZCBwZXJoYXBzIHRocmVl IHRhcGUgcmVjb3JkZXJzIGFuZCBzb21lIApnb29kIGJpb2NoZW1pc3RzIGNh biB1bmxvb3NlIHRoaXMgZm9yY2UuIE5vdyBsb29rIGF0IHRoZXNlIHRocmVl IHRhcGUgcmVjb3JkZXJzIAphbmQgdGhpbmsgaW4gdGVybXMgb2YgdGhlIHZp cnVzIHBhcnRpY2xlLiBSZWNvcmRlciAxIGlzIHRoZSBwZXJzcGVjdGl2ZSBo b3N0IGZvciAKYW4gaW5mbHVlbnphIHZpcnVzLiBUYXBlIHJlY29yZGVyIG51 bWJlciAyIGlzIHRoZSBtZWFucyBieSB3aGljaCB0aGUgdmlydXMgZ2FpbnMg CmFjY2VzcyB0byB0aGUgaG9zdCwgaW4gdGhlIGNhc2Ugb2YgYSBmbHUgdmly dXMgYnkgZGlzb2x2aW5nIGEgaG9sZSBpbiBjZWxscyBvZiAKdGhlIGhvc3Qn cyByZXNwaXJhdG9yeSB0cmFjdC4gTnVtYmVyIDIsIGhhdmluZyBnYWluZWQg YWNjZXNzIHRvIHRoZSBjZWxsLiBsZWFkcyAKaW4gbnVtYmVyIDMuIE51bWJl ciAzIGlzIHRoZSBlZmZlY3QgcHJvZHVjZWQgaW4gdGhlIGhvc3QgYnkgdGhl IHZpcnVzOiBjb3VnaGluZywgCmZldmVyLCBpbmZsYW1hdGlvbi4gTlVNQkVS IDMgSVMgT0JKRUNUSVZFIFJFQUxJVFkgUFJPRFVDRUQgQlkgVEhFIFZJUlVT IElOIFRIRSAKSE9TVCBWaXJ1c2VzIG1ha2UgdGhlbXNlbHZlcyByZWFsLiBJ dCdzIGEgd2F5IHZpcnVzZXMgaGF2ZS4gV2Ugbm93IGhhdmUgdGhyZWUgCnRh cGUgcmVjb3JkZXJzLiBTbyB3ZSB3aWxsIG1ha2UgYSBzaW1wbGUgd29yZCB2 aXJ1cy4gTGV0IHVzIHN1cHBvc2UgdGhhdCBvdXIgCnRhcmdldCBpcyBhIHJp dmFsIHBvbGl0aWNpYW4uIE9uIHRhcGUgcmVjb3JkZXIgMSB3ZSB3aWxsIHJl Y29yZCBzcGVlY2hlcyBhbmQgCmNvbnZlcnNhdGlvbiBjYXJlZnVsbHkgZWRp dGluZyBpbiBzdGFtbWVycyBtaXNwcm9ub3VuY2luZywgaW5lcHQgcGhyYXNl cyAuLi4gdGhlIAp3b3JzdCBudW1iZXIgMSBjYW4gYXNzZW1ibGUuIG5vdyBv biB0YXBlIHJlY29yZGVyIDIgd2Ugd2lsbCBtYWtlIHNvIGEgbG92ZSB0YXBl IApieSBidWdnaW5nIGhpcyBiZWQgcm9vbS4gV2UgY2FuIHBvdGVudGlhdGUg dGhpcyB0YXBlIGJ5IHNwbGljaW5nIGl0IGluIHdpdGggYSAKc2V4dWFsIG9i amVjdCB0aGF0IGlzIGluYWRtaXNzaWJsZSBvciBpbmFjY2Vzc2libGUgb3Ig Ym90aCwgc2F5IHRoZSBzZW5hdG9yJ3MgCnRlZW4gYWdlIGRhdWdodGVyLiBP biB0YXBlIHJlY29yZGVyIDMgd2Ugd2lsbCByZWNvcmQgaGF0ZWZ1bCBkaXNh cHByb3Zpbmcgdm9pY2VzIAphbmQgc3BsaWNlIHRoZSB0aHJlZSByZWNvcmRp bmdzIHRvZ2V0aGVyIGF0IHZlcnkgc2hvcnQgaW50ZXJ2YWxzIGFuZCBwbGF5 IHRoZW0gCmJhY2sgdG8gdGhlIHNlbmF0b3IgYW5kIGhpcyBjb25zdGl0dWVu dHMuIFRoaXMgY3V0dGluZyBhbmQgcGxheWJhY2sgY2FuIGJlIHZlcnkgCmNv bXBsZXggaW52b2x2aW5nIHNwZWVjaCBzY3JhbWJsZXJzIGFuZCBiYXR0ZXJp ZXMgb2YgdGFwZSByZWNvcmRlcnMgYnV0IFRIRSAKQkFTSUMgUFJJTkNJUEFM IElTIFNJTVBMWSBTUExJQ0lORyBTRVggVEFQRSBBTkQgRElTQVBQUk9WQUwg VEFQRVMgSU4gVE9HRVRIRVIuIApPbmNlIHRoZSBhc3NvY2lhdGlvbnMgbGlu ZXMgYXJlIGVzdGFibGlzaGVkIHRoZXkgYXJlIGFjdGl2YXRlZCBldmVyeSB0 aW1lIHRoZSAKc2VuYXRvcidzIHNwZWVjaCBjZW50cmVzIGFyZSBhY3RpdmF0 ZWQgd2hpY2ggaXMgYWxsIHRoZSB0aW1lIGhlYXZhbiBoZWxwIHRoYXQgCnNv cnJ5IGJlc3RhcmQgaWYgYW55dGhpbmcgaGFwcGVuZWQgdG8gaGlzIGJpZyBt b3V0aC4gU28gaGlzIHRlZW4gYWdlIGRhdWdodGVyIApjcmF3bHMgYWxsIG92 ZXIgaGltIHdoaWxlIFRleGFzIHJhbmdlcnMgYW5kIGRlY2VudCBjaHVyY2gg Z29pbmcgd29tZW4gcmlzZSBmcm9tIAp0YXBlIHJlY29yZGVyIDMgc2NyZWFt aW5nICJXSEFUIEFSRSBZT1UgRE9JTkcgSU4gRlJPTlQgT0YgREVDRU5UIFBF T1BMRS4iIAoKVGhlIHRlZW4gYWdlIGRhdWdodGVyIGlzIGp1c3QgYSByZWZp bmVtZW50LiBCYXNpY2FsbHkgYWxsIHlvdSBuZWVkIGlzIHNleCAKcmVjb3Jk aW5ncyBvbiBudW1iZXIgMiBhbmQgaG9zdGlsZSByZWNvcmRpbmdzIG9uIG51 bWJlciAzLiBXaXRoIHRoaXMgc2ltcGxlIApmb3JtdWxhIGFueSBDSUEgc29u b2ZhYml0Y2ggY2FuIGJlY29tZSBHb2QgdGhhdCBpcyB0YXBlIHRhcGUgcmVj b3JkZXIgMy4gTm90aWNlIAp0aGUgZW1waGFzaXMgb24gc2V4dWFsIG1hdGVy aWFsIGluIGJ1cmdsYXJpZXMgYW5kIGJ1Z2dpbmcgaW4gdGhlIFdhdGVyZ2F0 ZSBjZXNzIApwb29sIC4uLkJ1Z2dpbmcgTWFydGluIEx1dGhlciBLaW5nJ3Mg YmVkIHJvb20gLi4uS2lzcyBLaXNzIGJhbmcgYmFuZyAuLi5BIGRlYWRseSAK YXNzYXNzaW5hdGlvbiB0ZWNobmlxdWUuIEF0IHRoZSB2ZXJ5IGxlYXN0IHN1 cmUgdG8gdW5lcnZlIGFuZCBwdXQgb3Bwb25lbnRzIGF0IGEgCmRpc2FkdmFu dGFnZS4gU28gdGhlIHJlYWwgc2NhbmRhbCBvZiBXYXRlcmdhdGUgdGhhdCBo YXMgbm90IGNvbWUgb3V0IHlldCBpcyBub3QgCnRoYXQgYmVkIHJvb21zIHdl cmUgYnVnZ2VkIGFuZCB0aGUgb2ZmaWNlcyBvZiBwc3ljaGlhdHJpc3RzIHJh bnNha2VkIGJ1dCBUSEUgClBSRUNJU0UgVVNFIFRIQVQgV0FTIEFORCBJUyBN QURFIE9GIFRISVMgU0VYVUFMIE1BVEVSSUFMLiBUaGlzIGZvcm11bGEgd29y a3MgCmJlc3Qgb24gYSBjbG9zZWQgY2lyY2l0LiBJZiBzZXh1YWwgcmVjb3Jk aW5ncyBhbmQgZmlsbSBhcmUgd2lkZXNwcmVhZCwgdG9sZXJhdGVkIAphbmQg cHVibGljYWx5IHNob3duIHRhcGUgcmVjb3JkZXIgMyBsb3NzZXMgaXN0IHBv d2VyLiBXaGljaCBwZXJoYXBzIGV4cGxhaW5zIHdoeSAKdGhlIE5peG9uIGFk bWluaXN0cmF0aW9uIGlzIG91dCB0byBjbG9zZSBkb3duIHNldCBmaWxtcyBh bmQgcmVlc3RhYmxpc2ggCmNlbnNvcnNoaXAgb24gYWxsIGZpbG1zIGFuZCBi b29rcy4gdG8ga2VlcCBjbG9zZSBjaXJjaXQgb24gdGFwZSByZWNvcmRlciAz LiAKCkFuZCB0aGlzIGJyaW5ncyB1cyB0byB0aGUgc3ViamVjdCBvZiBTRVgu IEluIHRoZSB3b3JkcyBvZiB0aGUgbGF0ZSBKb2huIE8nSGFyYSAKSSdtIGds YWQgeW91IGNhbWUgdG8gbWUgaW5zdGVhZCBvZiBvbmUgb2YgdGhvc2UgcXVh Y2tzIG9uIHRoZSB0b3AgZmxvb3IgCi4uLlBzeWNoaWF0cmlzdHMsIHByaWVz dHMgd2hhdGV2ZXIgdGhleSBjYWxsIHRoZW1zZWx2ZXMgdGhleSB3YW50IHRv IHR1cm4gaW4gb2ZmIAphbmQga2VlcCB0YXBlIHJlY29yZGVyIDMgaW4gYnVz aW5lc3MuIExldCdzIHR1cm4gaXQgb24uIEFsbCB5b3Ugc3dpbmdlcnMgdXNl IAp2aWRlbyBjYW1lcmFzIGFuZCB0YXBlIHJlY29yZGVycyB0byByZWNvcmQg YW5kIHBob3RvZ3JhcGggeW91ciBzZXNzaW9ucy4gTm93IGdvIApvdmVyIHRo ZSBzZXNzaW9uIGFuZCBwaWNrIG91dCB0aGUgc2V4aWVzdCBwaWVjZXMgeW91 IGtub3cgd2hlbiBpdCByZWFsbHkgCkhBUFBFTlMuIFJlaWNoIGJ1aWx0IGEg bWFjaGluZSB3aXRoIGVsZWN0cm9kZXMgYXR0YWNoZWQgdG8gdGhlIHBlbmlz IHRvIG1lYXN1cmUgCnRoaXMgb3JnYXNtIGNoYXJnZS4gSGVyZSBpcyB1bnBs ZWFzdXJhYmxlIG9yZ2FzbSBzYWdnaW5nIG9taW5vdXNseSBhcyB0YXBlIApy ZWNvcmRlciAzIGN1dHMgaW4uIEhlIGp1c3QgbWFkZSBpdC4gQW5kIGhlcmUg aXMgYSBwbGVhc3VyYWJsZSBvcmdhc20gd2F5IHVwIG9uIAp0aGUgZ3JhcGgu IFNvIHRha2UgdGhlIGJlc3Qgb2YgeW91ciBzZXNzaW9ucyBhbmQgaW52aXRl IHRoZSBuYWJvcnMgdG8gc2VlIGl0LiAKSXRzIHRoZSBuYWJvcmx5IHRoaW5n IHRvIGRvLiBUcnkgY3V0dGluZyB0aGVtIGluIHRvZ2V0aGVyIGFsdGVybmF0 aW5nIDI0IGZyYW1lcyAKcGVyIHNlY29uZC4gVHJ5IHNsb3cgZG93bnMgYW5k IHNwZWVkIHVwcy4gCgpCdWlsZCBhbmQgZXhwZXJpbWVudCB3aXRoIG9yZ29u ZSBhY2N1bXVsYXRvcnMuIEl0cyBzaW1wbHkgYSBib3ggb2YgYW55IHNoYXBl IG9yIApzaXplIGxpbmVkIHdpdGggaXJvbi4gWW91ciBpbnRyZXBpZCByZXBv cnRlciBhdCBhZ2UgMzcgYWNoaWV2ZWQgc3BvbnRhbmVvdXMgCm9yZ2FzbSBu byBoYW5kcyBpbiBhbiBvcmdvbmUgYWNjdW11bGF0b3IgYnVpbHQgaW4gYW4g b3JhbmdlIGdyb3ZlIGluIApQaGFyci9UZXhhcy4gSXQgd2FzIHRoZSBzbWFs bCBkaXJlY3QgYXBwbGljYXRpb24gYWNjdW11bGF0b3IgdGhhdCBkaWQgdGhl IHRyaWNrLiAKVGhhdCdzIHdoYXQgZXZlcnkgcmVkIGJsb29kZWQgYm95IGFu ZCBnaXJsIHNob3VsZCBiZSBkb2luZyBpbiB0aGVpciBiYXNlbWVudCAKd29y ayBzaG9wLiBUaGUgb3Jnb25lIGFjY3VtdWxhdG9yIGNvdWxkIGJlIGdyZWF0 bHkgcG90ZW50aWF0ZWQgYnkgdXNpbmcgCk1BR05FVElaRUQgSVJPTiB3aGlj aCBzZW5kcyBhIHBvd2VyZnVsIG1hZ25ldGljIGZpZWxkIHRocm91Z2ggdGhl IGJvZHkuIEFuZCAKc21hbGwgYWNjdW11bGF0b3JzIGxpa2UgcmF5IGd1bnMu IAoKVGhlcmUgaXMgVHdvIEd1biBNYWdnZWUgZ29pbmcgb2ZmIGluIGhpcyBw YW50cy4gVGhlIGd1biBmYWxscyBmcm9tIGhpcyBoYW5kLiAKUXVpY2sgYXMg aGUgd2FzIGhlIHdhcyBub3QgcXVpY2sgZW5vdWdoLiAKCkZvciBhIHNtYWxs IGRpcmVjdGlvbmFsIGFjY3VtdWxhdG9yIG9idGFpbiBzaXggcG93ZXJmdWwg bWFnbmV0cy4gQXJyYW5nZSB5b3VyIAptYWduZXRpemVkIHNxdWFyZXMgc28g dGhleSBmb3JtIGEgYm94LiBJbiBvbmUgZW5kIG9mIHRoZSBib3ggZHJpbGwg YSBob2xlIGFuZCAKaW5zZXJ0IGFuIGlyb24gdHViZS4gTm93IGNvdmVyIHRo ZSBib3ggYW5kIHR1YmUgd2l0aCBhbnkgb3JnYW5pYyBtYXRlcmlhbCAKLi4u cnViYmVyLGxlYXRoZXIsY2xvdGguIE5vdyB0cmFpbiB0aGUgdHViZSBvbiB5 b3VyIHByaXZhdGVzIGFuZCB0aGUgcHJpdmF0ZXMgb2YgCnlvdXIgZnJpZW5k cyBhbmQgbmFib3JzLiBJdHMgZ29vZCBmb3IgeW91bmcgYW5kIG9sZCBtYW4g YW5kIGJlYXN0IGFuZCBpcyBrbm93biAKYXMgU0VYLiBJdCBpcyBhbHNvIGtu b3duIHRvIGhhdmUgYSBkaXJlY3QgY29ubmVjdGlvbiB3aXRoIHdoYXQgaXMg a25vd24gYXMgTElGRS4gCkxldCdzIGdldCBTdC4gUGF1bCBvZmYgb3VyIGJh Y2tzIGFuZCB0YWtlIG9mZiB0aGUgYmlibGUgYmVsdC4gQW5kIHRlbGwgdGFw ZSAKcmVjb3JkZXIgMyB0byBjb3ZlciBoaXMgb3duIGRpcnR5IHRoaW5nLiBJ dCBzdGlua3MgZnJvbSB0aGUgZ2FyZGVuIG9mIEVkZW4gdG8gCldhdGVyZ2F0 ZS4gCgpJIGhhdmUgc2FpZCB0aGF0IHRoZSByZWFsIHNjYW5kYWwgb2YgV2F0 ZXJnYXRlIGlzIHRoZSB1c2UgbWFkZSBvZiByZWNvcmRpbmdzLiAKQW5kIHdo YXQgaXMgdGhpcyB1c2U/IEhhdmluZyBtYWRlIHRoZSByZWNvcmRpbmdzIGFz IGRlc2NyaWJlZCB3aGF0IHRoZW4gZG8gdGhleSAKZG8gd2l0aCB0aGVtPyAK CkFOU1dFUjogVEhFWSBQTEFZIFRIRU0gQkFDSyBPTiBMT0NBVElPTi4gCgpU aGV5IHBsYXkgdGhlc2UgcmVjb3JkaW5ncyBiYWNrIHRvIHRoZSB0YXJnZXQg aGltc2VsZiBpcyB0aGUgdGFyZ2V0IGlzIGFuIAppbmRpdmlkdWFsIGZyb20g cGFzc2luZyBjYXJzIGFuZCBhZ2VudHMgdGhhdCB3YWxrIGJ5IGhpbSBpbiB0 aGUgc3RyZWV0LiBUaGV5IApwbGF5IHRoZXNlIHJlY29yZGluZ3MgYmFjayBp biBoaXMgbmFib3Job29kLiBGaW5hbGx5IHRoZXkgcGxheSB0aGVtIGJhY2sg aW4gCnN1YndheXMsIHJlc3RhdXJhbnRzLCBhaXIgcG9ydHMgYW5kIG90aGVy IHB1YmxpYyBwbGFjZXMuCgpQTEFZQkFDSyBpcyB0aGUgZXNzZW50aWFsIGlu Z3JlZGllbnQuIAoKSSBoYXZlIG1hZGUgYSBudW1iZXIgb2YgZXhwZXJpbWVu dHMgd2l0aCBzdHJlZXQgcmVjb3JkaW5ncyBhbmQgcGxheWJhY2sgb3ZlciBh IApwZXJpb2Qgb2YgeWVhcnMgYW5kIHRoZSBzdGFydGxpbmcgZmFjdCBlbWVy Z2VzIFRIQVQgWU9VIERPIE5PVCBORUVEIFNFWCAKUkVDT1JESU5HUyBPUiBF VkVOIERPQ1RPUkVEIFRBUEVTIFRPIFBST0RVQ0UgRUZGRUNUUyBCWSBQTEFZ QkFDSy4gQU5ZIFJFQ09SRElOR1MgClBMQVlFRCBCQUNLIE9OIExPQ0FUSU9O IElOIFRIRSBNQU5ORVIgSSBXSUxMIE5PVyBERVNDUklCRSBDQU4gUFJPRFVD RSBFRkZFQ1RTLiAKTm8gZG91YnQgc2V4dWFsIGFuZCBkb2N0b3JlZCB0YXBl cyB3b3VsZCBiZSBtb3JlIHBvd2VyZnVsLiBCdXQgc29tZSBvZiB0aGUgcG93 ZXIgCmluIHRoZSB3b3JkIGlzIHJlbGVhc2VkIGJ5IHNpbXBsZSBwbGF5YmFj ayBhcyBhbnlvbmUgY2FuIHZlcmlmeSB3aG8gd2lsbCB0YWtlIAp0aGUgdGlt ZSB0byBleHBlcmltZW50IC4uLkkgcXVvdGUgZnJvbSBzb21lIG5vdGVzIG9u IHRoZXNlIHBsYXliYWNrIGV4cGVyaW1lbnRzLiAKCkZyaWRheSBKdWx5IDI4 LCAxOTcyIC4uLlBsYW4gMjggYXQgYSBnbGFuY2UgLi4uRmlyc3Qgc29tZSBy ZW1hcmtzIG9uIHRoZSB0YXBlIApyZWNvcmRlciBleHBlcmltZW50cyBzdGFy dGVkIGJ5IElhbiBTb21tZXJ2aWxsZSBpbiAxOTYuIHRoZXNlIGludm9sdmVk IG5vdCBvbmx5IApzdHJlZXQsIHB1YiwgcGFydHksIHN1YndheSByZWNvcmRp bmdzIGJ1dCBhbHNvIFBMQVlCQUNLIG9uIGxvY2F0aW9uLiB3aGVuIEkgCnJl dHVybmVkIHRvIExvbmRvbiBmcm9tIHRoZSBTdGF0ZXMgaW4gMTk2NiBoZSBo YWQgYWxyZWFkeSBhY2N1bXVsYXRlZCBhIApjb25zaWRlcmFibGUgYm9keSBv ZiBkYXRhIGFuZCBkZXZlbG9wZWQgYSB0ZWNobm9sb2d5LiBIZSBoYWQgZGlz Y292ZXJlZCB0aGF0IApwbGF5YmFjayBvbiBsb2NhdGlvbiBjYW4gcHJvZHVj ZSBkZWZpbml0ZSBlZmZlY3RzLiBQbGF5aW5nIGJhY2sgcmVjb3JkaW5ncyBv ZiBhbiAKYWNjaWRlbnQgY2FuIHByb2R1Y2UgYW5vdGhlciBhY2NpZGVudC4g SW4gMTk2NiBJIHdhcyBzdGF5aW5nIGF0IHRoZSBSdXNobW9yZSAKSG90ZWws IDExIFRyZWJvdmlyIFJvYWQsIEVhcmwncyBDb3VydCwgYW5kIHdlIGNhcnJp ZWQgb3V0IGEgbnVtYmVyIG9mIHRoZXNlIApvcGVyYXRpb25zOiBzdHJlZXQg cmVjb3JkaW5ncywgY3V0IGluIG9mIG90aGVyIG1hdGVyaWFsLCBwbGF5YmFj ayBpbiB0aGUgc3RyZWV0cyAKLi4uKEkgcmVjYWxsIEkgaGFkIGN1dCBpbiBm aXJlIGVuZ2luZXMgYW5kIHdoaWxlIHBsYXlpbmcgdGhpcyB0YXBlIGJhY2sg aW4gdGhlIApzdHJlZXQgZmlyZSBlbmdpbmVzIHBhc3NlZC4pIFRoZXNlIGV4 cGVyaW1lbnRzIHdlcmUgc3VtbWFyaXplZCBpbiBUSEUgSU5WSVNJQkxFIApH RU5FUkFUSU9OIC4uLiAoIEkgd29uZGVyIGlmIGFueWJvZHkgYnV0IENJQSBh Z2VudHMgcmVhZCB0aGlzIGFydGljbGUgb3IgdGhvdWdodCAKb2YgcHV0dGlu ZyB0aGVzZSB0ZWNobmlxdWVzIGludG8gYWN0dWFsIG9wZXJhdGlvbikgQW55 Ym9keSB3aG8gY2FycmllcyBvdXQgCnNpbWlsYXIgZXhwZXJpbWVudHMgb3Zl ciBhIHBlcmlvZCBvZiB0aW1lIHdpbGwgdHVybiB1cCBtb3JlICdjb2luY2lk ZW5jZXMnIHRoYW4gCnRoZSBsYXcgb2YgYXZlcmFnZXMgYWxsb3dzLiBUaGUg dGVjaCBjYW4gYmUgZXh0ZW5kZWQgYnkgdGFraW5nIHN0aWxsIG9yIG1vdmlu ZyAKcGljdHVyZXMgZHVyaW5nIHBsYXliYWNrLiBJIGhhdmUgZnJlcXVlbnRs eSBvYnNlcnZlZCB0aGlzIG9wZXJhdGlvbjogbWFrZSAKcmVjb3JkaW5ncyBh bmQgdGFrZSBwaWN0dXJlcyBvZiBzb21lIGxvY2F0aW9uIHlvdSB3aXNoIHRv IGRpc2NvbW9kZSBvciBkZXN0cm95LCAKbm93IHBsYXkgcmVjb3JkaW5ncyBi YWNrIGFuZCB0YWtlIG1vcmUgcGljdHVyZXMsIHdpbGwgcmVzdWx0IGluIGFj Y2lkZW50cywgCmZpcmVzLCByZW1vdmFscy4gZXNwZWNpYWxseSB0aGUgbGF0 dGVyIFRoZSB0YXJnZXQgbW92ZXMuIFdlIGNhcnJpZWQgb3V0IHRoaXMgCm9w ZXJhdGlvbiB3aXRoIHRoZSBTY2llbnRvbG9neSBDZW50ZXIgYXQgMzcgRml0 enJveSBTdHJlZXQuIFNvbWUgbW9udGhzIGxhdGVyIAp0aGV5IG1vdmVkIHRv IDY4IFRvdHRlbmhhbSBDb3VydCBSb2FkLCB3aGVyZSBhIHNpbWlsYXIgb3Bl cmF0aW9uIHdhcyBjYXJyaWVkIApvdXQuLi4gCgpIZXJlIGlzIGEgc2FtcGxl IG9wZXJhdGlvbiBjYXJyaWVkIG91dCBhZ2FpbnN0IFRoZSBNb2thIEJhciBh dCAyOSBGcml0aCBTdHJlZXQgCkxvbmRvbiBXMSBiZWdpbm5pbmcgb24gQXVn dXN0IDMsIDE5NzIgLi4uUmV2ZXJzZSBUaHVyc2RheSAuLi5SZWFzb24gZm9y IApvcGVyYXRpb24gd2FzIG91dHJhZ2VvdXMgYW5kIHVucHJvdm9rZWQgZGlz Y291cnRlc3kgYW5kIHBvaXNvbmVkIGNoZWVzZSBjYWtlLi4uIAoKTm93IHRv IGNsb3NlIGluIG9uIFRoZSBNb2thIEJhci4gUmVjb3JkLiBUYWtlIHBpY3R1 cmVzLiBTdGFuZCBhcm91bmQgb3V0c2lkZS4gCkxldCB0aGVtIHNlZSBtZS4g VGhleSBhcmUgc2VldGhpbmcgYXJvdW5kIGluIHRoZXJlLiBUaGUgaG9ycmli bGUgb2xkIHByb3ByaWV0b3IsIApoaXMgZnJpenp5IGhhaXJlZCB3aWZlIGFu ZCBzbGFjayBqYXdlZCBzb24sIHRoZSBzbmFybGluZyBjb3VudGVyIG1hbi4g SSBoYXZlIAp0aGVtIGFuZCB0aGV5IGtub3cgaXQuIAoKIllvdSBib3lzIGhh dmUgYSByZXAgZm9yIG1ha2luZyB0cm91YmxlLiBXZWxsIGNvbWUgb24gb3V0 IGFuZCBtYWtlIHNvbWUuIFB1bGwgYSAKY2FtZXJhIGJyZWFraW5nIGFjdCBh bmQgSSdsbCBjYWxsIGEgQm9iYnkuIEkgZ290dGEgcmlnaHQgdG8gZG8gd2hh dCBJIGxpa2UgaW4gCnRoZSBwdWJsaWMgc3RyZWV0LiIgCgpJZiBpdCBjYW1l IHRvIHRoYXQgSSB3b3VsZCBleHBsYWluIHRvIHRoZSBwb2xpY2VtYW4gdGhh dCBJIHdhcyB0YWtpbmcgc3RyZWV0IApyZWNvcmRpbmdzIGFuZCBtYWtpbmcg YSBkb2N1bWVudGFyeSBvZiBTb2hvLiBUaGlzIHdhcyBhZnRlciBhbGwgTG9u ZG9uJ3MgRmlyc3QgCkV4cHJlc3NvIEJhciB3YXMgaXQgbm90PyBJIHdhcyBk b2luZyB0aGVtIGEgZmF2b3IuIFRoZXkgY291bGRudCBzYXkgd2hhdCBib3Ro IG9mIAp1cyBrbmV3IHdpdGhvdXQgYmVpbmcgcmlkaWN1bG91cy4uLiAKCiJI ZSdzIG5vdCBtYWtpbmcgYW55IGRvY3VtZW50YXJ5LiBIZSdzIHRyeWluZyB0 byBibG93IHVwIHRoZSBjb2ZmZWUgbWFjaGluZSwgCnN0YXJ0IGEgZmlyZSBp biB0aGUga2l0Y2hlbiwgc3RhcnQgZmlnaHRzIGluIGhlcmUsIGdldCB1cyBh IGNpdGF0aW9uIGZyb20gdGhlIApCb2FyZCBvZiBIZWFsdGguIiAKClllcyBJ IGhhZCB0aGVtIGFuZCB0aGV5IGtuZXcgaXQuIEkgbG9va2VkIGluIGF0IHRo ZSBvbGQgUHJvcCBhbmQgc21pbGVkIGFzIGlmIGhlIAp3b3VsZCBsaWtlIHdo YXQgSSB3YXMgZG9pbmcuIFBsYXliYWNrIHdvdWxkIGNvbWUgbGF0ZXIgd2l0 aCBtb3JlIHBpY3R1cmVzLiBJIAp0b29rIG15IHRpbWUgYW5kIHN0cm9sbGVk IG92ZXIgdG8gdGhlIEJyZXdlciBTdHJlZXQgTWFya2V0IHdoZXJlIEkgcmVj b3JkZWQgYSAKdGhyZWUgY2FyZCBNb250ZSBHYW1lLiBOb3cgeW91IHNlZSBp dCBub3cgeW91IGRvbnQuCgpQbGF5YmFjayB3YXMgY2FycmllZCBvdXQgYSBu dW1iZXIgb2YgdGltZXMgd2l0aCBtb3JlIHBpY3R1cmVzLiBUaGVpciBidXNp bmVzcyAKZmVsbCBvZmYuIFRoZXkga2VwdCBzaG9ydGVyIGFuZCBzaG9ydGVy IGhvdXJzLiBPY3RvYmVyIDMwLCAxOTcyIFRoZSBNb2thIEJhciAKY2xvc2Vk LiBUaGUgbG9jYXRpb24gd2FzIHRha2VuIG92ZXIgYnkgVGhlIFF1ZWVucyBT bmFjayBCYXIuIAoKTm93IHRvIGFwcGx5IHRoZSAzIHRhcGUgcmVjb3JkZXIg YW5hbG9neSB0byB0aGlzIHNpbXBsZSBvcGVyYXRpb24uIFRhcGUgcmVjb3Jk ZXIgCjEgaXMgdGhlIE1va2EgQmFyIGl0c2VsZiBpdCBpcyBwcmlzdGluZSBj b25kaXRpb24uIFRhcGUgcmVjb3JkZXIgMiBpcyBNWSAKUkVDT1JESU5HUyBv ZiB0aGUgTW9rYSBCYXIgdmljaW5pdHkuIFRoZXNlIHJlY29yZGluZ3MgYXJl IEFDQ0VTUy4gVGFwZSByZWNvcmRlciAKMiBpbiB0aGUgR2FyZGVuIG9mIEVk ZW4gd2FzIEV2ZSBtYWRlIGZyb20gQWRhbS4gU28gYSByZWNvcmRpbmcgbWFk ZSBmcm9tIHRoZSAKTW9rYSBCYXIgaXMgYSBwaWVjZSBvZiB0aGUgTW9rYSBC YXIuIFRoZSByZWNvcmRpbmcgb25jZSBtYWRlLCB0aGlzIHBpZWNlIGJlY29t ZXMgCmF1dG9ub21vdXMgYW5kIG91dCBvZiB0aGVpciBjb250cm9sLiBUYXBl IHJlY29yZGVyIDMgaXMgUExBWUJBQ0suIEFkYW0gCmV4cGVyaWVuY2VzIHNo YW1lIHdoZW4gaGlzIERJU0NSQUNFRlVMIEJFSEFWSU9SIElTIFBMQVlFRCBC QUNLIFRPIEhJTSBCWSB0YXBlIApyZWNvcmRlciAzIHdoaWNoIGlzIEdvZC4g QnkgcGxheWluZyBiYWNrIG15IHJlY29yZGluZ3MgdG8gdGhlIE1va2EgQmFy IHdoZW4gSSAKd2FudCBhbmQgd2l0aCBhbnkgY2hhbmdlcyBJIHdpc2ggdG8g bWFrZSBpbiB0aGUgcmVjb3JkaW5ncywgSSBiZWNvbWUgR29kIGZvciAKdGhp cyBsb2NhbC4gSSBlZmZlY3QgdGhlbS4gVGhleSBjYW5ub3QgZWZmZWN0IG1l LiBBbmQgd2hhdCBwYXJ0IGRvIHBob3RvcyB0YWtlIAppbiB0aGlzIG9wZXJh dGlvbj8gUmVjYWxsIHdoYXQgSSBzYWlkIGVhcmxpZXIgYWJvdXQgd3JpdHRl biBhbmQgc29wa2VuIHdvcmQuIFRIRSAKV1JJVFRFTiBXT1JEIElTIEFOIElN QUdFIElTIEEgUElDVFVSRSAuIFRoZSBzcG9rZW4gd29yZCBjb3VsZCBiZSBk ZWZpbmVkIGFzIGFueSAKdmVyYmFsIHVuaXRzIHRoYXQgY29ycmVzcG9uZCB0 byB0aGVzZSBwaWN0dXJlcyBhbmQgY291bGQgYmUgaW4gZmFjdCBiZSBleHRl bmRlZCAKdG8gQU5ZIFNPVU5EIFVOSVRTIFRIQVQgQ09SUkVTUE9ORCB0byB0 byB0aGUgcGljdHVyZXMgLi4uUmVjb3JkaW5ncyBhbmQgcGljdHVyZXMgCmFy ZSB0YXBlIHJlY29yZGVyIDIgd2hpY2ggaXMgYWNjZXNzLiBUYXBlIHJlY29y ZGVyIDMgaXMgcGxheWJhY2sgYW5kICdyZWFsaXR5Jy4gCkZvciBleGFtcGxl IHN1cHBvc2UgeW91ciBiYXRocm9vbSBhbmQgYmVkIHJvb20gYXJlIGJ1Z2dl ZCBhbmQgcmlnZ2VkIHdpdGggaGlkZGVuIAppbmZyYSByZWQgY2FtZXJhcy4g VGhlc2UgcGljdHVyZXMgYW5kIHJlY29yZGluZ3MgZ2l2ZSBhY2Nlc3MuIFlv dSBtYXkgbm90IApleHBlcmllbmNlIHNoYW1lIGR1cmluZyBkZWZlY2F0aW9u IGFuZCBpbnRlcmNvdXJzZSBidXQgeW91IG1heSB3ZWxsIGV4cGVyaWVuY2Ug CnNoYW1lIHdoZW4gdGhlc2UgcmVjb3JkaW5ncyBhcmUgcGxheWVkIGJhY2sg dG8gYSBkaXNhcHByb3ZpbmcgYXVkaWVuY2UuIAoKTm93IGxldCB1cyBjb25z aWRlciB0aGUgYXJlbmEgb2YgcG9saXRpY3MgYW5kIHRoZSBhcHBsaWNhdGlv bnMgb2YgYnVnZ2luZyBpbiAKdGhpcyBhcmVhLiBPZiBjb3Vyc2UgYW55IG51 bWJlciBvZiByZWNvcmRpbmdzIGFyZSBpbW1lZGlhdGVseSBhdmFpbGFibGUg c2luY2UgCnBvbGl0aWNpYW5zIG1ha2Ugc3BlZWNoZXMgb24gVFYuIEhvd2V2 ZXIsIHRoZXNlIHJlY29yZGluZ3MgZG8gbm90IGdpdmUgYWNjZXNzLiAKVGhl IG1hbiB3aG8gaXMgbWFraW5nIGEgc3BlZWNoIGlzIG5vdCByZWFsbHkgdGhl cmUuIENvbnNlcXVlbnRseSBtb3JlIGludGltYXRlIApvciBhdCBsZWFzdCBw cml2YXRlIHJlY29yZGluZ3MgYXJlIG5lZWRlZCB3aGljaCBpcyB3aHkgdGhl IFdhdGVyZ2F0ZSAKY29uc3BpcmF0b3JzIGhhZCB0byByZXNvcnQgdG8gYnVy Z3VsYXJ5LiBBIHByZXNpZGVudGlhbCBjYW5kaWRhdGUgaXMgbm90IGEgCnNp dHRpbmcgZHVjayBsaWtlIGEgTW9rYSBCYXIuIEhlIGNhbiBtYWtlIGFueSBu dW1iZXIgb2YgcmVjb3JkaW5ncyBvZiBoaXMgCm9wcG9uZW50cy4gU28gdGhl IGdhbWUgaXMgY29tcGxleCBhbmQgY29tcGV0aXRpdmUgd2l0aCByZWNvcmRp bmdzIG1hZGUgYnkgYm90aCAKc2lkZXMuIFRoaXMgbGVhZHMgdG8gbW9yZSBz b3BoaXN0aWNhdGVkIHRlY2huaXF1ZXMgdGhlIGRldGFpbHMgb2Ygd2hpY2gg aGF2ZSB5ZXQgCnRvIGNvbWUgb3V0LiAKClRoZSBiYXNpYyBvcGVyYXRpb24g b2YgcmVjb3JkaW5nIHBpY3R1cmVzLCBtb3JlIHBpY3R1cmVzIGFuZCBwbGF5 YmFjayBjYW4gYmUgCmNhcnJpZWQgb3V0IGJ5IGFueW9uZSB3aXRoIGEgcmVj b3JkZXIgYW5kIGEgY2FtZXJhLiBBbnkgbnVtYmVyIGNhbiBwbGF5LiAKTWls bGlvbnMgb2YgcGVvcGxlIGNvdWxkIG51bGxpZnkgdGhlIGNvbnRyb2wgc3lz dGVtIHdoaWNoIHRob3NlIHdobyBhcmUgYmVoaW5kIApXYXRlcmdhdGUgYW5k IE5peG9uIGFyZSBhdHRlbXB0aW5nIHRvIGltcG9zZS4gTGlrZSBhbGwgY29u dHJvbCBzeXN0ZW1zIGl0IApkZXBlbmRzIG9uIG1haW50YWluaW5nIGEgbW9u b3BvbHkgcG9zaXRpb24uIElmIGFueWJvZHkgY2FuIGJlIHRhcGUgcmVjb3Jk ZXIgMyAKdGhlbiB0YXBlIHJlY29yZGVyIDMgbG9zZXMgcG93ZXIuIEdvZCBt dXN0IGJlIFRIRSBHT0QuIAoKRUxFQ1RST05JQyBSRVZPTFVUSU9OIAoKSW4g VEhFIElOVklTSUJMRSBHRU5FUkFUSU9OIGZpcnN0IHB1Ymxpc2hlZCBpbiBJ VCBhbmQgaW4gdGhlIExvcyBBbmdlbGVzIEZyZWUgClByZXNzIGluIDE5NjYg YW5kIHJlcHJpbnRlZCBpbiBUSEUgSk9CLCBJIGNvbnNpZGVyIHRoZSBwb3Rl bnRpYWwgb2YgdGhvdXNhbmRzIG9mIApwZW9wbGUgd2l0aCByZWNvcmRlcnMs IHBvcnRhYmxlIGFuZCBzdGF0aW9uYXJ5LCBtZXNzYWdlcyBwYXNzZWQgYWxv bmcgbGlrZSAKc2lnbmFsIGRydW1zLCBhIHBhcm9keSBvZiB0aGUgUHJlc2lk ZW50J3Mgc3BlZWNoIHVwIGFuZCBkb3duIHRoZSBiYWxjb25pZXMsIGluIAph bmQgb3V0IG9wZW4gd2luZG93cywgdGhyb3VnaCB3YWxscywgb3ZlciBjb3Vy dHlhcmRzLCB0YWtlbiB1cCBieSBiYXJraW5nIGRvZ3MsIAptdXR0ZXJpbmcg YnVtcywgbXVzaWMsIHRyYWZmaWMgZG93biB3aW5keSBzdHJlZXRzLCBhY3Jv c3MgcGFya3MgYW5kIHNvY2NlciAKZmllbGRzLiBJbGx1c2lvbiBpcyBhIHJl dm9sdXRpb25hcnkgd2VhcG9uOgoKVE8gU1BSRUFEIFJVTU9SUyAKClB1dCB0 ZW4gb3BlcmF0b3JzIHdpdGggY2FyZWZ1bGx5IHByZXBhcmVkIHJlY29yZGlu Z3Mgb3V0IGF0IHJ1c2ggaG91ciBhbmQgc2VlIApob3cgcXVpY2sgdGhlIHdv cmRzIGdldCBhcm91bmQuIFBlb3BsZSBkb24ndCBrbm93IHdoZXJlIHRoZXkg aGVhcmQgaXQgYnV0IHRoZXkgCmhlYXJkIGl0LiAKClRPIERJU0NSRURJVCBP UFBPTkVOVFMgCgpUYWtlIGEgcmVjb3JkZWQgV2FsbGFjZSBzcGVlY2gsIGN1 dCBpbiBzdGFtbWVyaW5nIGNvdWdocyBzbmVlemVzIGhpY2NvdWdocyAKc25h cmxzIHBhaW4gc2NyZWFtcyBmZWFyIHdoaW1wZXJpbmdzIGFwb3BsZWN0aWMg c3B1dHRlcmluZ3Mgc2xvYmJlcmluZyBkcm9vbGluZyAKaWRpb3Qgbm9pc2Vz IHNleCBhbmQgYW5pbWFsIHNvdW5kIGVmZmVjdHMgYW5kIHBsYXkgaXQgYmFj ayBpbiB0aGUgc3RyZWV0cyBzdWJ3YXkgCnN0YXRpb25zIHBhcmtzIHBvbGl0 aWNhbCByYWxsaWVzLiAKCkFTIEEgRlJPTlQgTElORSBXRUFQT04gVE8gUFJP RFVDRSBBTkQgRVNDQUxBVEUgUklPVFMgCgpUaGVyZSBpcyBub3RoaW5nIG15 c3RpY2FsIGFib3V0IHRoaXMgb3BlcmF0aW9uLiBSaW90IHNvdW5kIGVmZmVj dHMgY2FuIHByb2R1Y2UgCmFuIGFjdHVhbCByaW90IGluIGEgcmlvdCBzaXR1 YXRpb24uIFJFQ09SREVEIFBPTElDRSBXSVNUTEVTIFdJTEwgRFJBVyBDT1BT LiAKUkVDT1JERUQgR1VOU0hPVFMsIEFORCBUSEVJUiBHVU5TIEFSRSBPVVQu IAoKIk1ZIEdPRCwgVEhFWSdFIEtJTExJTkcgVVMuIiAKCkEgZ3VhcmRzbWFu IHNhaWQgbGF0ZXI6ICJJIGhlYXJkIGFuZCBzYXcgbXkgYnVkZHkgZ28gZG93 biwgaGlzIGZhY2UgY292ZXJlZCBpbiAKYmxvb2QgKHR1cm5lZCBvdXQgaGUn ZCBiZWVuIGhpdCBieSBhIHN0b25lIGZyb20gYSBzbGluZyBzaG90KSBhbmQg SSB0aG91Z2h0LCAKd2VsbCB0aGlzIGlzIGl0LiIgQkxPT0RZIFdFRE5FU0RB WS4gQSBEQVpFRCBBTUVSSUNBIENPVU5URUQgMjMgREVBRCBBTkQgMzIgCldP VU5ERUQsIDYgQ1JJVElDQUxMWS4gCgpIZXJlIGlzIGEgcnVuIG9mIHRoZSBt aWxsLCBwcmUtcmlvdCBzaXR1YXRpb24uIFByb3Rlc3RvcnMgaGF2ZSBiZWVu IHVyZ2VkIHRvIApkZW1vbnN0cmF0ZSBwZWFjZWZ1bGx5LCBwb2xpY2UgYW5k IGd1YXJkc21lbiB0byBleGVyY2lzZSByZXN0cmFpbnQuIFRlbiB0YXBlIApy ZWNvcmRlcnMgc3RyYXBwZWQgdW5kZXIgdGhlaXIgY29hdHMsIHBsYXliYWNr LCBhbmQgcmVjb3JkIGNvbnRyb2xsZWQgZnJvbSBsYXBlbCAKYnV0dG9ucy4g VGhleSBoYXZlIHByZS1yZWNvcmRlZCByaW90IHNvdW5kIGVmZmVjdHMgZnJv bSBDaGljYWdvLCBQYXJpcywgTWV4aWNvIApDaXR5LCBLZW50L09oaW8uIElm IHRoZXkgYWRqdXN0IHNvdW5kIGxldmVscyBvZiByZWNvcmRpbmdzIHRvIHN1 cnJvdW5kaW5nIHNvdW5kIApsZXZlbHMsIHRoZXkgd2lsbCBub3QgYmUgZGV0 ZWN0ZWQuIFBvbGljZSBzY3VmZmxlIHdpdGggdGhlIGRlbW9uc3RyYXRvcnMu IFRoZSAKb3BlcmF0b3JzIGNvbnZlcmdlLiB0dXJuIG9uIENoaWNhZ28gcmVj b3JkLCBwbGF5IGJhY2ssIG1vdmUgb24gdG8gdGhlIG5leHQgCnNjdWZmbGVz LCByZWNvcmQgcGxheWJhY2ssIGtlZXAgbW92aW5nLiBUaGluZ3MgYXJlIGhv dHRpbmcgdXAsIGEgY29wIGlzIGRvd24gCmdyb2FuaW5nLiBzaHJpbGwgY2hv cnVzIG9mIHJlY29yZGVkIHBpZyBzcXVlYWxzIGFuZCBwYXJvZHkgZ3JvYW5z LiAKCkNvdWxkIHlvdSBjb29sIGEgcmlvdCBieSByZWNvcmRpbmcgdGhlIGNh bG1lc3QgY29wIGFuZCB0aGUgbW9zdCByZWFzb25hYmxlIApkZW1vbnN0cmF0 b3I/IE1heWJlISBIb3dldmVyLCBpdCdzIGEgbG90IGVhc2llciB0byBzdGFy dCB0cm91YmxlIHRoYXQgdG8gc3RvcCAKaXQuIEp1c3QgcG9pbnRpbmcgb3V0 IHRoYXQgY3V0L3VwcyBvbiB0aGUgdGFwZSByZWNvcmRlciBjYW4gYmUgdXNl ZCBhcyBhIHdlYXBvbi4gCllvdSdsbCBvYnNlcnZlIHRoYXQgdGhlIG9wZXJh dG9ycyBhcmUgbWFraW5nIGEgY3V0dXAgYXMgdGhleSBnby4gVGhleSBhcmUg CmN1dHRpbmcgaW4gQ2hpY2FnbywgUGFyaXMsIE1leGljbyBDaXR5LCBLZW50 IE9oaW8gd2l0aCB0aGUgcHJlc2VudCBzb3VuZCBlZmZlY3RzIAphdCByYW5k b20gYW5kIHRoYXQgaXMgYSBjdXR1cC4gCgpBUyBBIExPTkcgUkFOR0UgV0VB UE9OIFRPIFNDUkFNQkxFIEFORCBOVUxMSUZZIEFTU09DSUFUSU9OQUwgTElO RVMgUFVUIERPV04gQlkgCk1BU1MgTUVESUEgCgpUaGUgY29udHJvbCBvZiB0 aGUgbWFzcyBtZWRpYSBkZXBlbmRzIG9uIGxheWluZyBkb3duIGxpbmVzIG9m IGFzc29jaWF0aW9uLiBXaGVuIAp0aGUgbGluZXMgYXJlIGN1dCB0aGUgYXNz b2NpYXRpb25hbCBjb25uZWN0aW9ucyBhcmUgYnJva2VuLgoKUHJlc2lkZW50 IEpvaG5zb24gYnVyc3QgaW50byBhIHN3YW5rIGFwYXJ0bWVudCwgaGVsZCB0 aHJlZSBnaXJscyBhdCBndW5wb2ludCwgMjYgCm1pbGVzIG5vcnRoIG9mIFNh aWdvbiB5ZXN0ZXJkYXkuIAoKeW91IGNhbiBjdXQgdGhlIG11dHRlciBsaW5l IG9mIHRoZSBtYXNzIG1lZGlhIGFuZCBwdXQgdGhlIGFsdGVyZWQgbXV0dGVy IGxpbmUgCm91dCBpbiB0aGUgc3RyZWV0cyB3aXRoIGEgdGFwZSByZWNvcmRl ci4gQ29uc2lkZXIgdGhlIG11dHRlciBsaW5lIG9mIHRoZSBkYWlseSAKcHJl c3MuIEl0IGdvZXMgdXAgd2l0aCB0aGUgbW9ybmluZyBwYXBlcnMsIG1pbGxp b25zIG9mIHBlb3BsZSByZWFkIHRoZSBzYW1lIAp3b3Jkcy4gSW4gZGlmZmVy ZW50IHdheXMsIG9mIGNvdXJzZS4gQSBtb3Rpb24gcHJhaXNpbmcgTXIuIENh bGxhZ2hhbidzIGFjdGlvbiBpbiAKYmFubmluZyB0aGUgU291dGggQWZyaWNh biBDcmlja2V0IFRvdXIgaGFzIHNwb2lsZWQgdGhlIGNvbG9uZWwncyBicmVh a2Zhc3QuIEFsbCAKcmVhY3Rpbmcgb25lIHdheSBvciBhbm90aGVyIHRvIHRo ZSBwYXBlciB3b3JsZCBvciB1bnNlZW4gZXZlbnRzIHdoaWNoIGJlY29tZXMg YW4gCmludGVncmFsIHBhcnQgb2YgeW91ciByZWFsaXR5LiBZb3Ugd2lsbCBu b3RpY2UgdGhhdCB0aGlzIHByb2Nlc3MgaXMgY29udGludWFsbHkgCnN1Ympl Y3QgdG8gcmFuZG9tIGp1eHRhcG9zdGF0aW9uLiBKdXN0IHdoYXQgc2lnbiBk aWQgeW91IHNlZSBpbiB0aGUgR3JlZW4gUGFyayAKc3RhdGlvbiBhcyB5b3Ug Z2xhbmNlZCB1cCBmcm9tIHRoZSBQRU9QTEU/IEp1c3Qgd2hvIGNhbGxlZCBh cyB5b3Ugd2VyZSByZWFkaW5nIAp5b3VyIGxldHRlciBpbiB0aGUgVElNRVM/ IFdoYXQgd2VyZSB5b3UgcmVhZGluZyB3aGVuIHlvdXIgd2lmZSBicm9rZSBh IGRpc2ggaW4gCnRoZSBraXRjaGVuPyBBbiB1bnJlYWwgcGFwZXIgd29ybGQg YW5kIHlldCBjb21wbGV0ZWx5IHJlYWwgYmVjYXVzZSBpdCBpcyAKYWN0dWFs bHkgaGFwcGVuaW5nLiBNdXR0ZXIgbGluZSBvZiB0aGUgRVZFTklORyBORVdT LCBUVi4gRml4IHlvdXJzZWxmIG9uIAptaWxsaW9ucyBvZiBwZW9wbGUgYWxs IHdhdGNoaW5nIEplc3NlIEphbWVzIG9yIHRoZSBWaXJnaW5pYW4gYXQgdGhl IHNhbWUgdGltZS4gCkludGVybmF0aW9uYWwgbXV0dGVyIGxpbmUgb2YgdGhl IHdlZWtseSBuZXdzIG1hZ2F6aW5lIGFsd2F5cyBkYXRlZCBhIHdlZWsgYWhl YWQuIApIYXZlIHlvdSBub3RpY2VkIGl0J3MgdGhlIGtpc3Mgb2YgZGVhdGgg dG8gYmUgb24gdGhlIGZyb250IGNvdmVyIG9mIFRJTUUuIE1hZGFtIApOaHUg d2FzIHRoZXJlIHdoZW4gaGVyIGh1c2JhbmQgd2FzIGtpbGxlZCBhbmQgaGVy IGdvdmVybm1lbnQgZmVsbC4gVmVyd29lcmQgd2FzIApvbiB0aGUgZnJvbnQg Y292ZXIgb2YgVElNRSB3aGVuIGEgZGVtb24gdGFwZXdvcm0gZ2F2ZSB0aGUg b3JkZXIgZm9yIGhpcyBkZWF0aCAKdGhyb3VnaCBhIG1lc3NlbmdlciBvZiB0 aGUgc2FtZS4gUmVhZCB0aGUgQmlibGUsIGtlcHQgdG8gaGltc2VsZiwgbm8g YmFkIGhhYml0cywgCnlvdSBrbm93IHRoZSB0eXBlLiBPbGQgcmVsaWFibGUs IHJlYWQgYWxsIGFib3V0IGl0LiAKClNvIHN0aXIgaW4gbmV3cyBzdG9yaWVz LCBUViBwbGF5cywgc3RvY2sgbWFya2V0IHF1b3RhdGlvbnMsIGFkdmVydHMg YW5kIHB1dCB0aGUgCmFsdGVyZWQgbXV0dGVyIGxpbmUgb3V0IGluIHRoZSBz dHJlZXRzLiAKClRoZSB1bmRlcmdyb3VuZCBwcmVzcyBzZXJ2ZXMgYXMgdGhl IG9ubHkgZWZmZWN0aXZlIGNvdW50ZXIgdG8gYSBncm93aW5nIHBvd2VyIAph bmQgbW9yZSBzb3BoaXN0aWNhdGVkIHRlY2huaXF1ZSB1c2VkIGJ5IGVzdGFi bGlzaG1lbnQgbWFzcyBtZWRpYSB0byBmYWxzaWZ5LCAKbWlzcmVwcmVzZW50 LCBtaXNxdW90ZSwgcnVsZSBvdXQgb2YgY29uc2lkZXJhdGlvbiBhcyBhIFBS SU9SSSByaWRpY3Vsb3VzIG9yIApzaW1wbHkgaWdub3JlIGFuZCBibG90IG91 dCBvZiBleGlzdGVuY2U6IGRhdGEsIGJvb2tzLCBkaXNjb3ZlcmllcyB0aGF0 IHRoZXkgCmNvbnNpZGVyIHByZWp1ZGljaWFsIHRvIGVzdGFibGlzaG1lbnQg aW50ZXJlc3QuIAoKSSBzdWdnZXN0IHRoYXQgdGhlIHVuZGVyZ3JvdW5kIHBy ZXNzIGNvdWxkIHBlcmZvcm0gdGhpcyBmdW5jdGlvbiBtdWNoIG1vcmUgCmVm ZmVjdGl2ZWx5IGJ5IHRoZSB1c2Ugb2YgY3V0L3VwIHRlY2huaXF1ZXMuIEZv ciBleGFtcGxlLCBwcmVwYXJlIGN1dC91cHMgb2YgdGhlIAp1Z2xpZXN0IHJl YWN0aW9uYXJ5IHN0YXRlbWVudHMgeW91IGNhbiBmaW5kIGFuZCBzdXJyb3Vu ZCB0aGVtIHdpdGggdGhlIHVnbGllc3QgCnBpY3R1cmVzLiBOb3cgZ2l2ZSBp dCB0aGUgZHJvb2wsIHNsb2JiZXIsIGFuaW1hbCBub2lzZSB0cmVhdG1lbnQg YW5kIHB1dCBpdCBvdXQgCm9uIHRoZSBtdXR0ZXIgbGluZSB3aXRoIHJlY29y ZGVycy4gUnVuIGEgc2NyYW1ibGUgcGFnZSBpbiBldmVyeSBpc3N1ZSBvZiBh IAp0cmFuc2NyaWJlZCB0YXBlIHJlY29yZGVkIGN1dC91cCBvZiBuZXdzLCBy YWRpbyBhbmQgVFYuIFB1dCB0aGUgcmVjb3JkaW5ncyBvdXQgCm9uIHRoZSBt dXR0ZXIgbGluZSBiZWZvcmUgdGhlIHBhcGVyIGhpdHMgdGhlIHN0YW5kLiBJ dCBnaXZlcyB5b3UgYSBmdW5ueSBmZWVsaW5nIAp0byBzZWUgYSBoZWFkbGlu ZSB0aGF0J3MgYmVlbiBnb2luZyByb3VuZCBhbmQgcm91bmQgaW5zaWRlIHlv dXIgaGVhZC4gVGhlIAp1bmRlcmdyb3VuZCBwcmVzcyBjb3VsZCBhZGQgYSBt dXR0ZXIgbGluZSB0byB0aGVpciBhZHZlcnRzIGFuZCBwcm92aWRlIGEgdW5p cXVlIAphZHZlcnRpc2luZyBzZXJ2aWNlLiBDdXQgdGhlIHByb2R1Y3QgaW4g d2l0aCBwb3AgdHVuZXMsIGN1dCB0aGUgcHJvZHVjdCBpbiB3aXRoIAphZHZl cnRpc2luZyBzbG9nYW5zIGFuZCBqaW5nbGVzIG9mIG90aGVyIHByb2R1Y3Rz IGFuZCBzeXBob24gb2ZmIHRoZSBzYWxlcy4gCkFueWJvZHkgdGhhdCBkb3Vi dHMgdGhhdCB0aGVzZSB0ZWNobmlxdWVzIHdvcmsgaGFzIG9ubHkgdG8gcHV0 IHRoZW0gdG8gdGhlIHRlc3QuIApUaGUgdGVjaG5pcXVlcyBoZXJlIGRlc2Ny aWJlZCBhcmUgaW4gdXNlIGJ5IHRoZSBDSUEgYW5kIGFnZW50cyBvZiBvdGhl ciAKY291bnRyaWVzIC4uLlRlbiB5ZWFycyBhZ28gdGhleSB3ZXJlIG1ha2lu ZyBzeXN0ZW1hdGljIHN0cmVldCByZWNvcmRpbmdzIGluIApldmVyeSBkaXN0 cmljdCBvZiBQYXJpcy4gSSByZWNhbGwgdGhlIFZvaWNlIG9mIEFtZXJpY2Eg bWFuIGluIFRhbmdpciBhbmQgYSByb29tIApmdWxsIG9mIHRhcGUgcmVjb3Jk ZXJzIGFuZCB5b3UgY291bGQgaGVhciBzb21lIHN0cmFuZ2Ugc291bmRzIHRo cm91Z2ggdGhlIHdhbGwuIApLZXB0IHRvIGhpbXNlbGYsIGhlbGxvIGluIHRo ZSBoYWxsLiBOb2JvZHkgd2FzIGV2ZXIgYWxsb3dlZCBpbiB0aGF0IHJvb20s IG5vdCAKZXZlbiBhIGZhdGltYS4gT2YgY291cnNlLCB0aGVyZSBhcmUgbWFu eSB0ZWNobmljYWwgZWxhYm9yYXRpb25zIGxpa2UgbG9uZy1yYW5nZSAKZGly ZWN0aW9uYWwgbWlrZXMuIFdoZW4gY3V0dGluZyB0aGUgcHJheWVyIGNhbGwg aW4gd2l0aCBob2cgZ3J1bnRzIGl0IGRvZXNuJ3QgCnBheSB0byBiZSB3YWxr aW5nIGFyb3VuZCB0aGUgbWFya2V0IHBsYWNlIHdpdGggYSBwb3J0YWJsZSB0 YXBlIHJlY29yZGVyLiAKCkFuIGFydGljbGUgaW4gTkVXIFNDSUVOVElTVCBK dW5lIDQsIDE5NzAsIHBhZ2UgNDcwLCBlbnRpdGxlZCAnIEVsZWN0cm9uaWMg QXJ0cyAKb2YgTm9uY29tbXVuaWNhdGlvbiAnIGJ5IFJpY2hhcmQgQyBGcmVu Y2ggZ2l2ZXMgdGhlIGNsdWUgZm9yIG1vcmUgcHJlY2lzZSAKdGVjaG5pY2Fs IGluc3RydWN0aW9ucy4gCgpJbiAxOTY4LCB3aXRoIHRoZSBoZWxwIG9mIElh biBTb21tZXJ2aWxsZSBhbmQgQW50aG9ueSBCYWxjaCwgSSB0b29rIGEgc2hv cnQgCnBhc3NhZ2Ugb2YgbXkgcmVjb3JkZWQgdm9pY2UgYW5kIGN1dCBpdCBp bnRvIGludGVydmFscyBvZiBvbmUgdHdlbnR5IC0gZm91cnRoIG9mIAphIHNl Y29uZCBtb3ZpZSB0YXBlIChtb3ZpZSB0YXBlIGlzIGxhcmdlciBhbmQgZWFz aWVyIHRvIHNwbGljZSktIGFuZCByZWFycmFuZ2VkIAp0aGUgb3JkZXIgb2Yg dGhlIDI0dGggc2Vjb25kIGludGVydmFscyBvZiByZWNvcmRlZCBzcGVlY2gu IFRoZSBvcmlnaW5hbCB3b3JkcyAKYXJlIHF1aXRlIHVuaW50ZWxsaWdpYmxl IGJ1dCBuZXcgd29yZHMgZW1lcmdlLiBUaGUgdm9pY2UgaXMgc3RpbGwgdGhl cmUgYW5kIHlvdSAKY2FuIGltbWVkaWF0ZWx5IHJlY29nbmlzZSB0aGUgc3Bl YWtlci4gQWxzbyB0aGUgdG9uZSBvZiB0aGUgdm9pY2UgcmVtYWlucy4gSWYg CnRoZSB0b25lIGlzIGZyaWVuZGx5LCBob3N0aWxlLCBzZXh1YWwsIHBvZXRp Yywgc2FyY2FzdGljIGxpZmVsZXNzLCBkZXNwYWlyaW5nLCAKdGhpcyB3aWxs IGJlIGFwcGFyZW50IGluIHRoZSBhbHRlcmVkIHNlcXVlbmNlLgoKSSBkaWQg bm90IHJlYWxpc2UgYXQgdGhlIHRpbWUgdGhhdCBJIHdhcyB1c2luZyBhIHRl Y2huaXF1ZSB0aGF0IGhhcyBiZWVuIGluIApleGlzdGVuY2Ugc2luY2UgMTg4 MSAuLi5JIHF1b3RlIGZyb20gTXIuIEZyZW5jaCdzIGFydGljbGUgLi4uICJk ZXNpZ25zIGZvciAKc3BlZWNoIHNjcmFtYmxlcnMgZ28gYmFjayB0byAxODgx IGFuZCB0aGUgZGVzaXJlIHRvIG1ha2UgdGVsZXBob25lIGFuZCByYWRpbyAK Y29tbXVuaWNhdGlvbnMgdW5pbnRlbGxpZ2libGUgdG8gdGhpcmQgcGFydGll cyBoYXMgYmVlbiB3aXRoIHVzIGV2ZXIgc2luY2UiLi4uIApUaGUgbWVzc2Fn ZSBpcyBzY3JhbWJsZWQgaW4gdHJhbnNtaXNzaW9uIGFuZCB0aGVuIHVuc2Ny YW1ibGVkIGF0IHRoZSBvdGhlciBlbmQuIApUaGVyZSBhcmUgbWFueSBvZiB0 aGVzZSBzcGVlY2ggc2NyYW1ibGluZyBkZXZpY2VzIHRoYXQgd29yayBvbiBk aWZmZXJlbnQgCnByaW5jaXBsZXMuLi4gImFub3RoZXIgZGV2aWNlIHdoaWNo IHNhdyBzZXJ2aWNlIGR1cmluZyB0aGUgd2FyIHdhcyB0aGUgdGltZSAKZGl2 aXNpb24gc2NyYW1ibGVyLiBUaGUgc2lnbmFsIHdhcyBjaG9wcGVkIHVwIGlu dG8gZWxlbWVudHMgLjAwNSBjbSBsb25nLiBUaGVzZSAKZWxlbWVudHMgYXJl IHRha2VuIGluIGdyb3VwcyBvciBmcmFtZXMgYW5kIHJlYXJyYW5nZWQgaW4g YSBuZXcgc2VxdWVuY2UuIEltYWdpbmUgCnRoYXQgdGhlIHNwZWVjaCByZWNv cmRlZCBpcyByZWNvcmRlZCBvbiBtYWduZXRpYyB0YXBlIHdoaWNoIGlzIGN1 dCBpbnRvIHBpZWNlcyAKLjAyIGxvbmcgYW5kIHRoZSBwaWVjZXMgcmVhcnJh bmdlZCBpbnRvIGEgbmV3IHNlcXVlbmNlLiBUaGlzIGNhbiBhY3R1YWxseSBi ZSAKZG9uZSBhbmQgZ2l2ZXMgYSBnb29kIGlkZWEgd2hhdCBzcGVlY2ggc291 bmRzIGxpa2Ugd2hlbiBzY3JhbWJsZWQgaW4gdGhpcyB3YXkuIiAKClRoaXMg SSBoYWQgZG9uZSBpbiAxOTY4LiBBbmQgdGhpcyBpcyBhbiBleHRlbnNpb24g b2YgdGhlIGN1dC91cCBtZXRob2QuIFRoZSAKc2ltcGxlc3QgY3V0L3VwIGN1 dHMgYSBwYWdlIGRvd24gdGhlIG1pZGRsZSBhbmQgYWNyb3NzIHRoZSBtaWRk bGUgaW50byBmb3VyIApzZWN0aW9ucy4gU2VjdGlvbiAxIGlzIHRoZW4gcGxh Y2VkIHdpdGggc2VjdGlvbiA0IGFuZCBzZWN0aW9uIDMgd2l0aCBzZWN0aW9u IDIgCmluIGEgbmV3IHNlcXVlbmNlLiBDYXJyaWVkIGZ1cnRoZXIgd2UgY2Fu IGJyZWFrIHRoZSBwYWdlIGRvd24gaW50byBzbWFsbGVyIGFuZCAKc21hbGxl ciB1bml0cyBpbiBhbHRlcmVkIHNlcXVlbmNlcy4gCgpUaGUgb3JpZ2luYWwg cHVycG9zZSBvZiBzY3JhbWJsaW5nIGRldmljZXMgd2FzIHRvIG1ha2UgdGhl IG1lc3NhZ2UgCnVuaW50ZWxsaWdpYmxlIHdpdGhvdXQgc2NyYW1ibGluZyB0 aGUgY29kZS4gQW5vdGhlciB1c2UgZm9yIHNwZWVjaCBzY3JhbWJsZXJzIApj b3VsZCBiZSB0byBpbXBvc2UgdGhvdWdodCBjb250cm9sIG9uIGEgbWFzcyBz Y2FsZS4gY29uc2lkZXIgdGhlIEh1bWFuIGJvZHkgYW5kIApuZXJ2b3VzIHN5 c3RlbSBhcyB1bnNjcmFtYmxpbmcgZGV2aWNlcy4gQSBjb21tb24gdmlydXMg bGlrZSB0aGUgY29sZCBzb3JlIGNvdWxkIApzZW5zaXRpemUgdGhlIHN1Ympl Y3QgdG8gdW5zY3JhbWJsZSBtZXNzYWdlcy4gRHJ1Z3MgbGlrZSBMU0QgYW5k IERpbS1OIGNvdWxkIAphbHNvIGFjdCBhcyB1bnNjcmFtYmxpbmcgZGV2aWNl cy4gTW9yZW92ZXIsIHRoZSBtYXNzIG1lZGlhIGNvdWxkIHNlbnNpdGl6ZSAK bWlsbGlvbnMgb2YgcGVvcGxlIHRvIHJlY2VpdmUgc2NyYW1ibGVkIHZlcnNp b25zIG9mIHRoZSBzYW1lIHNldCBvZiBkYXRhLiAKUmVtZW1iZXIgdGhhdCB3 aGVuIHRoZSBodW1hbiBuZXJ2b3VzIHN5c3RlbSB1bnNjcmFtYmxlcyBhIHNj cmFtYmxlZCBtZXNzYWdlIHRoaXMgCndpbGwgc2VlbSB0byB0aGUgc3ViamVj dCBsaWtlIGhpcyB2ZXJ5IG93biBpZGVhcyB3aGljaCBqdXN0IG9jY3VycmVk IHRvIGhpbSwgCndoaWNoIGluZGVlZCBpdCBkaWQuIAoKVGFrZSBhIGNhcmQs IGFueSBjYXJkLiBJbiBtb3N0IGNhc2VzIGhlIHdpbGwgbm90IHN1c3BlY3Qg aXRzIGV4dHJhbmVvdXMgb3JpZ2luLiAKdGhhdCBpcyB0aGUgcnVuIG9mIHRo ZSBtaWxsIG5ld3NwYXBlciByZWFkZXIgd2hvIHJlY2VpdmVzIHRoZSBzY3Jh bWJsZWQgbWVzc2FnZSAKdW5jcml0aWNhbGx5IGFuZCBhc3N1bWVzIHRoYXQg aXQgcmVmbGVjdHMgaGlzIG93biBvcGluaW9ucyBpbmRlcGVuZGVudGx5IGFy cml2ZWQgCmF0LiBPbiB0aGUgb3RoZXIgb3RoZXIgaGFuZCwgdGhlIHN1Ympl Y3QgbWF5IHJlY29nbmlzZSBvciBzdXNwZWN0IHRoZSBleHRyYW5lb3VzIApv cmlnaW5zIG9mIHZvaWNlcyB0aGF0IGFyZSBsaXRlcmFsbHkgaGF0Y2hpbmcg b3V0IGluIGhpcyBoZWFkLiBUaGVuIHdlIGhhdmUgYSAKY2xhc3NpYyBzeW5k cm9tZSBvZiBwYXJhbm9pZCBwc3ljaG9zaXMuIFN1YmplY3QgaGVhcnMgdm9p Y2VzLiBBbnlvbmUgY2FuIGJlIG1hZGUgCnRvIGhlYXIgdm9pY2VzIHdpdGgg c2NyYW1ibGluZyB0ZWNobmlxdWVzLiBJdCBpcyBub3QgZGlmZmljdWx0IHRv IGV4cG9zZSBoaW0gdG8gCnRoZSBhY3R1YWwgc2NyYW1ibGVkIG1lc3NhZ2Us IGFueSBwYXJ0IG9mIHdoaWNoIGNhbiBiZSBtYWRlIGludGVsbGlnaWJsZS4g VGhpcyAKY2FuIGJlIGRvbmUgd2l0aCBzdHJlZXQgcmVjb3JkZXJzLCByZWNv cmRlcnMgaW4gY2FycywgZG9jdG9yZWQgcmFkaW8gYW5kIFRWIApzZXRzLiBJ biBoaXMgb3duIGZsYXQgaWYgcG9zc2libGUsIGlmIG5vdCBpbiBzb21lIGJh ciBvciByZXN0YXVyYW50IGhlIApmcmVxdWVudHMuIElmIGhlIGRvZXNuJ3Qg dGFsayB0byBoaW1zZWxmLCBoZSBzb29uIHdpbGwgZG8uIFlvdSBidWcgaGlz IGZsYXQuIE5vdyAKaGUgaXMgcmVhbGx5IHJvdW5kIHRoZSBiZW5kIGhlYXJp bmcgaGlzIG93biB2b2ljZSBvdXQgb2YgcmFkaW8gYW5kIFRWIGJyb2FkY2Fz dHMgCmFuZCB0aGUgY29udmVyc2F0aW9uIG9mIHBhc3Npbmcgc3RyYW5nZXJz LiBTZWUgaG93IGVhc3kgaXQgaXM/IFJlbWVtYmVyIHRoZSAKc2NyYW1ibGVk IG1lc3NhZ2UgaXMgcGFydGlhbGx5IHVuaW50ZWxsaWdpYmxlIGFuZCBpbiBh bnkgY2FzZSBoZSBnZXRzIHRoZSB0b25lLiAKSG9zdGlsZSB3aGl0ZSB2b2lj ZXMgdW5zY3JhbWJsZWQgYnkgYSBOZWdybyB3aWxsIGFsc28gYWN0aXZhdGUg YnkgYXNzb2NpYXRpb24gCmV2ZXJ5IG9jY2FzaW9uIG9uIHdoaWNoIGhlIGhh cyBiZWVuIHRocmVhdGVuZWQgb3IgaHVtaWxpYXRlZCBieSB3aGl0ZXMuIFRv IGNhcnJ5IAppdCBmdXJ0aGVyIHlvdSBjYW4gdXNlIHJlY29yZGluZ3Mgb2Yg dm9pY2VzIGtub3duIHRvIGhpbS4gWW91IGNhbiB0dXJuIGhpbSAKYWdhaW5z dCBoaXMgZnJpZW5kcyBieSBob3N0aWxlIHNjcmFtYmxlZCBtZXNzYWdlcyBp biBhIGZyaWVuZCdzIHZvaWNlLiBUaGlzIHdpbGwgCmFjdGl2YXRlIGxsIGhp cyBkaXNhZ3JlZW1lbnRzIHdpdGggdGhhdCBmcmllbmQuIFlvdSBjYW4gY29u ZGl0aW9uIGhpbSB0byBsaWtlIApoaXMgZW5lbWllcyBieSBmcmllbmRseSBz Y3JhbWJsZWQgbWVzc2FnZXMgaW4gZW5lbXkgdm9pY2VzLiAKCk9uIHRoZSBv dGhlciBoYW5kIHRoZSB2b2ljZXMgY2FuIGJlIGZyaWVuZGx5IGFuZCByZWFz c3VyaW5nLiBIZSBpcyBub3cgd29ya2luZyAKZm9yIHRoZSBDSUEsIHRoZSBH UFUsIG9yIHdoYXRldmVyLCBhbmQgdGhlc2UgYXJlIGhpcyBvcmRlcnMuIFRo ZXkgbm93IGhhdmUgYW4gCmFnZW50IHdobyBoYXMgbm8gaW5mb3JtYXRpb24g dG8gZ2l2ZSBhd2F5IGFuZCB3aG8gZG9lc24ndCBoYXZlIHRvIGJlIHBhaWQu IGFuZCAKaGUgaXMgbm93IGNvbXBsZXRlbHkgdW5kZXIgY29udHJvbC4gSWYg aGUgZG9lc24ndCBvYmV5IG9yZGVycyB0aGV5IGNhbiBnaXZlIGhpbSAKdGhl IGhvc3RpbGUgdm9pY2UgdHJlYXRtZW50LiBObywgIlRoZXkiIGFyZSBub3Qg R29kIG9yIHN1cGVyIHRlY2huaWNpYW5zIGZyb20gCm91dGVyIHNwYWNlLiBK dXN0IHRlY2huaWNpYW5zIG9wZXJhdGluZyB3aXRoIHdlbGwta25vd24gZXF1 aXBtZW50IGFuZCB1c2luZyAKdGVjaG5pcXVlcyB0aGF0IGNhbiBiZSBkdXBs aWNhdGVkIGJ5IGFueW9uZSBlbHNlIHdobyBjYW4gYnV5IGFuZCBvcGVyYXRl IHRoaXMgCmVxdWlwbWVudC4gCgpUbyBzZWUgaG93IHNjcmFtYmxpbmcgdGVj aG5pcXVlIGNvdWxkIHdvcmsgb24gYSBhIG1hc3Mgc2NhbGUsIGltYWdpbmUg dGhhdCBhIApuZXdzIG1hZ2F6aW5lIGxpa2UgVElNRSBnb3Qgb3V0IGEgd2hv bGUgaXNzdWUgYSB3ZWVrIGJlZm9yZSBwdWJsaWNhdGlvbiBhbmQgCmZpbGxl ZCBpdCB3aXRoIG5ld3MgYmFzZWQgb24gcHJlZGljdGlvbnMgZm9sbG93aW5n IGEgY2VydGFpbiBsaW5lLCB3aXRob3V0IAphdHRlbXB0aW5nIHRoZSBpbXBv c3NpYmxlLCBnaXZpbmcgb3VyIGJveXMgYSBib29zdCBpbiBldmVyeSBzdG9y eSBhbmQgdGhlIApDb21taWVzIGFzIG1hbnkgZGVmZWF0cyBhbmQgY2FzdWFs dGllcyBhcyBwb3NzaWJsZSwgYSB3aG9sZSBuZXcgaXNzdWUgb2YgVElNRSAK Zm9ybWVkIGZyb20gc2xhbnRlZCBwcmVkaWN0aW9uIG9mIGZ1dHVyZSBuZXdz LiBOb3cgaW1hZ2luZSB0aGlzIHNjcmFtYmxlZCBvdXQgCnRocm91Z2ggdGhl IG1hc3MgbWVkaWEuIAoKV2l0aCBtaW5pbWFsIGVxdWlwbWVudCB5b3UgY2Fu IGRvIHRoZSBzYW1lIHRoaW5nIG9uIGEgc21hbGxlciBzY2FsZS4gWW91IG5l ZWQgYSAKc2NyYW1ibGluZyBkZXZpY2UsIFRWLCByYWRpbywgdHdvIHZpZGVv IGNhbWVyYXMsIGEgaGFtIHJhZGlvIHN0YXRpb24gYW5kIGEgCnNpbXBsZSBw aG90byBzdHVkaW8gd2l0aCBhIGZldyBwcm9wcyBhbmQgYWN0b3JzLiBGb3Ig YSBzdGFydCB5b3Ugc2NyYW1ibGUgdGhlIApuZXdzIGFsbCB0b2dldGhlciBh bmQgc3BpdCBpdCBvdXQgZXZlcnkgd2hpY2ggd2F5IG9uIGhhbSByYWRpbyBh bmQgc3RyZWV0IApyZWNvcmRlcnMuIFlvdSBjb25zdHJ1Y3QgZmFrZSBuZXdz IGJyb2FkY2FzdHMgb24gdmlkZW8gY2FtZXJhLiBGb3IgdGhlIHBpY3R1cmVz IAp5b3UgY2FuIHVzZSBtb3N0bHkgb2xkIGZvb3RhZ2UuIE1leGljbyBDaXR5 IHdpbGwgZG8gZm9yIGEgcmlvdCBpbiBTYWlnb24gQ2hpbGUgCnlvdSBjYW4g dXNlIHRoZSBMb25kb25kZXJyeSBwaWN0dXJlcy4gTm9ib2R5IGtub3dzIHRo ZSBkaWZmZXJlbmNlLiBGaXJlcywgCmVhcnRocXVha2VzLCBwbGFuZSBjcmFz aGVzIGNhbiBiZSBtb3ZlZCBhcm91bmQuIGZvciBleGFtcGxlLCBoZXJlIGlz IGEgcGxhbmUgCmNyYXNoIGluIFRvcm9udG8gMTA4IGRlYWQuIHNvIG1vdmUg dGhlIHBpY3R1cmUgb2YgdGhlIEJhcmNlbG9uYSBwbGFuZSBjcmFzaCBvdmVy IAp0byBUb3JvbnRvIGFuZCBUb3JvbnRvIHRvIEJhcmNlbG9uYS4gQW5kIHlv dSBzY3JhbWJsZSB5b3VyIGZhYnJpY2F0ZWQgbmV3cyBpbiAKd2l0aCBhY3R1 YWwgbmV3cyBicm9hZGNhc3RzLiAKCllvdSBoYXZlIGFuIGFkdmFudGFnZSB3 aGljaCB5b3VyIG9wcG9zaW5nIHBsYXllciBkb2VzIG5vdCBoYXZlLiBIZSBt dXN0IGNvbmNlYWwgCmhpcyBtYW5pcHVsYXRpb25zLiBZb3UgYXJlIHVuZGVy IG5vIHN1Y2ggbmVjZXNzaXR5LiBJbiBmYWN0IHlvdSBjYW4gYWR2ZXJ0aXNl IAp0aGUgZmFjdCB0aGF0IHlvdSBhcmUgd3JpdGluZyB0aGUgbmV3cyBpbiBh ZHZhbmNlIGFuZCB0cnlpbmcgdG8gbWFrZSBpdCBoYXBwZW4gCmJ5IHRlY2hu aXF1ZXMgd2hpY2ggYW55Ym9keSBjYW4gdXNlLiBBbmQgdGhhdCBtYWtlcyB5 b3UgTkVXUy4gQW5kIFRWIHBlcnNvbmFsaXR5IAphcyB3ZWxsLCBpZiB5b3Ug cGxheSBpdCByaWdodC4gWW91IHdhbnQgdGhlIHdpZGVzdCBwb3NzaWJsZSBj aXJjdWxhdGlvbiBmb3IgeW91ciAKY3V0L3VwIHZpZGVvIHRhcGVzLiBDdXQv dXAgdGVjaG5pcXVlcyBjb3VsZCBzd2FtcCB0aGUgbWFzcyBtZWRpYSB3aXRo IHRvdGFsIAppbGx1c2lvbi4gCgpGaWN0aW9uYWwgZGFpbGllcyByZXRyb2Fj dGl2ZWx5IGNhbmNlbGxlZCB0aGUgU2FuIEZyYW5jaXNjbyBlYXJ0aHF1YWtl IGFuZCAKSGFsaWZheCBleHBsb3Npb24gYXMgam91cm5hbGlzdGljIGhvYXhl cywgYW5kIGRvdWJ0IHJlbGVhc2VkIGZyb20gdGhlIHNraW4gbGF3IApleHRl bmRhYmxlIGFuZCByZXZlbm91cywgY29uc3VtZWQgYWxsIHRoZSBmYWN0cyBv ZiBoaXN0b3J5LiAKCk1yIEZyZW5jaCBjb25jbHVkZXMgaGlzIGFydGljbGUg Li4uIlRoZSB1c2Ugb2YgbW9kZXJuIG1pY3JvZWxlY3RyaWMgaW50ZWdyYXRl ZCAKY2lyY2l0cyBjb3VsZCBsb3dlciB0aGUgY29zdCBvZiBzcGVlY2ggc2Ny YW1ibGVycyBlbm91Z2ggdG8gc2VlIHRoZW0gaW4gdXNlIGJ5IApwcml2YXRl IGNpdGl6ZW5zLiBDb2RlcyBhbmQgY2lwaGVycyBoYXZlIGFsd2F5cyBoYWQg YSBzdHJvbmcgYXBwZWFsIHRvIG1vc3QgCnBlb3BsZSBhbmQgSSB0aGluayBz Y3JhbWJsZXJzIHdpbGwgYXMgd2VsbC4uLiIgCgpJdCBpcyBnZW5lcmFsbHkg YXNzdW1lZCB0aGF0IHNwZWVjaCBtdXN0IGJlIGNvbnNjaW91c2x5IHVuZGVy c3Rvb2QgdG8gY2F1c2UgYW4gCmVmZmVjdC4gRWFybHkgZXhwZXJpbWVudHMg d2l0aCBzdWJsaW1pbmFsIGltYWdlcyBoYXZlIHNob3duIHRoYXQgdGhpcyBp cyBub3QgCnRydWUuIEEgbnVtYmVyIG9mIHJlc2VhcmNoIHByb2plY3RzIGNv dWxkIGJlIGJhc2VkIG9uIHNwZWVjaCBzY3JhbWJsZXJzLiBXZSBoYXZlIAph bGwgc2VlbiB0aGUgZXhwZXJpbWVudCB3aGVyZSBzb21lb25lIGhlYXJzIGhp cyBvd24gcmVjb3JkZWQgdm9pY2UgYmFjayBhIGZldyAKc2Vjb25kcyBsYXRl ci4gU29vbiBoZSBjYW5ub3QgZ28gb24gdGFsa2luZy4gV291bGQgc2NyYW1i bGVkIHNwZWVjaCBoYXZlIHRoZSAKc2FtZSBlZmZlY3Q/IHRvIHdoYXQgZXh0 ZW50IGRvZXMgYSBsYW5ndWFnZSBhY3QgYXMgdW5zY3JhbWJsaW5nIGluIGVp dGhlci1vciAKY29uZmxpY3QgdGVybXM/IFRvIHdoYXQgZXh0ZW50IGRvZXMg dGhlIHRvbmUgb2Ygdm9pY2UgdXNlZCBieSBhIHNwZWFrZXIgaW1wb3NlIGEg CmNlcnRhaW4gdW5zY3JhbWJsaW5nIHNlcXVlbmNlIG9uIHRoZSBsaXN0ZW5l cj8gCgpNYW55IG9mIHRoZSBjdXQvdXAgdGFwZXMgd291bGQgYmUgZW50ZXJ0 YWluaW5nIGFuZCBpbiBmYWN0IGVudGVydGFpbm1lbnQgaXMgdGhlIAptb3N0 IHByb21pc2luZyBmaWVsZCBmb3IgY3V0L3VwIHRlY2huaXF1ZXMuIEltYWdp bmUgYSBwb3AgZmVzdGl2YWwgbGlrZSBQaHVuIApDaXR5IHNjaGVkdWxlZCBm b3IgSnVseSAyNHRoLCAyNXRoLCAyNiwgMTk3MCBhdCBFY2NsZXNkZW4gQ29t bW9uLCBQYXRjaGluZywgbmVhciAKV29ydGhpbmcsIFN1c3NleC4gRmVzdGl2 YWwgYXJlYSBjb21wcmlzZWQgb2YgY2FyIHBhcmsgYW5kIGNhbXBpbmcgYXJl YSwgYSByb2NrIAphdWRpdG9yaXVtLCBhIHZpbGxhZ2Ugd2l0aCBib290aHMg YW5kIGNpbmVtYSwgYSBsYXJnZSB3b29kZWQgYXJlYS4gQSBudW1iZXIgb2Yg ClRhcGUgcmVjb3JkZXJzIHBsYW50ZWQgaW4gdGhlIHdvb2RzIGFuZCB0aGUg dmlsbGFnZS4gQXMgbWFueSBhcyBwb3NzaWJsZSBzbyBhcyAKdG8gbGF5IGRv d24gYSBncmlkIG9mIHNvdW5kIG92ZXIgdGhlIHdob2xlIGZlc3RpdmFsLiBS ZWNvcmRlcnMgaGF2ZSB0YXBlcyBvZiAKcHJlcmVjb3JkZWQgbWF0ZXJpYWws IG11c2ljLCBuZXdzLCBicm9hZGNhc3RzLCByZWNvcmRpbmdzIGZyb20gb3Ro ZXIgZmVzdGl2YWxzLCAKZXRjLiBBdCBhbGwgdGltZXMgc29tZSBvZiB0aGUg cmVjb3JkZXJzIGFyZSBwbGF5aW5nIGJhY2sgYW5kIHNvbWUgYXJlIHJlY29y ZGluZy4gClRoZSByZWNvcmRlcnMgcmVjb3JkaW5nIHRoZSBjcm93ZCBhbmQg dGhlIG90aGVyIHRhcGUgcmVjb3JkZXJzIHRoYXQgYXJlIHBsYXlpbmcgCmJh Y2sgYXQgdmFyeWluZyBkaXN0YW5jZXMuIFRoaXMgY3V0cyBpbiB0aGUgY3Jv d2Qgd2hvIHdpbGwgYmUgaGVhcmluZyB0aGVpciBvd24gCnZvaWNlcyBiYWNr LiBQbGF5IGJhY2ssIHdpbmQgYmFjayBhbmQgcmVjb3JkIGNvdWxkIGJlIGVs ZWN0cm9uaWNseSBjb250cm9sbGVkIAp3aXRoIHZhcnlpbmcgaW50ZXJ2YWxz LiBPciB0aGV5IGNvdWxkIGJlIGhhbmQgb3BlcmF0ZWQsIHRoZSBvcGVyYXRv ciBkZWNpZGluZyAKd2hhdCBpbnRlcnZhbHMgb2YgcGxheSBiYWNrLCByZWNv cmQsIGFuZCB3aW5kIHRvIHVzZS4gRWZmZWN0IGlzIGdyZWF0bHkgCmluY3Jl YXNlZCBieSBhIGxhcmdlIG51bWJlciBvZiBmZXN0aXZhbCBnb2VycyB3aXRo IHBvcnRhYmxlIHJlY29yZGVycyBwbGF5aW5nIApiYWNrIGFuZCByZWNvcmRp bmcgYXMgdGhleSB3YWxrIGFyb3VuZCB0aGUgZmVzdGl2YWwuIFdlIGNhbiBj YXJyeSBpdCBmdXJ0aGVyIAp3aXRoIHByb2plY3Rpb24gc2NyZWVucyBhbmQg dmlkZW8gY2FtZXJhcy4gU29tZSBvZiB0aGUgbWF0ZXJpYWwgaXMgcHJlLXBy ZXBhcmVkLCAKc2V4IGZpbG1zLCBmaWxtcyBvZiBvdGhlciBmZXN0aXZhbHMs IGFuZCB0aGlzIG1hdGVyaWFsIGlzIGN1dCBpbiB3aXRoIGxpdmUgVFYgCmJy b2FkY2FzdHMgYW5kIHNob3RzIG9mIHRoZSBjcm93ZC4gT2YgY291cnNlLCB0 aGUgcm9jayBmZXN0aXZhbCB3aWxsIGJlIGN1dCBpbiAKb24gdGhlIHNjcmVl bnMsIHRob3VzYW5kcyBvZiBmYW5zIHBvcnRhYmxlIHJlY29yZGVycyByZWNv cmRpbmcsIGFuZCBwbGF5aW5nIApiYWNrLCB0aGUgc2luZ2VyIGNvdWxkIGRp cmVjdCBwbGF5IGJhY2sgdW5kIHJlY29yZC4gU2V0IHVwIGFuIGFyZWEgZm9y IAp0cmF2ZWxsaW5nIHBlcmZvcm1lcnMsIGp1Z2dsZXJzLCBhbmltYWwgYWN0 cywgc25ha2UgY2hhcm1lcnMsIHNpbmdlcnMsIAptdXNpY2lhbnMsIGFuZCBj dXQgdGhlc2UgYWN0cyBpbi4gRmlsbSBhbmQgdGFwZSBmcm9tIHRoZSBmZXN0 aXZhbCwgZWRpdGVkIGZvciAKYmVzdCBtYXRlcmlhbCwgY291bGQgdGhlbiBi ZSB1c2VkIGF0IG90aGVyIGZlc3RpdmFscy4gCgpRdWl0ZSBhIGxvdCBvZiBl cXVpcG1lbnQgYW5kIGVuZ2luZWVyaW5nIHRvIHNldCBpdCB1cC4gdGhlIGZl c3RpdmFsIGNvdWxkIApjZXJ0YWlubHkgYmUgZW5oYW5jZWQgaWYgYXMgbWFu eSBmZXN0aXZhbCBnb2VycyBhcyBwb3NzaWJsZSBicmluZyBwb3J0YWJsZSB0 YXBlIApyZWNvcmRlcnMgYW5kIHBsYXkgYmFjayBhdCB0aGUgZmVzdGl2YWwu IAoKQW55IG1lc3NhZ2UsIG11c2ljLCBjb252ZXJzYXRpb24geW91IHdhbnQg dG8gcGFzcyBhcm91bmQsIGJyaW5nIGl0IHByZS1yZWNvcmRlZCAKb24gdGFw ZSBzbyBldmVyeWJvZHkgdGFrZXMgYSBwaWVjZSBvZiB5b3VyIHRhcGUgaG9t ZS4KClJlc2VhcmNoIHByb2plY3Q6IHRvIGZpbmQgb3V0IHRvIHdoYXQgZXh0 ZW50IHNjcmFtYmxlZCBtZXNzYWdlcyBhcmUgdW5zY3JhbWJsZWQsIAp0aGF0 IGlzIHNjYW5uZWQgb3V0IGJ5IGV4cGVyaW1lbnRhbCBzdWJqZWN0cy4gVGhl IHNpbXBsZXN0IGV4cGVyaW1lbnRzIGNvbnNpc3RzIAppbiBwbGF5aW5nIGJh Y2sgYSBzY3JhbWJsZWQgbWVzc2FnZSB0byBzdWJqZWN0LiBNZXNzYWdlIGNv dWxkIGNvbnRhaW4gc2ltcGxlIApjb21tYW5kcy4gRG9lcyB0aGUgc2NyYW1i bGVkIG1lc3NhZ2UgaGF2ZSBhbnkgY29tbWFuZCB2YWx1ZSBjb21wYXJhYmxl IHRvIHBvc3QtCmh5cG5vdGljIHN1Z2dlc3Rpb24/IElzIHRoZSBhY3R1YWwg Y29udGVudCBvZiB0aGUgbWVzc2FnZSByZWNlaXZlZD8gV2hhdCBkcnVncywg CmlmIGFueSwgaW5jcmVhc2UgYWJpbGl0eSB0byB1bnNjcmFtYmxlIG1lc3Nh Z2VzPyBEbyBzdWJqZWN0cyB2YXJ5IHdpZGVseSBpbiB0aGlzIAphYmlsaXR5 PyBBcmUgc2NyYW1ibGVkIG1lc3NhZ2VzIGluIHRoZSBzdWJqZWN0J3Mgb3du IHZvaWNlIG1vcmUgZWZmZWN0aXZlIHRoYW4gCm1lc3NhZ2VzIGluIG90aGVy IHZvaWNlcz8gQXJlIG1lc3NhZ2VzIHNjcmFtYmxlZCBpbiBjZXJ0YWluIHZv aWNlcyBtb3JlIGVhc2lseSAKdW5zY3JhbWJsZWQgYnkgc3BlY2lmaWMgc3Vi amVjdHM/IElzIHRoZSBtZXNzYWdlIG1vcmUgcG90ZW50IHdpdGggYm90aCB3 b3JkIGFuZCAKaW1hZ2Ugc2NyYW1ibGUgb24gdmlkZW8gdGFwZT8gTm93IHRv IHVzZSwgZm9yIGV4YW1wbGUsIGEgdmlkZW8gdGFwZSBtZXNzYWdlIHdpdGgg CmEgdW5pZmllZCBlbW90aW9uYWwgY29udGVudC4gTGV0IHVzIHNheSB0aGUg bWVzc2FnZSBpcyBmZWFyLiBGb3IgdGhpcyB3ZSB0YWtlIAphbGwgdGhlIHBh c3QgZmVhciBzaG90cyBvZiB0aGUgc3ViamVjdCB3ZSBjYW4gY29sbGVjdCBv ciBldm9rZS4gV2UgY3V0IHRoZXNlIGluIAp3aXRoIGZlYXIgd29yZHMgYW5k IHBpY3R1cmVzLCBhbmQgdGhyZWF0cywgZXRjLiBUaGlzIGlzIGFsbCBhY3Rl ZCBvdXQgYW5kIHdvdWxkIApiZSB1cHNldHRpbmcgaW4gYW55IGNhc2UuIE5v dyBsZXQncyB0cnkgaXQgc2NyYW1ibGVkIGFuZCBzZWUgaWYgd2UgY2FuIGdl dCBhbiAKZXZlbiBzdHJvbmdlciBlZmZlY3QuIFRoZSBzdWJqZWN0J3MgYmxv b2QgcHJlc3N1cmUsIHJhdGUgb2YgaGVhcnQgYmVhdCwgYW5kIApicmFpbiB3 YXZlcyBhcmUgcmVjb3JkZWQgYXMgd2UgcGxheSBiYWNrIHRoZSBzY3JhbWJs ZWQgdGFwZS4gCgpIaXMgZmFjZSBpcyBwaG90b2dyYXBoZWQgYW5kIHZpc2li bGUgdG8gaGltIG9uIHZpZGVvIHNjcmVlbiBhdCBhbGwgdGltZXMuIHRoZSAK YWN0dWFsIHNjcmFtYmxpbmcgb2YgdGhlIHRhcGUgY2FuIGJlIGRvbmUgaW4g dHdvIHdheXMuIEl0IGNhbiBiZSBhIGNvbXBsZXRlbHkgCnJhbmRvbSBvcGVy YXRpb24gbGlrZSBwdWxsaW5nIHBpZWNlcyBvdXQgb2YgYSBoYXQgYW5kIGlm IHRoaXMgaXMgZG9uZSBzZXZlcmFsIApjb25zZWN1dGl2ZSB1bml0cyBtYXkg b2NjdXIgdG9nZXRoZXIgeWllbGRpbmcgYW4gaWRlbnRpZmlhYmxlIHBpY3R1 cmUgb2YgCmludGVsbGlnaWJsZSB3b3JkLiBCb3RoIG1ldGhvZHMgb2YgY291 cnNlIGNhbiBiZSB1c2VkIGF0IHZhcnlpbmcgaW50ZXJ2YWxzLiAKQmxvb2Qg cHJlc3N1cmUsIGhlYXJ0IGJlYXQsIGFuZCBicmFpbndhdmUgcmVjb3JkaW5n cyB3aWxsIHNob3cgdGhlIG9wZXJhdG9yIHdoYXQgCm1hdGVyaWFsIGlzIHBy b2R1Y2luZyB0aGUgc3Ryb25nZXN0IHJlYWN0aW9uLCBhbmQgaGUgd2lsbCBv ZiBjb3Vyc2UgemVybyBpbi4gQW5kIApyZW1lbWJlciB0aGF0IHRoZSBzdWJq ZWN0IGNhbiBzZWUgaGlzIGZhY2UgYXQgYWxsIHRpbWVzIGFuZCBoaXMgZmFj ZSBpcyBiZWluZyAKcGhvdG9ncmFwaGVkLiBBcyB0aGUgUGVlcGluZyBUb20g c2FpZCwgdGhlIG1vc3QgZnJpZ2h0ZW5pbmcgdGhpbmcgaXMgZmVhciBpbiAK eW91ciBvd24gZmFjZS4gSWYgdGhlIHN1YmplY3QgYmVjb21lcyB0b28gZGlz dHVyYmVkIHdlIGhhdmUgcGVhY2UgYW5kIHNhZmV0eSAKdGFwZXMgcmVhZHku IAoKTm93IGhlcmUgaXMgYSBzZXggdGFwZTogVGhpcyBjb25zaXN0cyBvZiBh IHNleCBzY2VuZSBhY3RlZCBvdXQgYnkgdGhlIGlkZWFsIApzZXh1YWwgb2Jq ZWN0IG9mIHRoZSBzdWJqZWN0IGFuZCBoaXMgaWRlYWwgc2VsZiBpbWFnZS4g U2hvd24gc3RyYWlnaHQgaXQgbWlnaHQgCmJlIGV4Y2l0aW5nIGVub3VnaCwg bm93IHNjcmFtYmxlIGl0LiBJdCBtYWtlcyBhIGZldyBzZWNvbmRzIGZvciBz Y3JhbWJsZWQgdGFwZXMgCnRvIGhhdGNoIG91dCwgYW5kIHRoZW4/IGNhbiBz Y3JhbWJsZWQgc2V4IHRhcGVzIHplcm9pbmcgaW4gb24gdGhlIHN1YmplY3Qn cyAKcmVhY3Rpb25zIGFuZCBicmFpbiB3YXZlcyByZXN1bHQgaW4gc3BvbnRh bmVvdXMgb3JnYXNtPyBDYW4gdGhpcyBiZSBleHRlbmRlZCB0byAKb3RoZXIg ZnVuY3Rpb25zIG9mIHRoZSBib2R5PyBBIG1pa2Ugc2VjcmV0ZWQgaW4gdGhl IHdhdGVyIGNsb3NldCBhbmQgYWxsIGhpcyAKc2hpdHMgYW5kIGZhcnRzIHJl Y29yZGVkIGFuZCBzY3JhbWJsZWQgaW4gd2l0aCBzdGVybiBuYW5ueSB2b2lj ZXMgY29tbWFuZGluZyBoaW0gCnRvIHNoaXQsIGFuZCB0aGUgeW91bmcgbGli ZXJhbCBzaGl0cyBoaXMgcGFudHMgb24gdGhlIHBsYXRmb3JtIHJpZ2h0IHVu ZGVyIE9sZCAKR2xvcnkuIENvdWxkIGxhdWdoIHRhcGVzLCBzbmVlemUgdGFw ZXMsIGhpY2NvdWdoIHRhcGVzLCBjb3VnaCB0YXBlcywgZ2l2ZSByaXNlIAp0 byBsYXVnaGluZyBzbmVlemluZywgaGljY291Z2hpbmcsIGFuZCBjb3VnaGlu Zz8gCgpUbyB3aGF0IGV4dGVudCBleHRlbnQgY2FuIHBoeXNpY2FsIGlsbG5l c3MgYmUgaW5kdWNlZCBieSBzY3JhbWJsZWQgdGFwZXM/IFRha2UgCmZvciBl eGFtcGxlLCBhIHNvdW5kIGFuZCBjb2xvciBwaWN0dXJlIG9mIGEgc3ViamVj dCB3aXRoIGEgY29sZC4gTGF0ZXIsIHdoZW4gdGhlIApzdWJqZWN0IGlzIGZ1 bGx5IHJlY292ZXJlZCwgd2UgdGFrZSBjb2xvciBhbmQgc291bmQgZmlsbSBv ZiByZWNvdmVyZWQgc3ViamVjdC4gCldlIG5vdyBzY3JhbWJsZWQgdGhlIGNv bGQgcGljdHVyZXMgYW5kIHNvdW5kIHRyYWNrIGluIHdpdGggcHJlc2VudCBw aWN0dXJlcyBvbiAKcHJlc2VudCBwaWN0dXJlcy4gV2UgYWxzbyBwcm9qZWN0 IHRoZSBjb2xkIHBpY3R1cmVzIG9uIHByZXNlbnQgcGljdHVyZXMuIE5vdyB3 ZSAKdHJ5IHVzaW5nIHNvbWUgb2YgTXIuIEh1YmJhcmQncyByZWFjdGl2ZSBt aW5kIHBocmFzZXMgd2hpY2ggYXJlIHN1cHBvc2VkIGluIAp0aGVtc2VsdmVz IHRvIHByb2R1Y2UgaWxsbmVzcy4gVG8gYmUgbWUsIHRvIGJlIHlvdSwgdG8g c3RheSBoZXJlLCB0byBzdGF5IHRoZXJlLCAKdG8gYmUgYSBib2R5LCB0byBi ZSBib2RpZXMsIHRvIHN0YXkgcHJlc2VudCwgdG8gc3RheSBwYXN0LiBub3cg d2Ugc2NyYW1ibGUgdGhpcyAKaW4gdG9nZXRoZXIgYW5kIHNob3cgaXQgdG8g dGhlIHN1YmplY3QuIENvdWxkIHNlZWluZyBhbmQgaGVhcmluZyB0aGlzIHNv dW5kIGFuZCAKaW1hZ2UgdHJhY2ssIHNjcmFtYmxlZCBkb3duIHRvIHZlcnkg c21hbGwgdW5pdHMsIGJyaW5nIGFib3V0IGFuIGF0dGFjayBvZiBjb2xkIAp2 aXJ1cz8gSXMgc3VjaCBhIGNvbGQgdGFwZSBkb2VzIGFjdHVhbGx5IHByb2R1 Y2UgYW4gYXR0YWNrIG9mIGNvbGQgdmlydXMsIApwZXJoYXBzIHdlIGhhdmUg bWVyZWx5IGFjdGl2YXRlZCBhIGxhdGVudCB2aXJ1cy4gTWFueSB2aXJ1c2Vz LCBhcyB5b3Uga25vdywgYXJlIApsYXRlbnQgaW4gdGhlIGJvZHkgYW5kIG1h eSBiZSBhY3RpdmF0ZWQuIFdlIGNhbiB0cnkgdGhlIHNhbWUgd2l0aCBjb2xk c29yZSwgd2l0aCAKaGVwYXRpdGlzLCBhbHdheXMgcmVtZW1iZXJpbmcgdGhh dCB3ZSBtYXkgYmUgYWN0aXZhdGluZyBhIGxhdGVudCB2aXJ1cyBhbmQgaW4g bm8gCnNlbnNlIGNyZWF0aW5nIGEgbGFib3JhdG9yeSB2aXJ1cy4gSG93ZXZl ciwgd2UgbWF5IGJlIGluIGEgcG9zaXRpb24gdG8gZG8gdGhpcy4gCklzIGEg dmlydXMgcGVyaGFwcyBzaW1wbHkgdmVyeSBzbWFsbCB1bml0cyBvZiBzb3Vu ZCBhbmQgaW1hZ2U/IFJlbWVtYmVyIHRoZSBvbmx5IAppbWFnZSBhIHZpcnVz IGhhcyBpcyB0aGUgaW1hZ2UgYW5kIHNvdW5kIHRyYWNrIGl0IGNhbiBpbXBv c2Ugb24geW91LiBUaGUgeWVsbG93IApleWVzIG9mIGphdW5kaWNlLCB0aGUg cG9zdHVsZXMgb2Ygc21hbGxwb3gsIGV0Yy4gaW1wb3NlZCBvbiB5b3UgYWdh aW5zdCB5b3VyIAp3aWxsLiBUaGUgc2FtZSBpcyBjZXJ0YWlubHkgdHJ1ZSBv ZiBzY3JhbWJsZWQgd29yZCBhbmQgaW1hZ2UgaXQgY2FuIG1ha2UgeW91IAp1 bnNjcmFtYmxlLiBUYWtlIGEgY2FyZCwgYW55IGNhcmQuIFRoaXMgZG9lcyBu b3QgbWVhbiB0aGF0IGl0IGlzIGFjdHVhbGx5IGEgCnZpcnVzLiBQZXJoYXBz IHRvIGNvbnN0cnVjdCBhIGxhYm9yYXRvcnkgdmlydXMgd2Ugd291bGQgbmVl ZCBib3RoIGNhbWVyYSBhbmQgCnNvdW5kIGNyZXcgYW5kIGEgYmlvY2hlbWlz dCBhcyB3ZWxsLiBJIHF1b3RlIGZyb20gdGhlIElOVEVSTkFUSU9OQUwgUEFS SVMgClRSSUJVTkUgYW4gYXJ0aWNsZSBvbiB0aGUgc3ludGhldGljIGdlbmU6 ICJEci4gSGFyIEpvaHJkIEtob3JhbmEgaGFzIG1hZGUgYSAKZ2VuZS1zeW50 aGV0aWMuIiAKCiJJdCBpcyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBlbmQsIiB0 aGlzIHdhcyB0aGUgaW1tZWRpYXRlIHJlYWN0aW9uIHRvIHRoaXMgbmV3cyAK ZnJvbSB0aGUgc2NpZW5jZSBhdHRhY2hlJyBhdCBvbmUgb2YgV2FzaGluZ3Rv bidzIG1ham9yIGVtYmFzc2llcy4gIklmIHlvdSBjYW4gCm1ha2UgZ2VuZXMg eW91IGNhbiBldmVudHVhbGx5IG1ha2UgbmV3IHZpcnVzZXMgZm9yIHdoaWNo IHRoZXJlIGFyZSBubyBjdXJlcy4gYW55IApsaXR0bGUgY291bnRyeSB3aXRo IGdvb2QgYmlvY2hlbWlzdHMgY291bGQgbWFrZSBzdWNoIGJpb2xvZ2ljYWwg d2VhcG9ucy4gSXQgCndvdWxkIHRha2Ugb25seSBhIHNtYWxsIGxhYm9yYXRv cnkuIElmIGl0IGNhbiBiZSBkb25lLCBzb21lYm9keSB3aWxsIGRvIGl0LiAi Rm9yIApleGFtcGxlLCBhIGRlYXRoIHZpcnVzIGNvdWxkIGJlIGNyZWF0ZWQg dGhhdCBjYXJyaWVzIHRoZSBjb2RlZCBtZXNzYWdlIG9mIGRlYXRoLiAKQSBk ZWF0aCB0YXBlLCBpbiBmYWN0LiBObyBkb3VidCB0aGUgdGVjaG5pY2FsIGRl dGFpbHMgYXJlIGNvbXBsZXggYW5kIHBlcmhhcHMgYSAKdGVhbSBvZiBzb3Vu ZCBhbmQgY2FtZXJhIG1lbiB3b3JraW5nIHdpdGggYmlvY2hlbWlzdHMgd291 bGQgZ2l2ZSB1cyB0aGUgYW5zd2VyLiAKCkFuZCBub3cgdGhlIHF1ZXN0aW9u IGFzIHRvIHdoZXRoZXIgc2NyYW1ibGluZyB0ZWNobmlxdWVzIGNvdWxkIGJl IHVzZWQgdG8gc3ByZWFkIApoZWxwZnVsIGFuZCBwbGVhc2FudCBtZXNzYWdl cy4gUGVyaGFwcy4gT24gdGhlIG90aGVyIGhhbmQsIHRoZSBzY3JhbWJsZWQg d29yZHMgCmFuZCB0YXBlIGFjdCBsaWtlIGEgdmlydXMgaW4gdGhhdCB0aGV5 IGZvcmNlIHNvbWV0aGluZyBvbiB0aGUgc3ViamVjdCBhZ2FpbnN0IApoaXMg d2lsbC4gTW9yZSB0byB0aGUgcG9pbnQgd291bGQgYmUgdG8gZGlzY292ZXIg aG93IHRoZSBvbGQgc2Nhbm5pbmcgcGF0dGVybnMgCmNvdWxkIGJlIGFsdGVy ZWQgc28gdGhhdCBzdWJqZWN0IGxpYmVyYXRlcyBoaXMgb3duIHNwb250YW5l b3VzIHNjYW5uaW5nIHBhdHRlcm4uIAoKTkVXIFNDSUVOVElTVCAyIEp1bHks IDE5NzAgLi4uQ3VycmVudCBtZW1vcnkgdGhlb3J5IHBvc2l0cyBhIHNldmVu IHNlY29uZCAKdGVtcG9yYXJ5ICJidWZmZXIgc3RvcmUiIHByZWNlZGluZyB0 aGUgbWFpbiBvbmU6IGEgYmxvdyBvbiB0aGUgaGVhZCB3aXBlcyBvdXQgCm1l bW9yeSBvZiB0aGlzIG11Y2ggcHJpb3IgdGltZSBiZWNhdXNlIGl0IGVyYXNl cyB0aGUgY29udGVudHMgb2YgdGhlIGJ1ZmZlci4gCkRhZWRhbHVzIG9ic2Vy dmVzIHRoYXQgdGhlIHNlbnNlIG9mIHRoZSBwcmVzZW50IGFsc28gY292ZXJz IGp1c3QgdGhpcyByYW5nZSBhbmQgCnNvIHN1Z2dlc3RzIHRoYXQgb3VyIHNl bnNvcnkgaW5wdXQgaXMgcmVjb3JkZWQgb24gYW4gZW5kbGVzcyB0aW1lIGxv b3AsIApwcm92aWRpbmcgc29tZSBzZXZlbiBzZWNvbmRzIG9mIGRlbGF5IGZv ciBzY2FubmluZyBiZWZvcmUgZXJhc3VyZS4gSW4gdGhpcyB0aW1lIAp0aGUg YnJhaW4gZWRpdHMsIG1ha2VzIHNlbnNlIG9mLCBhbmQgc2VsZWN0cyBzdG9y YWdlIGtleSBmZWF0dXJlcy4gVGhlIHdlaXJkIApERUpBIFZVIHNlbnNhdGlv biAibm93IiBoYXMgaGFwcGVuZWQgYmVmb3JlIGlzIGNsZWFybHkgZHVlIHRv IGJyaWVmIGVyYXN1cmUgCmZhaWx1cmUsIHNvIHRoYXQgd2UgZW5jb3VudGVy IGFscmVhZHkgc3RvcmVkIG1lbW9yeSBkYXRhIGNvbWluZyByb3VuZCBhZ2Fp bi4gClRpbWUgZHJhZ2dpbmcgb3IgcmFjaW5nIG11c3QgcmVmbGVjdCB0YXBl IHNwZWVkLiBBIHNpbXBsZSBleHBlcmltZW50IHdpbGwgCmRlbW9uc3RyYXRl IHRoaXMgZXJhc3VyZSBwcm9jZXNzIGluIG9wZXJhdGlvbi4gTWFraW5nIHN0 cmVldCByZWNvcmRpbmdzIGFuZCAKcGxheWluZyB0aGVtIGJhY2ssIHlvdSB3 aWxsIGhlYXIgdGhpbmdzIHlvdSBkbyBub3QgcmVtZW1iZXIsIHNvbWV0aW1l cyBzYWlkIGluIGEgCmxvdWQgY2xlYXIgdm9pY2UsIG11c3QgaGF2ZSBiZWVu IHF1aXRlIGNsb3NlIHRvIHlvdSwgbm9yIGRvIHlvdSBuZWNlc3NhcmlseSAK cmVtZW1iZXIgdGhlbSB3aGVuIHlvdSBoZWFyIHRoZSByZWNvcmRpbmcgYmFj ay4gVGhlIHNvdW5kIGhhcyBiZWUgZXJhc2VkIAphY2NvcmRpbmcgdG8gYSBz Y2FubmluZyBwYXR0ZXJuIHdoaWNoIGlzIGF1dG9tYXRpYy4gVGhpcyBtZWFu cyB0aGF0IHdoYXQgeW91IApub3RpY2UgYW5kIHN0b3JlIGFzIG1lbW9yeSBh cyB5b3Ugd2FsayBkb3duIHRoZSBzdHJlZXQgaXMgc2Nhbm5lZCBvdXQgb2Yg YSBtdWNoIApsYXJnZXIgc2VsZWN0aW9uIG9mIGRhdGEgd2hpY2ggaXMgdGhl biBlcmFzZWQgZnJvbSB0aGUgbWVtb3J5LiBGb3IgdGhlIHdhbGtlciAKdGhl IHNpZ25zIGhlIHBhc3NlZCwgcGVvcGxlIGhlIGhhcyBwYXNzZWQsIGFyZSBl cmFzZWQgZnJvbSBoaXMgbWluZCBhbmQgY2Vhc2UgdG8gCmV4aXN0IGZvciBo aW0uIE5vdyB0byBtYWtlIHRoaXMgc2Nhbm5pbmcgcHJvY2VzcyBjb25zY2lv dXMgYW5kIGNvbnRyb2xsYWJsZSwgdHJ5IAp0aGlzOiAKCldhbGsgZG93biBh IGNpdHkgYmxvY2sgd2l0aCBhIGNhbWVyYSBhbmQgdGFrZSB3aGF0IHlvdSBu b3RpY2UsIG1vdmluZyB0aGUgY2FtZXJhIAphcm91bmQgYXMgY2xvc2VseSBh cyBwb3NzaWJsZSB0byBmb2xsb3cgdGhlIGRpcmVjdGlvbiBvZiB5b3VyIGV5 ZXMuIFRoZSBwb2ludCBpcyAKdG8gbWFrZSB0aGUgdGhlIGNhbWVyYSB5b3Vy IGV5ZXMgYW5kIHRha2Ugd2hhdCB5b3VyIGV5ZXMgYXJlIHNjYW5uaW5nIG91 dCBvZiB0aGUgCmxhcmdlciBwaWN0dXJlLiBBdCB0aGUgc2FtZSB0aW1lIHRh a2UgdGhlIHN0cmVldCBhdCBhIHdpZGUgYW5nbGUgZnJvbSBhIHNlcmllcyAK b2Ygc3RpbGwgcG9zaXRpb25zLiBUaGUgc3RyZWV0IG9mIHRoZSBvcGVyYXRv ciBpcywgb2YgY291cnNlLCB0aGUgc3RyZWV0IGFzIHNlZW4gCmJ5IHRoZSBv cGVyYXRvci4gSXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHN0cmVldCBzZWVu IGF0IGEgd2lkZSBhbmdsZS4gTXVjaCBvZiAKaXQgaXMgaW4gZmFjdCBtaXNz aW5nLiBOb3cgeW91IGNhbiBtYWtlIGFyYml0cmFyeSBzY2FubmluZyBwYXR0 ZXJucyAtIHRoYXQgaXMgCmNvdmVyIGZpcnN0IG9uZSBzaWRlIG9mIHRoZSBz dHJlZXQgYW5kIHRoZW4gdGhlIG90aGVyIGluIGFjY29yZGFuY2Ugd2l0aCBh IApwcmVjb25jZWl2ZWQgcGxhbi4gU28geW91IGFyZSBicmVha2luZyBkb3du IHRoZSBhdXRvbWF0aWMgc2Nhbm5pbmcgcGF0dGVybnMuIFlvdSAKY291bGQg YWxzbyBtYWtlIGNvbG91ciBzY2FubmluZyBwYXR0ZXJucywgdGhhdCBpcywg c2NhbiBvdXQgZ3JlZW4sIGJsdWUsIHJlZCwgCmV0Yy4gaW4gc28gZmFyIGFz IHlvdSBjYW4gd2l0aCB5b3VyIGNhbWVyYS4gVGhhdCBpcywgeW91IGFyZSB1 c2luZyBhbiBhcmJpdHJhcnkgCnByZWNvbmNlaXZlZCBzY2FubmluZyBwYXR0 ZXJuLCBpbiBvcmRlciB0byBicmVhayBkb3duIGF1dG9tYXRpYyBzY2Fubmlu ZyAKcGF0dGVybnMuIGEgbnVtYmVyIG9mIG9wZXJhdG9ycyBkbyB0aGlzIGFu ZCB0aGVuIHNjcmFtYmxlIHRoZWlyIHRha2VzIHRvZ2V0aGVyIAphbmQgd2l0 aCB3aWRlIGFuZ2xlIHRhcGVzLiBUaGlzIGNvdWxkIHRyYWluIHRoZSBzdWJq ZWN0IHRvIHNlZSBhdCBhIHdpZGVyIGFuZ2xlIAphbmQgYWxzbyB0byBpZ25v cmUgYW5kIGVyYXNlIGF0IHdpbGwuIAoKTm93IGFsbCB0aGlzIGlzIHJlYWRp bHkgc3ViamVjdCB0byBleHBlcmltZW50YWwgdmVyaWZpY2F0aW9uIG9uIGNv bnRyb2wgCnN1YmplY3RzLiBOb3IgbmVlZCB0aGUgZXF1aXBtZW50IGJlIGFs bCBvbiBjb250cm9sIHN1YmplY3RzLiBOb3IgbmVlZCB0aGUgCmVxdWlwbWVu dCBiZSBhbGwgdGhhdCBjb21wbGljYXRlZC4gSSBoYXZlIHNob3duIGhvdyBp dCBjb3VsZCB3b3JrIHdpdGggZmVlZGJhY2sgCmZyb20gYnJhaW53YXZlcyBh bmQgdmlzYWFjZXJhbCByZXNwb25zZSBhbmQgdmlkZW8gdGFwZSBwaG90b3Mg b2Ygc3ViamVjdCB0YWtlbiAKd2hpbGUgaGUgaXMgc2VlaW5nIGFuZCBoZWFy aW5nIHRoZSB0YXBlLCBzaW1wbHkgdG8gc2hvdyBvcHRpbXVtIGVmZmVjdGl2 ZW5lc3MuIAoKWW91IGNhbiBzdGFydCB3aXRoIHR3byB0YXBlIHJlY29yZGVy cy4gVGhlIHNpbXBsZXN0IHNjcmFtYmxpbmcgZGV2aWNlIGlzIApzY2lzc29y cyBhbmQgc3BsaWNpbmcgZXF1aXBtZW50LiBZb3UgY2FuIHN0YXJ0IHNjcmFt Ymxpbmcgd29yZHMsIG1ha2UgYW55IGtpbmQgCm9mIHRhcGVzIGFuZCBzY3Jh bWJsZSB0aGVtIGFuZCBvYnNlcnZlIHRoZSBlZmZlY3RzIG9uIGZyaWVuZHMg YW5kIG9uIHlvdXJzZWxmLiAKTmV4dCBzdGVwIGlzIHNvdW5kIGZpbG0gYW5k IHRoZW4gdmlkZW8gY2FtZXJhLiBPZiBjb3Vyc2UgcmVzdWx0cyBmcm9tIGlu ZGl2aWR1YWwgCmV4cGVyaW1lbnRzIGNvdWxkIGxlYWQgdG8gbWFzcyBleHBl cmltZW50cywgbWFzcyBmZWFyIHRhcGVzLCByaW90IHRhcGVzLCBldGMuIApU aGUgcG9zc2liaWxpdGllcyBoZXJlIGZvciByZXNlYXJjaCBhbmQgZXhwZXJp bWVudCBhcmUgdmlydHVhbGx5IHVubGltaXRlZCBhbmQgSSAKaGF2ZSBzaW1w bHkgbWFkZSBhIGZldyB2ZXJ5IHNpbXBsZSBzdWdnZXN0aW9ucyAKCiJBIHZp cnVzIGlzIGNoYXJhY3Rlcml6ZWQgYW5kIGxpbWl0ZWQgYnkgb2JsaWdhdGUg Y2VsbHVsYXIgcGFyYXNpdGlzbS4gQWxsIAp2aXJ1c2VzIG11c3QgcGFyYXNp dGUgbGl2aW5nIGNlbGxzIGZvciB0aGVpciByZXBsaWNhdGlvbi4gRm9yIGFs bCB2aXJ1c2VzIHRoZSAKaW5mZWN0aW9uIGN5Y2xlIGNvbXByaXNlcyBlbnRy eSBpbnRvIHRoZSBob3N0LCBpbnRyYWNlbGx1bGFyIHJlcGxpY2F0aW9uLCBh bmQgCmVzY2FwZSBmcm9tIHRoZSBib2R5IG9mIHRoZSBob3N0IHRvIGluaXRp YXRlIGEgbmV3IGN5Y2xlIGluIGEgZnJlc2ggaG9zdC4iIEkgYW0gCnF1b3Rp bmcgaGVyZSBmcm9tIE1FQ0hBTklTTVMgT0YgVklSVVMgSU5GRUNUSU9OIGVk aXRlZCBieSBEci4gV2lsc29uIFNtaXRoLiBJbiAKaXRzIHdpbGQgc3RhdGUg dGhlIHZpcnVzIGhhcyBub3QgcHJvdmVkIHRvIGJlIGEgdmVyeSBhZGFwdGFi bGUgb3JnYW5pc20uIFNvbWUgCnZpcnVzZXMgaGF2ZSBidXJuZWQgdGhlbXNl bHZlcyBoYXZlIGJ1cm5lZCBvdXQgc2luY2UgdGhleSB3ZXJlIDEwMCBwZXIg Y2VudCAKZmF0YWwgYW5kIHRoZXJlIHdlcmUgbm8gcmVzZXJ2b2lycy4gRWFj aCBzdHJhaW4gb2YgdmlydXMgaXMgcmlnaWRseSBwcm9ncmFtZWQgCmZvciBj ZXJ0YWluIGF0dGFjayBvbiBjZXJ0YWluIHRpc3N1ZXMuIElmIHRoZSBhdHRh Y2sgZmFpbHMsIHRoZSB2aXJ1cyBkb2VzIG5vdCAKZ2FpbiBhIG5ldyBob3N0 LiBUaGVyZSBhcmUsIG9mIGNvdXJzZSwgdmlydXMgbXV0YXRpb25zLCBhbmQg dGhlIGluZmx1ZW56YSB2aXJ1cyAKaGFzIHByb3ZlZCBxdWl0ZSB2ZXJzYXRp bGUgaW4gdGhpcyB3YXkuR2VuZXJhbGx5IGl0J3MgdGhlIHNpbXBsZSByZXBp dGl0aW9uIG9mIAp0aGUgc2FtZSBtZXRob2Qgb2YgZW50cnksIGFuZCBpZiB0 aGF0IG1ldGhvZCBpcyBibG9ja2VkIGJ5IGFueSBib2R5IG9yIG90aGVyIAph Z2VuY3kgc3VjaCBhcyBpbnRlcmZlcm9uLCB0aGUgYXR0YWNrIGZhaWxzLiBC eSBhbmQgbGFyZ2UsIG91ciB2aXJ1cyBpcyBhIHN0dXBpZCAKb3JnYW5pc20u IE5vdyB3ZSBjYW4gdGhpbmsgZm9yIHRoZSB2aXJ1cywgZGV2aXNlIGEgbnVt YmVyIG9mIGFsdGVybmF0ZSBtZXRob2RzIApvZiBlbnRyeS4gRm9yIGV4YW1w bGUsIHRoZSBob3N0IGlzIHNpbXV0YW5lb3VzbHkgYXR0YWNrZWQgYnkgYW4g YWxseSB2aXJ1cyB3aG8gCnRlbGxzIGhpbSB0aGF0IGV2ZXJ5dGhpbmcgaXMg YWxscmlnaHQgYW5kIGJ5IGEgcGFpbiBhbmQgZmVhciB2aXJ1cy4gc28gdGhl IHZpcnVzIAppcyBub3cgdXNpbmcgYW4gb2xkIG1ldGhvZCBvZiBlbnRyeSwg bmFtZWx5LCB0aGUgdG91Z2ggY29wIGFuZCB0aGUgY29uIGNvcC4gCgpXZSBo YXZlIGNvbnNpZGVyZWQgdGhlIHBvc3NpYmlsaXR5IHRoYXQgYSB2aXJ1cyBj YW4gYmUgYWN0aXZhdGVkIG9yIGV2ZW4gY3JlYXRlZCAKYnkgdmVyeSBzbWFs bCB1bml0cyBvZiBzb3VuZCBhbmQgaW1hZ2UuIFNvIGNvbmNpZXZlZCwgdGhl IHZpcnVzIGNhbiBiZSBtYWRlIHRvIApvcmRlciBpbiB0aGUgbGFib3JhdG9y eS4gQWgsIGJ1dCBmb3IgdGhlIHRha2VzIHRvIGJlIGVmZmVjdGl2ZSwgeW91 IG11c3QgaGF2ZSAKYWxzbyB0aGUgYWN0dWFsIHZpcnVzIGFuZCB3aGF0IGlz IHRoZSBhY3R1YWwgdmlydXM/IE5ldyB2aXJ1c2VzIHR1cm4gdXAgZnJvbSAK dGltZSB0byB0aW1lIGJ1dCBmcm9tIHdoZXJlIGRvIHRoZXkgdHVybiB1cD8g V2VsbCwgbGV0cyBzZWUgaG93IHdlIGNvdWxkIG1ha2UgYSAKdmlydXMgdHVy biB1cC4gV2UgcGxvdCBub3cgb3VyIHZpcnVzJ3Mgc3ltcHRvbXMgYW5kIG1h a2UgYSBzY3JhbWJsZSB0YXBlLiBUaGUgCnN1c2NlcHRpYmxlIHN1YmplY3Rz LCB0aGF0IGlzIHRob3NlIHdobyByZXByb2R1Y2Ugc29tZSBvZiB0aGUgZGVz aXJlZCBzeW1wdG9tcywgCndpbGwgdGhlbiBiZSBzY3JhbWJsZWQgaW50byBt b3JlIHRhcGVzIHRpbGwgd2Ugc2NyYW1ibGUgb3VyIHZpcnVzIGludG8gCmV4 aXN0ZW5jZS4gVGhpcyBiaXJ0aCBvZiBhIHZpcnVzIG9jY3VycyB3aGVuIG91 ciB2aXJ1cyBpcyBhYmxlIHRvIHJlcHJvZHVjZSAKaXRzZWxmIGluIGEgaG9z dCBhbmQgcGFzcyBpdHNlbGYgb24gdG8gYW5vdGhlciBob3N0LiBQZXJoYXBz LCB0b28sIHdpdGggdGhlIAp2aXJ1cyB1bmRlciBsYWJvcmF0b3J5IGNvbnRy b2wgaXQgY2FuIGJlIHRhbWVkIGZvciB1c2VmdWwgcHVycG9zZXMuIEltYWdp bmUsIGZvciAKZXhhbXBsZSBhIHNleCB2aXJ1cy4gaXQgc28gaW5mbGFtZXMg dGhlIHNleCBjZW50cmVzIGluIHRoZSBiYWNrIGJyYWluIHRoYXQgdGhlIApo b3N0IGlzIGRyaXZlbiBtYWQgZnJvbSBzZXh1YWxpdHksIGFsbCBvdGhlciBj b25zaWRlcmF0aW9ucyBhcmUgYmxhY2tlZCBvdXQgClBhcmtzIGZ1bGwgb2Yg bmFrZWQsIGZyZW56aWVkIHBlb3BsZSwgc2hpdHRpbmcsIHBpc3NpbmcsIGVq YWN1bGF0aW5nLCBhbmQgCnNjcmVhbWluZy4gU28gdGhlIHZpcnVzIGNvdWxk IGJlIG1hbGlnbmFudCwgYmxhY2tpbmcgb3V0IGFsbCByZWd1bGF0aW9uIGFu ZCBlbmQgCmluIGV4aGF1c3Rpb24sIGNvbnZ1bHNpb25zLCBhbmQgZGVhdGgu IAoKTm93IGxldCB1cyBhdHRlbXB0IHRoZSBzYW1lIHRoaW5nIHdpdGggdGFw ZS4gV2Ugb3JnYW5pemUgYSBzZXgtdGFwZSBmZXN0aXZhbC4gV2UgCm9yZ2Fu aXNlIGEgc2V4LXRhcGUgZmVzdGl2YWwuIDEwMCwwMDAgcGVvcGxlIGJyaW5n IHRoZWlyIHNjcmFtYmxlZCBzZXggdGFwZXMsIAphbmQgdmlkZW8gdGFwZXMg YXMgd2VsbCwgdG8gc2NyYW1ibGUgaW4gdG9nZXRoZXIuIFByb2plY3RlZCBv biB2YXN0IHNjcmVlbnMsIAptdXR0ZXJpbmcgb3V0IG92ZXIgdGhlIGNyb3dk LCBzb21ldGltZXMgaXQgc2xvd3MgZG93biwgc28gdGhhdCB5b3Ugc2VlIGEg ZmV3IApzZWNvbmRzLCB0aGVuIHNjcmFtYmxlZCBhZ2FpbiwgdGhlbiBzbG93 IGRvd24sIHNjcmFtYmxlLiBTb29uIGl0IHdpbGwgc2NyYW1ibGUgCnRoZW0g YWxsIG5ha2VkLiBUaGUgY29wcyBhbmQgdGhlIE5hdGlvbmFsIEd1YXJkIGFy ZSBzdHJpcHBpbmcgZG93bi4gTEVUJ1MgR0VUIApPVVJTRUxWRVMgU09NRSBD SVZWSUVTLiBOb3cgYSB0aGluZyBsaWtlIHRoYXQgY291bGQgYmUgbWVzc3ks IGJ1dCB0aG9zZSB3aG8gCnN1cnZpdmUgaXQgcmVjb3ZlciBmcm9tIHRoZSBt YWRuZXNzLiBPciwgc2F5LCBhIHNtYWxsIHNlbGVjdCBncm91cCBvZiByZWFs bHkgCmxpa2UtbWluZGVkIHBlb3BsZSBnZXQgdG9nZXRoZXIgd2l0aCB0aGVp ciBzZXggdGFwZXMsIHlvdSBzZWUgdGhlIHByb2Nlc3MgaXMgbm93IApiZWlu ZyBicm91Z2h0IHVuZGVyIGNvbnRyb2wuIEFuZCB0aGUgZmFjdCB0aGF0IGFu eWJvZHkgY2FuIGRvIGl0IGlzIGluIGl0c2VsZiBhIApsaW1pdGluZyBmYWN0 b3IuIAoKSGVyZSBpcyBNci4gSGFydCwgd2hvIHdhbnRzIHRvIGluZmVjdCBl dmVyeW9uZSB3aXRoIGhpcyBvd24gaW1hZ2UgYW5kIHR1cm4gdGhlbSAKYWxs IGludG8gaGltc2VsZiwgc28gaGUgc2NyYW1ibGVzIGhpbXNlbGYgYW5kIGR1 bXBzIGhpbXNlbGYgb3V0IGluIHNlYXJjaCBvZiAKd29ydGh5IHZlc3NlbHMu IElmIG5vYm9keSBlbHNlIGtub3dzIGFib3V0IHNjcmFtYmxpbmcgdGVjaG5p cXVlcyBoZSBtaWdodCAKc2NyYW1ibGUgaGltc2VsZiBxdWl0ZSBhIHN0YWJs ZSBvZiByZXBsaWNhcy4gYnV0IGFueWJvZHkgY2FuIGRvIGl0LiBTbyBnb24g b24sIApzY3JhbWJsZSB5b3VyIHNleCB3b3JkcywgYW5kIGZpbmQgc3VpdGFi bGUgbWF0ZXMuIAoKSWYgeW91IHdhbnQgdG8sIHNjcmFtYmxlIHlvdXJzZWxm IG91dCB0aGVyZSwgZXZlcnkgc3RhbGUgam9rZSwgZmFydCwgY2hldywgCnNu ZWV6ZSwgYW5kIHN0b21hY2ggcnVtYmxlLiBJZiB5b3VyIHRyaWNrIG5vIHdv cmsgeW91IGJldHRlciBydW4uIEV2ZXJ5Ym9keSAKZG9pbmcgaXQsIHRoZXkg YWxsIHNjcmFtYmxlIGluIHRvZ2V0aGVyIGFuZCB0aGUgcG9wdWxhdGlvbnMg b2YgdGhlIGVhcnRoIGp1c3QgCmJldHRlciBzZXR0bGUgZG93biBhIG5pY2Ug ZXZlbiBicm93biBjb2xvdXIuIFNjcmFtYmxlcyBpcyB0aGUgZGVtb2NyYXRp YyB3YXksIAp0aGUgd2F5IGZ1bGwgY2VsbHVsYXIgcmVwcmVzZW50YXRpb24u IFNjcmFtYmxlcyBpcyB0aGUgQW1lcmljYW4gd2F5LiAKCkkgaGF2ZSBzdWdn ZXN0ZWQgdGhhdCB2aXJ1cyBjYW4gYmUgY3JlYXRlZCB0byBvcmRlciBpbiB0 aGUgbGFib3JhdG9yeSBmcm9tIHZlcnkgCnNtYWxsIHVuaXRzIG9mIHNvdW5k IGFuZCBpbWFnZS4gU3VjaCBhIHByZXBhcmF0aW9uIGlzIG5vdCBpbiBpdHNl bGYgYmlvbG9naWNhbGx5IAphY3RpdmUgYnV0IGl0IGNvdWxkIGFjdGl2YXRl IG9yIGV2ZW4gY3JlYXRlIHZpcnVzIGluIHN1c2NlcHRpYmxlIHN1YmplY3Rz LiBBIApjYXJlZnVsbHkgcHJlcGFyZWQgamF1bmRpY2UgdGFwZSBjb3VsZCBh Y3RpdmF0ZSBvciBjcmVhdGUgb3IgY3JlYXRlIHRoZSBqYXVuZGljZSAKdmly dXMgaW4gbGl2ZXIgY2VsbHMsIGVzcGVjaWFsbHkgaW4gY2FzZXMgd2hlcmUg dGhlIGphdW5kaWNlIGxpdmVyIGlzIGFscmVhZHkgCmRhbWFnZWQuIFRoZSBv cGVyYXRvciBpcyBpbiBlZmZlY3QgZGlyZWN0aW5nIGEgdmlydXMgcmV2b2x1 dGlvbiBvZiB0aGUgY2VsbHMuIApTaW5jZSBET1Igc2VlbXMgdG8gYXR0YWNr IHRob3NlIGV4cG9zZWQgdG8gaXQgYXQgdGhlIHdlYWtlc3QgcG9pbnQsIHJl bGVhc2Ugb2YgCnRoaXMgZm9yY2UgY291bGQgY29pbmNpZGUgd2l0aCB2aXJ1 cyBhdHRhY2suIFJlYWN0aXZlIG1pbmQgcGhyYXNlcyBjb3VsZCBzZXJ2ZSAK dGhlIHNhbWUgcHVycG9zZSBvZiByZW5kZXJpbmcgc3ViamVjdHMgbW9yZSBz dXNjZXB0aWJsZSB0byB2aXJ1cyBhdHRhY2suIAoKSXQgd2lsbCBiZSBzZWVu IHRoYXQgc2NyYW1ibGVkIHNwZWVjaCBhbHJlYWR5IGhhcyBtYW55IG9mIHRo ZSBjaGFyaWN0YXJpc3RpY3Mgb2YgCnZpcnVzLiBXaGVuIHRoZSBzcGVlY2gg dGFrZXMgYW5kIHVuc2NyYW1ibGVzLCB0aGlzIG9jY3VycyBjb21wdWxzaXZl bHkgYW5kIAphZ2FpbnN0IHRoZSB3aWxsIG9mIHRoZSBzdWJqZWN0LiBBIHZp cnVzIG11c3QgcmVtaW5kIHlvdSBvZiBpdHMgcHJlc2VuY2UuIApXaGV0aGVy IGl0IGlzIHRoZSBtYWcgb2YgYSBjb2xkIHNvcmUgb3IgdGhlIHRvcnR1cmlu ZyBzcGFzbXMgb2YgcmFiaWVzIHRoZSB2aXJ1cyAKcmVtaW5kcyB5b3Ugb2Yg aXRzIHVud2FudGVkIHByZXNlbmNlLiAiSEVSRSBNRSBJUy4iIAoKU28gZG9l cyBzY3JhbWJsZWQgd29yZCBhbmQgaW1hZ2UuIFRoZSB1bml0cyBhcmUgdW5z Y3JhbWJsaW5nIGNvbXB1bHNpdmVseSwgCnByZXNlbnRpbmcgY2VydGFpbiB3 b3JkcyBhbmQgaW1hZ2VzIHRvIHRoZSBzdWJqZWN0IGFuZCB0aGlzIHJlcGV0 aXRpdmUgCnByZXNlbnRhdGlvbiBpcyBpcnJpdGF0aW5nIGNlcnRhaW4gYm9k aWx5IGFuZCBuZXV0cmFsIGFyZWFzLiBUaGUgY2VsbHMgc28gCmlycml0YXRl ZCBjYW4gcHJvZHVjZSBvdmVyIGEgcGVyaW9kIG9mIHRpbWUgdGhlIGJpb2xv Z2ljIHZpcnVzIHVuaXRzLiBXZSBub3cgCmhhdmUgYSBuZXcgdmlydXMgdGhh dCBjYW4gYmUgY29tbXVuaWNhdGVkIGFuZCBpbmRlZWQgdGhlIHN1YmplY3Qg bWF5IGJlIApkZXNwYXJhdGUgdG8gY29tbXVuaWNhdGUgdGhpcyB0aGluZyB0 aGF0IGlzIGJ1cnN0aW5nIGluc2lkZSBoaW0uIEhlIGlzIGhlYXZ5IAp3aXRo IHRoZSBsb2FkLiBDb3VsZCB0aGlzIGxvYWQgYmUgZ29vZCBhbmQgYmVhdXRp ZnVsPyBJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSAKdmlydXMgd2hpY2gg d2lsbCBjb21tdW5pY2F0ZSBjYWxtIGFuZCBzd2VldCByZWFzb25hYmxlbmVz cz8gQSB2aXJ1cyBtdXN0IApwYXJhc2l0aXNlIGEgaG9zdCBpbiBvcmRlciB0 byBzdXJ2aXZlLiBJdCB1c2VzIHRoZSBjZWxsdWxhciBtYXRlcmlhbCBvZiB0 aGUgaG9zdCAKdG8gbWFrZSBjb3BpZXMgb2YgaXRzZWxmLiBpbiBtb3N0IGNh c2VzIHRoaXMgaXMgZGFtYWdpbmcgdG8gdGhlIGhvc3QuIFRoZSB2aXJ1cyAK Z2FpbnMgZW50cmFuY2UgYnkgZnJhdWQgYW5kIG1haW50YWlucyBpdHNlbGYg YnkgZm9yY2UuIEFuIHVud2FudGVkIGd1ZXN0IHdobyAKbWFrZXMgeW91IHNp Y2sgdG8gbG9vayBhdCBpcyBuZXZlciBnb29kIG9yIGJlYXV0aWZ1bC4gSXQg aXMgbW9yZW92ZXIgYSBndWVzdCB3aG8gCmFsd2F5cyByZXBlYXRzIGl0c2Vs ZiB3b3JkIGZvciB3b3JkIHRha2UgZm9yIHRha2UuIAoKUmVtZW1iZXIgdGhl IGxpZmUgY3ljbGUgb2YgYSB2aXJ1cyAuLi4gcGVuZXRyYXRpb24gb2YgYSBj ZWxsIG9yIGFjdGl2YXRpb24gCndpdGhpbiB0aGUgY2VsbCwgcmVwbGljYXRp b24gd2l0aGluIHRoZSBjZWxsLCBlc2NhcGUgZnJvbSB0aGUgY2VsbCB0byBp bnZhZGUgCm90aGVyIGNlbGxzLCBlc2NhcGUgZnJvbSBob3N0IHRvIGluZmVj dCBhIG5ldyBob3N0LiBUaGlzIGluZmVjdGlvbiBjYW4gdGFrZSAKcGxhY2Ug aW4gbWFueSB3YXlzIGFuZCB0aG9zZSB3aG8gZmluZCB0aGVtc2VsdmVzIGhl YXZ5IHdpdGggdGhlIGxvYWQgb2YgYSBuZXcgCnZpcnVzIGdlbmVyYWxseSB1 c2UgYSBzaG90Z3VuIHRlY2huaXF1ZSB0byBjb3ZlciBhIHdpZGUgcmFuZ2Ug b2YgaW5mZWN0aW9uIApyb3V0ZXMuLi4gY291Z2gsIHNuZWV6ZSwgc3BpdCBh bmQgZmFydCBhdCBldmVyeSBvcHBvcnR1bml0eSwgU2F2ZSBzaGl0LCBwaXNz LCAKc25vdCwgc2NhYnMsIHN3ZWF0IHN0YWluZWQgY2xvdGhlcyBhbmQgYWxs IGJvZGlseSBzZWNyZXRpb25zIGZvciBkZWh5ZHJhdGlvbi4gClRoZSBjb21w b3NpdGUgZHVzdCBjYW4gYmUgdW5vYnRydXNpdmVseSBiaWxsb3dlZCBvdXQg YSByb2FjaCBiZWxsb3dzIGluIHN1YndheXMsIApkcm9wcGVkIGZyb20gd2lu ZG93cyBpbiBiYWdzLCBvciBzcHJheWVkIG91dCBhIGNyb3AgZHVzdGVyIC4u LiBDYXJyeSB3aXRoIHlvdSBhdCAKYWxsIHRpbWVzIGFuIGFzc29ydG1lbnQg b2YgdmVjdG9ycyAuLi4gbGljZSwgZmxlYXMsIGJlZCBidWdzLCBhbmQgbGl0 dGxlIAphdmlhcmllcyBvZiBtb3NxdWl0b2VzIGFuZCBiaXRpbmcgZmxpZXMg ZmlsbGVkIHdpdGggeW91ciBibG9vZCAuLi4gSSBzZWUgbm8gCmJlYXV0eSBp biB0aGF0LiAKClRoZXJlIGlzIG9ubHkgb25lIGNhc2Ugb2YgZmF2b3VyYWJs ZSB2aXJ1cyBpbmZsdWVuY2UgYmVuZWZpdGluZyBhbiBvYnNjdXJlIApzcGVj aWVzIG9mIEF1c3RyYWxpZW4gbWljZS4gT24gdGhlIG90aGVyIGhhbmQsIGlm IGEgdmlydXMgcHJvZHVjZXMgbm8gZGFtYWdpbmcgCnN5bXB0b21zIHdlIGhh dmUgbm8gd2F5IG9mIGFzY2VydGFpbmluZyBpdHMgZXhpc3RlbmNlIGFuZCB0 aGlzIGhhcHBlbnMgd2l0aCAKbGF0ZW50IHZpcnVzIGluZmVjdGlvbnMuIEl0 IGhhcyBiZWVuIHN1Z2dlc3RlZCB0aGF0IHllbGxvdyByYWNlcyByZXN1bHRl ZCBmcm9tIGEgCmphdW5kaWNlLSBsaWtlIHZpcnVzIHdoaWNoIHByb2R1Y2Vk IGEgcGVybWFuZW50IG11dGF0aW9uIG5vdCBuZWNlc3NhcmlseSAKZGFtYWdp bmcsIHdoaWNoIHdhcyBwYXNzZWQgYWxvbmcgZ2VuZXRpY2FsbHkuIFRoZSBz YW1lIG1heSBiZSB0cnVlIG9mIHRoZSB3b3JkLiAKVGhlIHdvcmQgaXRzZWxm IG1heSBiZSBhIHZpcnVzIHRoYXQgaGFzIGFjaGlldmVkIGEgcGVybWFuZW50 IHN0YXR1cyB3aXRoIHRoZSAKaG9zdC4gSG93ZXZlciwgbm8ga25vd24gdmly dXMgaW4gZXhpc3RlbmNlIGF0IHRoZSBwcmVzZW50IHRpbWUgYWN0cyBpbiB0 aGlzIAptYW5uZXIsIHNvIHRoZSBxdWVzdGlvbiBvZiBhIGJlbmVmaXQgdmly dXMgcmVtYWlucyBvcGVuLiBJdCBzZWVtcyBhZHZpc2FibGUgdG8gCmNvbmNl bnRyYXRlIG9uIGEgZ2VuZXJhbCBkZWZlbmNlIGFnYWluc3QgYWxsIHZpcnVz LiAKClJvbiBIdWJiYXJkLCBmb3VuZGVyIG9mIFNjaWVudG9sb2d5LCBzYXlz IHRoYXQgY2VydGFpbiB3b3JkcyBhbmQgd29yZCAKY29tYmluYXRpb25zIGNh biBwcm9kdWNlcyBzZXJpb3VzIGlsbG5lc3NlcyBhbmQgbWVudGFsIGRpc3R1 cmJhbmNlcy4gSSBjYW4gY2xhaW0gCnNvbWUgc2tpbGwgaW4gdGhlIHNjcml2 ZW5lcidzIHRyYWRlLCBidXQgSSBjYW5ub3QgZ3VhcmFudGVlIHRvIHdyaXRl IGEgcGFzc2FnZSAKdGhhdCB3aWxsIG1ha2Ugc29tZW9uZSBwaHlzaWNhbGx5 IGlsbC4gSWYgTXIuSHViYmFyZCdzIGNsYWltIGlzIGp1c3RpZmllZCwgdGhp cyAKaXMgY2VydGFpbmx5IGEgbWF0dGVyIGZvciBmdXJ0aGVyIHJlc2VhcmNo LCBhbmQgd2UgY2FuIGVhc2lseSBmaW5kIG91dCAKZXhwZXJpbWVudGFsbHkg d2hldGhlciBoaXMgY2xhaW0gaXMganVzdGlmaWVkIG9yIG5vdC4gTXIuIEh1 YmJhcmQgYmFzZXMgdGhlIApwb3dlciBoZSBhdHRyaWJ1dGVzIHRvIHdvcmRz IG9uIGhpcyB0aGVvcnkgb2YgZW5ncmFtcy4gQW4gZW5ncmFtIGlzIGRlZmlu ZWQgYXMgCndvcmQsc291bmQsaW1hZ2UgcmVjb3JkZWQgYnkgdGhlIHN1Ympl Y3QgaW4gYSBwZXJpb2Qgb2YgcGFpbiBhbmQgCnVuY29uc2Npb3VzbmVzcy4g U29tZSBvZiBoaXMgbWF0ZXJpYWwgbWF5IGJlIHJlYXNzdXJpbmc6ICJJIHRo aW5rIGhlJ3MgZ29pbmcgdG8gCmJlIGFscmlnaHQuIiBSZWFzc3VyaW5nIG1h dGVyaWFsIGlzIGFuIGFsbHkgZW5ncmFtLiBBbGx5IGVuZ3JhbXMsIGFjY29y ZGluZyB0byAKTXIgSHViYmFyZCwgYXJlIGp1c3QgYXMgYmFkIGFzIGhvc3Rp bGUgYXMgcGFpbiBlbmdyYW1zLiBBbnkgcGFydCBvZiB0aGlzIApyZWNvcmRp bmcgcGxheWVkIGJhY2sgdG8gdGhlIHN1YmplY3QgbGF0ZXIgd2lsbCByZWFj dGl2YXRlIG9wZXJhdGlvbiBwYWluLCBoZSAKbWF5IGFjdHVhbGx5IGRldmVs b3AgYSBoZWFkYWNoZSBhbmQgZmVlbCBkZXByZXNzZWQsIGFueGlvdXMsIG9y IHRlbnNlLiBXZWxsLCBNciAKSHViYmFyZCdzIGVuZ3JhbSB0aGVvcnkgaXMg dmVyeSBlYXNpbHkgc3ViamVjdCB0byBleHBlcmltZW50YWwgdmVyaWZpY2F0 aW9uLiAKVGFrZSB0ZW4gdm9sdW50ZWVyIHN1YmplY3RzLCBzdWJqZWN0IHRo ZW0gdG8gYSBwYWluIHN0aW11bHVzIGFjY29tcGFuaWVkIGJ5IApjZXJ0YWlu IHdvcmRzIGFuZCBzb3VuZHMgYW5kIGltYWdlcy4gWW91IGNhbiBhY3Qgb3V0 IGxpdHRsZSBza2l0cy4gCgoiUXVpY2tseSwgbnVyc2UgLCBiZWZvcmUgSSBs b3NlIG15IGxpdHRsZSBuaWdnZXIsIiBiZWxsb3dzIHRoZSBzb3V0aGVybiBz dXJnZW9uLCAKYW5kIG5vdyBhIGJlZWZ5IHdoaXRlIGhhbmQgZmFsbHMgb24g dGhlIGZyYWdpbGUgYmxhY2sgc2hvdWxkZXIuICJZZXMsIGhlJ3MgZ29pbmcg CnRvIGJlIGFscmlnaHQuIEhlJ3MgZ29pbmcgdG8gcHVsbCB0aHJvdWdoLiIK CklmIEkgaGFkIG15IHdheSBJJ2QgbGV0IHRoZXNlIGFuaW1hbHMgZGllIG9u IHRoZSBvcGVyYXRpbmcgdGFibGUuIiAKCiJZb3UgZG8gbm90IGhhdmUgeW91 ciB3YXksIHlvdSBoYXZlIHlvdXIgZHV0eSBhcyBhIGRvY3Rvciwgd2UgbXVz dCBkbyBldmVyeXRoaW5nIAppbiBvdXIgcG93ZXIgdG8gc2F2ZSBodW1hbiBs aXZlcy4iIAoKQW5kIHNvIGZvcnRoLiAKCkl0IGlzIHRoZSB0b3VnaCBjb3Ag YW5kIHRoZSBjb24gY29wLiBUaGUgYWxseSBlbmdyYW0gaXMgaW5lZmZlY3Rp dmUgd2l0aG91dCB0aGUgCnBhaW4gZW5ncmFtLCBqdXN0IGFzIHRoZSBjb24g Y29wJ3MgYXJtIGFyb3VuZCB5b3VyIHNob3VsZGVyLCBoaXMgc29mdCBwZXJz dWFzaXZlIAp2b2ljZSBpbiB5b3VyIGVhciwgYXJlIGluZGVlZCBzd2VldCBu b3RoaW5ncyB3aXRob3V0IHRoZSB0b3VnaCBjb3AncyBibGFja2phY2suIApO b3cgdG8gd2hhdCBleHRlbnQgY2FuIHdvcmRzIHJlY29yZGVkIGR1cmluZyBt ZWRpY2FsIHVuY29uc2Npb3VzbmVzcyBiZSByZWNhbGxlZCAKZHVyaW5nIGh5 cG5vc2lzIG9yIHNjaWVudG9sb2dpY2FsIHByb2Nlc3Npbmc/IFRvIHdoYXQg RXh0ZW50IGRvZXMgdGhlIHBsYXliYWNrIApvZiB0aGlzIG1hdGVyaWFsIGFm ZmVjdCB0aGUgc3ViamVjdCB1bnBsZWFzYW50bHk/IElzIHRoZSBlZmZlY3Qg ZW5oYW5jZWQgYnkgCnNjcmFtYmxpbmcgdGhlIG1hdGVyaWFsLCBwYWluIGFu ZCBhbGx5LCBhdCB2ZXJ5IHNob3J0IGludGVydmFscz8gSXQgd291bGQgc2Vl bSAKdGhhdCBhIHNjcmFtYmxlZCBlbmdyYW0ncyBwaWN0dXJlIGNvdWxkIGFs bW9zdCBkdW1wIGFuIG9wZXJhdGluZyBzY2VuZSByaWdodCBpbiAKdGhlIHN1 YmplY3QncyBsYXAuIE1yLiBIdWJiYXJkIGhhcyBjaGFydGVkIGhpcyB2ZXJz aW9uIG9mIHdoYXQgaGUgY2FsbHMgdGhlIApyZWFjdGl2ZSBtaW5kLiBUaGlz IGlzIHJvdWdobHkgc2ltaWxhciB0byBGcmV1ZCdzIElELCBhIHNvcnQgb2Yg YnVpbHQtaW4gc2VsZiAKZGVmZWF0aW5nIG1lY2hhbmlzbS4gQXMgc2V0IGZv cnRoIGJ5IE1yLiBIdWJiYXJkIHRoaXMgY29uc2lzdHMgb2YgYSBudW1iZXIg b2YgCnF1aXRlIG9yZGluYXJ5IHBocmFzZXMuIEhlIGNsYWltcyB0aGF0IHJl YWRpbmcgdGhlc2UgcGhyYXNlcywgb3IgaGVhcmluZyB0aGVtIApzcG9rZW4s IGNhbiBjYXVzZSBpbGxuZXNzLCBhbmQgZ2l2ZXMgdGhpcyBhcyBoaXMgcmVh c29uIGZvciBub3QgcHVibGlzaGluZyB0aGlzIAptYXRlcmlhbC4gSXMgaGUg cGVyaGFwcyBzYXlpbmcgdGhhdCB0aGVzZSBhcmUgbWFnaWMgd29yZHM/IFNw ZWxscywgaW4gZmFjdD8gSWYgCnNvLCB0aGV5IGNvdWxkIGJlIHF1aXRlIGEg d2VhcG9uIHNjcmFtYmxlZCB1cCB3aXRoIGltYWdpbmF0aXZlIHNvdW5kLWFu ZC1pbWFnZSAKdHJhY2suIEhlcmUgbm93IGlzIHRoZSBtYWdpYyB0aGF0IHR1 cm5zIG1lbiBpbnRvIHN3aW5lLiBUbyBiZSBhbiBhbmltYWw6IGEgbG9uZSAK cGlnIGdydW50cywgc2hpdHMsIHNxdWVhbHMgYW5kIHNsb2JiZXJzIGRvd24g Z2FyYmFnZS4gVG8gYmUgYW5pbWFsczogQSBjaG9ydXMgb2YgCmEgdGhvdXNh bmQgcGlncy4gQ3V0IHRoYXQgaW4gd2l0aCB2aWRlbyB0YXBlIHBvbGljZSBw aWN0dXJlcyBhbmQgcGxheSBpdCBiYWNrIHRvIAp0aGVtIGFuZCBzZWUgaWYg eW91IGdldCBhIHJlYWN0aW9uIGZyb20gdGhpcyBzbyByZWFjdGl2ZSBtaW5k LiAKCk5vdyBoZXJlIGlzIGFub3RoZXIuIFRvIGJlIGEgYm9keSwgd2VsbCBp dCdzIHN1cmUgYW4gYXR0cmFjdGl2ZSBib2R5LCByb3BlIHRoZSAKbWFya3Mg aW4uIEFuZCBhIG5pY2UgYm9keSBzeW1waG9ueSB0byBnbyB3aXRoIGl0LCBy eXRobWljIGhlYXJ0IGJlYXRzLCBjb250ZW50ZWQgCnN0b21hY2ggcnVtYmxl cy4gVG8gYmUgYm9kaWVzOiByZWNvcmRpbmdzIGFuZCBwaWN0dXJlcyBvZiBo aWRlb3VzLCBhZ2VkLCAKZGlzZWFzZWQgYm9kaWVzIGZhcnRpbmcsIHBpc3Np bmcsIHNoaXR0aW5nLCBncm9hbmluZywgZHlpbmcuIFRvIGRvIGV2ZXJ5dGhp bmc6IAptYW4gaW4gYSBmaWx0aCBhcGFydG1lbnQgc3Vycm91bmRlZCBieSB1 bnBhaWQgYmlsbHMsIHVuYW5zd2VyZWQgbGV0dGVycywganVtcHMgCnVwIGFu ZCBzdGFydHMgd2FzaGluZyBkaXNoZXMgYW5kIHdyaXRpbmcgbGV0dGVycy4g VG8gZG8gbm90aGluZzogaGUgc2x1bXBzIGluIGEgCmNoYWlyLCBqdW1wcyB1 cCwgc2x1bXBzIGluIGNoYWlyLCBqdW1wcyB1cC4gRmluYWxseSwgc2x1bXBz IGluIGEgY2hhaXIsIGRyb29saW5nIApsaWtlIGFuIGlkaW90IGhlbHBsZXNz bmVzcywgd2hpbGUgaGUgbG9va3MgYXQgdGhlIGRpc29yZGVyIHBpbGVkIGFy b3VuZCBoaW0uIFRoZSAKcmVhY3RpdmUgbWluZCBjb21tYW5kcyBjYW4gYWxz byBiZSB1c2VkIHRvIGFkdmFudGFnZSB3aXRoIGlsbG5lc3MgdGFwZXMuIFdo aWxlIApwcm9qZWN0aW5nIHBhc3QgY29sZCBzb3JlIG9uIHRvIHRoZSBzdWJq ZWN0J3MgZmFjZSwgYW5kIHBsYXlpbmcgaGltIGJhY2sgdG8gaGltIAphIHBh c3QgaWxsbmVzcyB0YXBlLCB5b3UgY2FuIHNheTogdG8gYmUgbWUsIHRvIGJl IHlvdSwgdG8gc3RheSBoZXJlLCB0byBzdGF5IAp0aGVyZSwgdG8gYmUgYSBi b2R5LCB0byBiZSBib2RpZXMsIHRvIHN0YXkgaW4sIHRvIHN0YXkgb3V0LCB0 byBzdGF5IHByZXNlbnQsIHRvIApzdGF5IGFic2VudC4gVG8gd2hhdCBleHRl bnQgYXJlIHRoZXNlIHJlYWN0aXZlIG1pbmQgcGhyYXNlcyB3aGVuIHNjcmFt YmxlZCAKZWZmZWN0aXZlIGluIGNhdXNpbmcgZGlzYWdyZWVhYmxlIHN5bXB0 b21zIGluIGNvbnRyb2wgdm9sdW50ZWVyIHN1YmplY3RzPyBBcyB0byAKTXIu IEh1YmJhcmQncyBjbGFpbSBmb3IgdGhlIHJlYWN0aXZlIG1pbmQsIG9ubHkg cmVzZWFyY2ggY2FuIGdpdmUgdXMgdGhlIAphbnN3ZXJzLiAKClRoZSBSTSB0 aGVuIGlzIGFuIGFydGlmYWN0IGRlc2lnbmVkIHRvIGxpbWl0IGFuZCBzdHVs dGlmeSBvbiBhIG1hc3Mgc2NhbGUuIEluIApvcmRlciB0byBoYXZlIHRoaXMg ZWZmZWN0IGl0IG11c3QgYmUgd2lkZWx5IGltcGxhbnRlZC4gVGhpcyBjYW4g cmVhZGlseSBiZSBkb25lIAp3aXRoIG1vZGVybiBlbGVjdHJvbmljIGVxdWlw bWVudCBhbmQgdGVjaG5pcXVlcyBkZXNjcmliZWQgaW4gdGhpcyB0cmVhdGlz LiBUaGUgClJNIGNvbnNpc3RzIG9mIGNvbW1hbmRzIHdoaWNoIHNlZW0gaGFy bWxlc3MgYW5kIGluIGZhY3QgdW5hdm9pZGFibGUgLi4uIFRvIGJlIGEgCmJv ZHkgLi4uIGJ1dCB3aGljaCBoYXZlIHRoZSBtb3N0IGhvcnJpZmljIGNvbnNl cXVlbmNlcy4gCgpIZXJlIGFyZSBzb21lIHNhbXBsZSBSTSBzY3JlZW4gZWZm ZWN0cyAuLi4gCgpBcyB0aGUgdGhlYXRyZSBkYXJrZW5zIGEgYnJpZ2h0IGxp Z2h0IGFwcGVhcnMgb24gdGhlIGxlZnQgc2lkZSBvZiB0aGUgc2NyZWVuLiAK VGhlIHNjcmVlbiBsaWdodHMgdXAuIAoKVG8gYmUgbm9ib2R5IC4uLiBPbiBz Y3JlZW4gc2hhZG93IG9mIGxhZGRlciBhbmQgc29sZGllciBpbmNpbmVyYXRl ZCBieSB0aGUgCkhpcm9zaGltYSBibGFzdCAKClRvIGJlIGV2ZXJ5Ym9keSAu Li4gU3RyZWV0IGNyb3dkcywgcmlvdHMsIHBhbmljcyAKClRvIGJlIG1lIC4u LiBBIGJlYXV0aWZ1bCBnaXJsIGFuZCBhIGhhbmRzb21lIHlvdW5nIG1hbiBw b2ludCB0byBzZWx2ZXMgCgpUbyBiZSB5b3UgLi4uIFRoZXkgcG9pbnQgdG8g YXVkaWVuY2UgCgpIaWRlb3VzIGhhZ3MgYW5kIG9sZCBtZW4sIGxlcGVycywg ZHJvb2xpbmcgaWRpb3RzIHBvaW50IHRvIHRoZW1zZWx2ZXMgYW5kIHRvIHRo ZSAKYXVkaWVuY2UgYXMgdGhleSBpbnRvbmUgLi4uIAoKVG8gYmUgbWUgCgpU byBiZSB5b3UgCgpDb21tYW5kIG5vIDUgLi4uIFRvIGJlIG15c2VsZiAKCkNv bW1hbmQgbm8gNiAuLi4gVG8gYmUgb3RoZXJzIAoKT24gc2NyZWVuIGEgbmFy Y290aWNzIG9mZmljZXIgaXMgYWRkcmVzc2luZyBhbiBhdWRpZW5jZSBvZiBz Y2hvb2wgYm95cywgc3ByZWFkIApvdXQgaW4gZnJvbnQgb2YgaGltIGFyZSBz eXJpbmdlcywga2llZiBwaXBlcywgc2FtcGxlcyBvZiBoZXJvaW4sIGhhc2hp ZXNoLCBMU0QuIAoKT2ZmaWNlcjogIkZpdmUgdHJpcHMgb24gYSBkcnVnIGNh biBiZSBhIHBsZWFzYW50IGFuZCBleGNpdGluZyBleHBlcmllbmNlLi4uIiAK Ck9uIHNjcmVlbiB5b3VuZyB0cmlwcGVycyAuLi4iSSdtIHJlYWxseSBteXNl bGYgZm9yIHRoZSBmaXJzdCB0aW1lIiBFdGMuIEhhcHB5IAp0cmlwcyAuLi5U byBiZSBteXNlbGYgLi4ubm8gNSAuLi4gCgpPZmZpY2VyOiAiVEhFIFNJWFRI IFdJTEwgUFJPQkFCTFkgQkxPVyBZT1VSIEhFQUQgT0ZGIiAKClNob3Qgc2hv d3MgYSBtYW4gYmxvd2luZyBoaXMgaGVhZCBvZmYgd2l0aCBhIHNob3RndW4g aW4gaGlzIG1vdXRoLi4uIAoKT2ZmaWNlcjogIkxpa2UgYSAxNSB5ZWFyIG9s ZCBib3kgSSBrbmV3IHVudGlsIHJlY2VudGx5LCB5b3UgY291bGQgd2VsbCBl bmQgdXAgCmR5aW5nIGluIHlvdXIgb3duIHNwZXcgLi4uIiBUbyBiZSBvdGhl cnMgbm8gNiAuLi4gCgpUbyBiZSBhbiBhbmltYWwgLi4uIEEgbG9uZSBXb2xm IFNjb3V0IC4uLiAKClRvIGJlIGFuaW1hbHM6IEhlIGpvaW5zIG90aGVyIHdv bGYgc2NvdXRzIHBsYXlpbmcsIGxhdWdoaW5nLCBzaG91dGluZyAKClRvIGJl IGFuIGFuaW1hbCAuLi4gQmVzdGlhbCBhbmQgdWdseSBodW1hbiBiZWhhdmlv dXIgLi4uYnJhd2xzLCBkaXNndXN0aW5nLCAKZWF0aW5nIGFuZCBzZXggc2Nl bmVzIAoKVG8gYmUgYW5pbWFscyAuLi4gQ293cywgc2hlZXAgYW5kIHBpZ3Mg ZHJpdmVuIHRvIHRoZSBzbGF1Z2h0ZXIgaG91c2UgCgpUbyBiZSBhIGJvZHkg CgpUbyBiZSBib2RpZXMgCgpBIGJlYXV0aWZ1bCBib2R5IC4uLiBhIGNvcHVs YXRpbmcgY291cGxlIC4uLiBDdXQgYmFjayBhbmQgZm9ydGggYW5kIHJ1biBv biBzZXZlbiAKc2Vjb25kIGxvb3AgZm9yIHNldmVyYWwgbWludXRlcyAuLi4g c2NyYW1ibGUgYXQgZGlmZmVyZW50IHNwZWVkcyAuLi4gQXVkaWVuY2UgCm11 c3QgYmUgbWFkZSB0byByZWFsaXNlIHRoYXQgdG8gYmUgYSBib2R5IGlzIHRv IGJlIGJvZGllcyAKCi4uLkEgYm9keSBvbmx5IGV4aXN0cyB0byBiZSBvdGhl ciBib2RpZXMuIAoKVG8gYmUgYSBib2R5IC4uLkRlYXRoIHNjZW5lcyBhbmQg cmVjb3JkaW5ncyAuLi4gYSBzY3JhbWJsZSBvZiBsYXN0IHdvcmRzIAoKVG8g YmUgYm9kaWVzIC4uLiBWaXN0YSBvZiBjZW1ldGVyaWVzIC4uLiAKClRvIGRv IGl0IG5vdyAuLi4gQ291cGxlIGVtYnJhY2luZyBob3R0ZXIgYW5kIGhvdHRl ciAKClRvIGRvIGl0IG5vdyAuLi4gQSBjb25kZW1uZWQgY2VsbCAuLi4gQ29u ZGVtbmVkIG1hbiBpcyBzYW1lIGFjdG9yIGFzIGxvdmVyIC4uLiAKSGUgaXMg bGVkIGF3YXkgYnkgdGhlIGd1YXJkcyBzY3JlYW1pbmcgYW5kIHN0cnVnZ2xp bmcuIEN1dCBiYWNrIGFuZCBmb3J0aCAKYmV0d2VlbiBzZXggc2NlbmUgYW5k IG1hbiBsZWQgdG8gZXhlY3V0aW9uLiBDb3VwbGUgaW4gc2V4IHNjZW5lIGhh dmUgYW4gb3JnYXNtIAphcyB0aGUgY29uZGVtbmVkIG1hbiBpcyBoYW5nZWQs IGVsZWN0cm9jdXRlZCwgZ2Fzc2VkLCBnYXJyb3RlZCwgc2hvdCBpbiB0aGUg aGVhZCAKd2l0aCBhIHBpc3RvbCAKClRvIGRvIGl0IGxhdGVyIC4uLiBUaGUg Y291cGxlIHB1bGwgYXdheSAuLi5PbmUgd2FudHMgdG8gZ28gb3V0IGFuZCBl YXQgYW5kIGdvIHRvIAphIHNob3cgb3Igc29tZXRoaW5nLi4uIFRoZXkgcHV0 IG9uIHRoZWlyIGhhdHMgCgpUbyBkbyBpdCBsYXRlciAuLi4gV2FyZGVyIGFy cml2ZXMgYXQgY29uZGVtbmVkIGNlbGwgdG8gdGVsbCB0aGUgcHJpc29uZXIg aGUgaGFzIAphIHN0YXkgb2YgZXhlY3V0aW9uIAoKVG8gZG8gaXQgbm93IC4u LiBHcmltIGZhY2VzIGluIHRoZSBQZW50ZWdvbi4gU3RyYXRlZ2ljIGlzIG9u IHRoZSB3YXkgLi4uIFdlbGwgClRISVMgSVMgSVQgLi4uIFRoaXMgc2VxdWVu Y2UgY3V0IGluIHdpdGggc2V4IHNjZW5lcyBhbmQgYSBjb25kZW1uZWQgbWFu IGxlZCB0byAKZXhlY3V0aW9uLCBjdWxtaW5hdGVzIGluIGV4ZWN1dGlvbiwg b3JnYXNtLCBudWNsZWFyIGV4cGxvc2lvbiAuLi5UaGUgY29uZGVtbmVkIAps b3ZlciBpcyBhIGhvcnJpYmx5IGJ1cm5lZCBzdXJ2aXZvciAKClRvIGRvIGl0 IGxhdGVyIC4uLiAxOTIwIHdhbGsgb3V0IHNlcXVlbmNlIHRvICJUaGUgU3Vu bnkgU2lkZSBvZiB0aGUgU3RyZWV0IiAuLi4gCkEgZGlzYXBwb2ludGVkIGdl bmVyYWwgdHVybnMgZnJvbSB0aGUgcGhvbmUgdG8gc2F5IHRoZSBwcmVzaWRl bnQgaGFzIG9wZW5lZCB0b3AgCmxldmVsIGhvdCB3aXJlIHRhbGtzIHdpdGgg UnVzc2lhIGFuZCBDaGluYSAuLi4gQ29uZGVtbmVkIG1hbiBnZXRzIGFub3Ro ZXIgc3RheSAKb2YgZXhlY3V0aW9uIAoKVG8gYmUgYW4gYW5pbWFsIC4uLiBP bmUgbGVtbWluZyBidXNpbHkgZWF0aW5nIGxpY2hlbiAuLi4gCgpUbyBiZSBh bmltYWxzIC4uLiBIb3JkZXMgb2YgbGVtbWluZ3Mgc3dhcm1pbmcgYWxsIG92 ZXIgZWFjaCBvdGhlciBpbiBtb3VudGluZyAKaHlzdGVyaWEgLi4uQSBwaWxl IG9mIGRyb3duZWQgbGVtbWluZ3MgaW4gZnJvbnQgb2Ygc29tZWJvZHkncyBu aWNlIGxpdHRsZSAKY290dGFnZSBvbiBhIEZpbm5pc2ggbGFrZSB3aGVyZSBo ZSBpcyBtZXRob2RpY2FsbHkgZ29pbmcgdGhyb3VnaCBzZXggcG9zaXRpb25z IAp3aXRoIGhpcyBnaXJsIGZyaWVuZC4gVGhleSB3YWtlIHVwIGluIGEgc3Rp bmsgb2YgZGVhZCBsZW1taW5ncyAKClRvIGJlIGFuIGFuaW1hbCAuLi4gTGl0 dGxlIGJveSBwdXQgb24gYSBwb3QgCgpUbyBiZSBhbmltYWxzIC4uLlRoZSBt YW4gaGFzIGp1c3QgYmVlbiBoYW5nZWQuIFRoZSBkb2N0b3Igc3RlcHMgZm9y d2FyZCB3aXRoIGEgCnN0ZXRob3Njb3BlIAoKVG8gc3RheSBkb3duIC4uLiBC b2R5IGlzIGNhcnJpZWQgb3V0IHdpdGggdGhlIHJvcGUgYXJvdW5kIG5lY2sg Li4uIE5ha2VkIGNvcnBzZXMgCm9uIHRoZSBhdXRvcHN5IHRhYmxlIC4uLiBj b3Jwc2UgYnVyaWVkIGluIHF1aWNrIGxpbWUuCgpUbyBzdGF5IHVwIC4uLkVy ZWN0IHBoYWxsdXMgCgpUbyBzdGF5IGRvd24gLi4uIFdoaXRlIG1hbiBidXJu cyBvZmYgYSBOZWdybydzIGdlbml0YWxzIHdpdGggYmxvdyB0b3JjaCAuLi4g ClRoZWF0cmUgZGFya2VucyBpbnRvIHRoZSBibG93IHRvcmNoIG9uIHRoZSBs ZWZ0IHNpZGUgb2YgdGhlIHNjcmVlbiAKClRvIHN0YXkgcHJlc2VudCAKClRv IHN0YXkgYWJzZW50IAoKVG8gc3RheSBwcmVzZW50IC4uLiBBIGJveSBtYXN0 dXJiYXRlcyBpbiBmcm9udCBvZiBzZXggcGljdHVyZXMgLi4uIEN1dCB0byBm YWNlIApvZiB3aGl0ZSBtYW4gd2hvIGlzIGJ1cm5pbmcgb2ZmIGJsYWNrIGdl bml0YWxzIHdpdGggYmxvdyB0b3JjaCAKClRvIHN0YXkgYWJzZW50IC4uLiBT ZXggcGhhbnRhc2llcyBvZiB0aGUgYm95IC4uLiBUaGUgYmxhY2sgc2x1bXBz IGRlYWQgd2l0aCAKZ2VuaXRhbHMgYnVybmVkIG9mZiBhbmQgaW50ZXN0aW5l cyBwb3BwaW5nIG91dCAKClRvIHN0YXkgcHJlc2VudCAuLi4gQm95IHdhdGNo ZXMgc3RyaXAgdGVhc2UsIGludGVudCwgZmFzY2luYXRlZCAuLi5BIG1hbiBz dGFuZHMgCm9uIHRyYXAgYWJvdXQgdG8gYmUgaGFuZ2VkIAoKVG8gc3RheSBw cmVzZW50IC4uLlNleCBwaGFudGFzaWVzIG9mIHRoZSBib3kgLi4uIkkgcG9u b3VuY2UgdGhpcyBtYW4gZGVhZC4iIAoKVG8gc3RheSBwcmVzZW50IC4uLiBC b3kgd2lzdGxlcyBhdCBnaXJsIGluIHN0cmVldCAuLi4gQSBtYW4ncyBib2R5 IHR3aXN0cyBpbiB0aGUgCmVsZWN0cmljIGNoYWlyLCBoaXMgbGVnIGhhaXJz IGNyYWNrbGluZyBhIGJsdWUgZmlyZSAKClRvIHN0YXkgYWJzZW50IC4uLiBC b3kgc2VlcyBoaW1zZWxmIGluIGJlZCB3aXRoIGdpcmwgLi4uIE1hbiBzbHVt cHMgZGVhZCBpbiAKY2hhaXIgc21va2UgY3VybGluZyBmcm9tIHVuZGVyIHRo ZSBob29kIHNhbGl2YSBkcmlwcGluZyBmcm9tIGhpcyBtb3V0aC4uLiAKClRo ZSB0aGVhdHJlIGxpZ2h0cyB1cC4gSW4gdGhlIHNreSBhIHBsYW5lIG92ZXIg SGlyb3NoaW1hIC4uLkxpdHRsZSBCb3kgc2xpZGVzIApvdXQgCgpUbyBzdGF5 IHByZXNlbnQgLi4uIFRoZSBwbGFuZSwgdGhlIHBpbG90LCB0aGV3IEFtZXJp Y2FuIGZsYWcgLi4uCgpUbyBzdGF5IGFic2VudCAuLi4gdGhlYXRyZSBkYXJr ZW5zIGludG8gYXRvbWljIGJsYXN0IG9uIHNjcmVlbgoKSGVyZSB3ZSBzZWUg b3JkaW5hcnkgbWVuIGFuZCB3b21lbiBnb2luZyBhYm91dCB0aGVpciBvcmRp bmFyeSBldmVyeWRheSBqb2JzIGFuZCAKZGl2ZXJzaW9ucyAuLi4gc3Vid2F5 cywgc3RyZWV0cywgYnVzZXMsIHRyYWlucywgYWlycG9ydHMsIHN0YXRpb25z LCB3YWl0aW5nIApyb29tcywgaG9tZXMsIGZsYXRzLCByZXN0YXVyYW50cy4g b2ZmaWNlcywgZmFjdG9yaWVzIC4uLndvcmtpbmcgLCBlYXRpbmcsIApwbGF5 aW5nLCBkZWZlY2F0aW5nLCBtYWtpbmcgbG92ZS4gCgpBIGNob3J1cyBvZiB2 b2ljZXMgY3V0cyBpbiBSTSBwaHJhc2VzIAoKVG8gc3RheSB1cCAKClRvIHN0 YXkgZG93biAKCkVsZXZhdG9ycywgYWlycG9ydHMsIHN0YWlycywgbGFkZGVy cyAKClRvIHN0YXkgaW4gCgpUbyBzdGF5IG91dCAKClN0cmVldCBzaWducywg ZG9vciBzaWducywgcGVvcGxlIGF0IGhlYWQgb2YgbGluZXMgYWRtaXR0ZWQg dG8gcmVzdGF1cmFudHMgYW5kIAp0aGVhdHJlcyAKClRvIGJlIG15c2VsZiAK ClRvIGJlIG90aGVycyAKCkN1c3RvbXMgYWdlbnRzIGNoZWNrIHBhc3Nwb3J0 cywgbWFuIGlkZW50aWZpZXMgaGltc2VsZiBhdCBiYW5rIHRvIGNhc2ggY2hl cXVlIAoKVG8gc3RheSBwcmVzZW50IAoKVG8gc3RheSBhYnNlbnQgCgpQZW9w bGUgd2F0Y2hpbmcgZmlsbXMsIHJlYWRpbmcsIGxvb2tpbmcgYXQgVFYgLi4u IAoKQSBjb21wb3NpdGUgb2YgdGhpcyBzb3VuZCBhbmQgaW1hZ2UgdHJhY2sg aXMgbm93IHJ1biBvbiBzZXZlbiBzZWNvbmQgbG9vcCAKd2l0aG91dCBjaGFu Z2UgZm9yIHNldmVyYWwgbWludXRlcy4gCgpOb3cgY3V0IGluIHRoZSBob3Jy b3IgcGljdHVyZXMgCgpUbyBzdGF5IHVwIAoKVG8gc3RheSBkb3duIAoKRWxl dmF0b3JzLCBhaXJwb3J0cywgc3RhaXJzLCBsYWRkZXJzLCBoYW5naW5ncywg Y2FzdHJhdGlvbnMgCgpUbyBzdGF5IGluIAoKVG8gc3RheSBvdXQgCgpEb29y IHNpZ25zLCBvcGVyYXRpb24gc2NlbmVzIC4uLiBkb2N0b3IgdG9zc2VzIGJs b29keSB0b25zaWxzLCBhZGVub2lkcywgCmFwcGVuZGl4IGludG8gcmVjZXB0 YWNsZSAKClRvIHN0YXkgcHJlc2VudCAKClRvIHN0YXkgYWJzZW50IAoKUGVv cGxlIHdhdGNoaW5nIGZpbG0gLi4uIGV0aGVyIG1hc2ssIGV0aGVyIHZlcnRp Z28gLi4uIHRyaWFuZ2xlcywgc3BoZXJlcywgCnJlY3RhbmdsZXMsIHB5cmFt aWRzLCBwcmlzbXMsIGNvaWxzIGdvIGF3YXkgYW5kIGNvbWUgaW4gcmVndWxh ciBzZXF1ZW5jZSAuLi5hIApjb2lsIGNvbWluZyBpbiwgdHdvIGNvaWxzIGNv bWluZyBpbiwgdGhyZWUgY29pbHMgY29taW5nIGluIC4uLiBhIGNvaWwgZ29p bmcgCmF3YXksIHR3byBjb2lscyBnb2luZyBhd2F5LCBmb3VyIGdvaW5nIGF3 YXkgCgpBIGNvaWwgc3RyYWlnaHQgYWhlYWQgZ29pbmcgYXdheSwgdHdvIGNv aWxzIG9uIHRoZSBsZWZ0IGFuZCByaWdodCBnb2luZyBhd2F5LiAKdGhyZWUg Y29pbHMgbGVmdCByaWdodCBhbmQgY2VudHJlIGdvaW5nIGF3YXksIGZvdXIg Y29pbHMgcmlnaHQgbGVmdCBjZW50cmUgZ29pbmcgCmF3YXkgCgpBIGNvaWwg Y29taW5nLCB0d28gY29pbHMgY29taW5nIGluLCB0aHJlZSBjb2lscyBjb21p bmcgaW4sIGZvdXIgY29pbHMgY29taW5nIGluIAouLi4gc3BpcmFscyBvZiBs aWdodCAuLi4gcm91bmQgYW5kIHJvdW5kIGZhc3RlciwgYmFieSBlYXRlbiBi eSByYXRzLCBoYW5naW5ncywgCmVsZWN0cm9jdXRpb25zLCBjYXN0cmF0aW9u cy4uLi4gCgpUaGUgUk0gY2FuIGJlIGN1dCBpbiB3aXRoIHRoZSBtb3N0IG9y ZGluYXJ5IHNjZW5lcyBjb3ZlcmluZyB0aGUgcGxhbmV0IGluIGEgc21vZyAK b2YgZmVhciAuLi4gCgpUaGUgUk0gaXMgYSBidWlsdC1pbiBlbGVjdHJvbmlj IHBvbGljZSBmb3JjZSBhcm1lZCB3aXRoIGhpZGVvdXMgdGhyZWF0cy4gWW91 IApkb24ndCB3YW50IHRvIGJlIGEgY3V0ZSBsaXR0bGUgd29sZiBjdWI/IEFs bCByaWdodCwgY2F0dGxlIHRvIHRoZSBzbGF1Z2h0ZXIgCmhvdXNlIG1lYXQg b24gYSBob29rLiAKCkhlcmUgaXMgYSBub3N0YWxnaWMgcmVjb25zdHJ1Y3Rp b24gb2YgdGhlIG9sZCBmYXNoaW9uZWQgTWF5YW4gbWV0aG9kcy4gVGhlIHdy b25nIApraW5kIG9mIHdvcmtlcnMgd2l0aCB3cm9uZyB0aG91Z2h0cyBhcmUg dG9ydHVyZWQgdG8gZGVhdGggaW4gcm9vbXMgdW5kZXIgdGhlIApweXJhbWlk IC4uLiBBIHlvdW5nIHdvcmtlciBoYXMgYmVlbiBnaXZlbiBhIHBvd2VyZnVs IGhhbGx1Y2lnZW4gYW5kIGEgc2V4dWFsIApzdGltdWxhbnQgLi4uIE5ha2Vk IGhlIGlzIHN0cmlwcGVkIGRvd24gYW5kIHNraW5uZWQgYWxpdmUgLi4uIFRo ZSBHb2RzIG9mIHBhaW4gCmFyZSBzdXJmYWNpbmcgZnJvbSB0aGUgaW1tZW1v cmlhbCBmaWx0aCBvZiB0aW1lIC4uLlRoZSBPdWFiIGJpcmQgc3RhbmRzIHRo ZXJlLCAKc2NyZWFtcywgd2FzaGluZyB0aHJvdWdoIGhpcyB3aWxkIGJsdWUg ZXllcy4gT3RoZXJzIGFyZSBjcmFicyBmcm9tIHRoZSB3YWlzdCB1cCAKY2xp Y2tpbmcgdGhlaXIgY2xhd3MgaW4gZWNzdGFzeSwgdGhleSBkYW5jZSBhcm91 bmQgYW5kIG1pbWljIHRoZSBmbGF2ZWQgbWFuLiBUaGUgCnNjcmliZXMgYXJl IGJ1c3kgd2l0aCBza2V0Y2hlcyAuLi5Ob3cgaGUgaXMgc3RyYXBwZWQgaW50 byBhIHNlZ21lbnRlZCBjb3BwZXIgCmNlbnRpcGVkZSBhbmQgcGxhY2VkIGdl bnRseSBvbiBhIGJlZCBvZiBob3QgY29hbHMgLi4uIFNvb24gdGhlIHByaWVz dHMgd2lsbCBkaWcgCnRoZSBzb2Z0IG1lYXQgZnJvbSB0aGUgc2hlbGwgd2l0 aCB0aGVpciBnb2xkZW4gY2xhd3MgLi4uIEhlcmUgaXMgYW5vdGhlciB5b3V0 aCAKc3Rha2VkIG91dCBvbiBhbiBhbnQgaGlsbCBob25leSBzbWVhcmVkIG9u IGhpcyBleWVzIGFuZCBnZW5pdGFscyAuLi5PdGhlcnMgd2l0aCAKaGVhdnkg d2VpZ2h0cyBvbiB0aGVpciBiYWNrcyBhcmUgc2xvd2x5IGRyYWdnZWQgdGhy b3VnaCB0aGUgd29vZGVuIHRyb3VnaHMgaW4gCndoaWNoIHNoYXJkcyBvYnNp ZGlhbiBoYXZlIGJlZW4gZHJpdmVuIC4uLlNvIHRoZSBwcmllc3RzIGFyZSB0 aGUgbWFzdGVycyBvZiBwYWluIAphbmQgZmVhciBhbmQgZGVhdGggLi4uVG8g ZG8gcmlnaHQuLi4gdG8gb2JleSB0aGUgcHJpZXN0cyAuLi4gVG8gZG8gd3Jv bmc/IHRoZSAKcHJpZXN0J3MgdmVyeSBwcmVzZW5jZSBhbmQgYSBmZXcgYmFu YWwgd29yZHMuLi4uIAoKVGhlIHByaWVzdHMgcG9zdHVsYXRlZCBhbmQgc2V0 IHVwIGEgaGVybWV0aWMgdW5pdmVyc2Ugb2Ygd2hpY2ggdGhleSB3ZXJlIHRo ZSAKYXhpb21hdGljIGNvbnRyb2xsZXJzLiBJbiBzbyBkb2luZyB0aGV5IGJl Y2FtZSBHb2RzIHdobyBjb250cm9sbGVkIHRoZSBrbm93biAKdW5pdmVyc2Ug b2YgdGhlIHdvcmtlcnMuIFRoZXkgYmVjYW1lIEZlYXIgYW5kIFBhaW4sIERl YXRoIGFuZCBUaW1lLiBCeSBtYWtpbmcgCm9wcG9zaXRpb24gc2VlbWluZ2x5 IGltcG9zc2libGUgdGhleSBmYWlsZWQgdG8gbWFrZSBhbnkgcHJvdmlzaW9u IGZvciAKb3Bwb3NpdGlvbi4gVGhlcmUgaXMgZXZpZGVuY2UgdGhhdCB0aGlz IGNvbnRyb2wgc3lzdGVtIGJyb2tlIGRvd24gaW4gc29tZSBhcmVhcyAKYmVm b3JlIHRoZSBhcnJpdmFsIG9mIHRoZSBXaGl0ZSBHb2QuIFN0ZWxsYWUgaGF2 ZSBiZWVuIGZvdW5kIGRlZmFjZWQgYW5kIApvdmVydHVybmVkLCBtdXRlIGV2 aWRlbmNlIG9mIGEgd29ya2VyJ3MgcmV2b2x1dGlvbi4gSG93IGRpZCB0aGlz IGhhcHBlbj8gVGhlIApoaXN0b3J5IG9mIHJldm9sdXRpb25hcnkgbW92ZW1l bnRzIHNob3dzIHRoYXQgdGhleSBhcmUgdXN1YWxseSBsZWQgYnkgZGVmZWN0 b3JzIApmcm9tIHRoZSBydWxpbmcgY2xhc3MuIFRoZSBTcGFuaXNoIHJ1bGUg aW4gU291dGggQW1lcmljYSB3YXMgb3ZlcnRocm93biBieSAKU3BhbmlzaCBy ZXZvbHV0aW9uYXJpZXMuIFRoZSBGcmVuY2ggd2VyZSBkcml2ZW4gb3V0IG9m IEFsZ2VyaWEgYnkgQWxnZXJpYW5zIAplZHVjYXRlZCBpbiBGcmFuY2UuIFBl cmhhcHMgb25lIG9mIHRoZSBwcmllc3QgR29kcyBkZWZlY3RlZCBhbmQgb3Jn YW5pc2VkIGEgCndvcmtlcidzIHJldm9sdXRpb24gLi4uIAoKVGhlIHByaWVz dCBHb2RzIGluIHRoZSB0ZW1wbGUuIFRoZXkgbW92ZSB2ZXJ5IHNsb3dseSwg ZmFjZXMgcmF2YWdlZCB3aXRoIGFnZSBhbmQgCmRpc2Vhc2UuIFBhcmFzaXRp YyB3b3JtcyBpbmZlc3QgdGhlaXIgZmxlc2guIFRoZXkgYXJlIG1ha2luZyBj YWxjdWxhdGlvbnMgZm9yIAp0aGUgc2FjcmVkIGJvb2tzLiAKCiI0MDAsMDAw LDAwMCB5ZWFycyBhZ28gb24gdGhpcyBkYXkgYSBncmlldm91cyB0aGluZyBo YXBwZW5lZC4uLiIgCgpMaW1lc3RvbmUgc2t1bGxzIHJhaW4gaW4gdGhyb3Vn aCB0aGUgcG9ydGljb3MuIFRoZSBZb3VuZyBNYWl6ZSBHb2QgbGVhZHMgdGhl IAp3b3JrZXJzIGFzIHRoZXkgc3Rvcm0gdGhlIHRlbXBsZSBhbmQgZHJhZyB0 aGUgcHJpZXN0cyBvdXQuIFRoZXkgYnVpbGQgYSBodWdlIApicnVzaCBmaXJl LCB0aHJvdyB0aGUgcHJpZXN0cyBpbiBhbmQgdGhlbiB0aHJvdyB0aGUgc2Fj cmVkIGJvb2tzIGluIGFmdGVyIHRoZW0uIApUaW1lIGJ1Y2tsZXMgYW5kIGJl bmRzLiBUaGUgb2xkIEdvZHMsIHN1cmZhY2luZyBmcm9tIHRoZSBpbW1lbW9y aWFsIGRlcHRocyBvZiAKdGltZSwgYnVyc3QgaW4gdGhlIHNreSAuLi4gTXIg SGFydCBzdGFuZHMgdGhlcmUgbG9va2luZyBhdCB0aGUgYnJva2VuIHNlbGxh ZSAuLi4gCiJIb3cgZGlkIHRoaXMgaGFwcGVuPyIgCgpIaXMgY29udHJvbCBz eXN0ZW0gbXVzdCBiZSBhYnNvbHV0ZSBhbmQgd29ybGQgd2lkZS4gQmVjYXVz ZSBzdWNoIGEgY29udHJvbCAKc3lzdGVtIGlzIGV2ZW4gbW9yZSB2dWxuZXJh YmxlIHRvIGF0dGFjayBmcm9tIHdpdGhvdXQgdGhhbiByZXZvbHQgd2l0aGlu Li4uIEhlcmUgCmlzIEJpc2hvcCBMdWFuZGEgYnVybmluZyBidXJuaW5nIHNh Y3JlZCBib29rcy4gVG8gZ2l2ZSB5b3UgYW4gaWRlYSBhcyB0byB3aGF0IGlz IApoYXBwZW5pbmcsIGltYWdpbmUgb3VyIGNpdmlsaXNhdGlvbiBpbnZhZGVk IGJ5IGxvdXRzIGZyb20gb3V0ZXIgc3BhY2UuLi4gCgoiR2V0IHNvbWUgYnVs bGRvemVycyBpbiBoZXJlLiBDbGVhciBvdXQgYWxsIHRoaXMgY3JhcC4uLiIg VGhlIGZvcm11bGFlIG9mIGFsbCAKbmF0dXJhbCBzY2llbmNlcywgYm9va3Ms IHBhaW50aW5ncywgdGhlIGxvdCwgc3dlcHQgaW50byBhIHZhc3QgcGlsZSBh bmQgYnVybmVkLiAKYW5kIHRoYXQncyBpdC4gTm8gb25lIGV2ZXIgaGVhcmQg b2YgaXQuIAoKVGhyZWUgY29kaWNlcyBzdXJ2aXZlZCB0aGUgdmFuZGFsaXNt IG9mIEJpc2hvcCBMYW5kYSBhbmQgdGhlc2UgYXJlIGJ1cm5lZCBhcm91bmQg CnRoZSBlZGdlcy4gCgpObyB3YXkgdG8ga25vdyBpZiB3ZSBoYXZlIGhlcmUg dGhlIHNvbm5ldHMsIHRoZSBNb25hIExpc2Egb3IgdGhlIHJlbWVuYW50cyBv ZiBhIApTZWFycyBSb2VidWNrIGNhdGFsb2d1ZSBhZnRlciB0aGUgb2xkIG91 dC1ob3VzZSBidXJuZWQgZG93biBpbiBhIGJydXNoIGZpcmUuIEEgCndob2xl IGNpdmlsaXNhdGlvbiB3ZW50IHVwIGluIHNtb2tlLi4uIAoKV2hlbiB0aGUg U3BhbmlhcmRzIGFycml2ZWQsIHRoZXkgZm91bmQgdGhlIE1heWFuIGFyaXN0 b2NyYXRzIGxvbGxpbmcgaW4gCmhhbW1vY2tzLiBXZWxsLCB0aW1lIHRvIHNo b3cgdGhlbSB3aGF0IGlzIHdoYXQuIEZpdmUgY2FwdHVyZWQgd29ya2VycyBi b3VuZCBhbmQgCnN0cmlwcGVkLCBhcmUgY2FzdHJhdGVkIG9uIGEgdHJlZSBz dHVtcC4gdGhlIGJsZWVkaW5nIHNvYmJpbmcsIHNjcmVhbWluZyBib2RpZXMg CmJvZGllcyB0aHJvd24gaW50byBhIHBpbGUuLi4gCgoiQW5kIG5vdyBnZXQg dGhpcyB0aHJvdWdoIHlvdXIgZ29vayBudXRzLiBXZSB3YW50IHRvIHNlZSBh IHBpbGUgb2YgZ29sZCBiaWcgYW5kIAp3ZSB3YW50IHRvIHNlZSBpdCBwcm9u dG8uIFRoZSBXaGl0ZSBHb2QgaGFzIHNwb2tlbi4iIAoKQ29uc2lkZXIgbm93 IHRoZSBodW1hbiB2b2ljZSBhcyBhIHdlYXBvbi4gVG8gd2hhdCBleHRlbnQg Y2FuIHRoZSB1bmFpZGVkIGh1bWFuIAp2b2ljZSBkdXBsaWNhdGUgZWZmZWN0 cyB0aGF0IGNhbiBiZSBkb25lIHdpdGggYSB0YXBlIHJlY29yZGVyPyBMZWFy bmluZyB0byBzcGVhayAKd2l0aCB0aGUgbW91dGggc2h1dCwgdGh1cyBkaXNw bGFjaW5nIHlvdXIgc3BlZWNoLCBpcyBmYWlybHkgZWFzeS4gWW91IGNhbiBh bHNvIApsZWFybiB0byBzcGVhayBiYWNrd2FyZHMsIHdoaWNoIGlzIGZhaXJs eSBkaWZmaWN1bHQuIEkgaGF2ZSBzZWVuIHBlb3BsZSB3aG8gY2FuIApyZXBl YXQgd2hhdCB5b3UgYXJlIHNheWluZyBhZnRlciB5b3UgYW5kIGZpbmlzaCBh dCB0aGUgc2FtZSB0aW1lLiBUaGlzIGlzIGEgbW9zdCAKZGlzY29uY2VydGlu ZyB0cmljaywgcGFydGljdWxhcmx5IHdoZW4gcHJhY2l0aWNlZCBvbiBhIG1h c3Mgc2NhbGUgYXQgYSBwb2xpdGljYWwgCnJhbGx5LiBJcyBpdCBwb3NzaWJs ZSB0byBhY3R1YWxseSBzY3JhbWJsZSBzcGVlY2g/IEEgZmFyLXJlYWNoaW5n IGJpb2xvZ2ljIAp3ZWFwb24gY2FuIGJlIGZvcmdlZCBmcm9tIGEgbmV3IGxh bmd1YWdlLiBJbiBmYWN0IHN1Y2ggYSBsYW5ndWFnZSBhbHJlYWR5IApleGlz dHMuIEl0IGV4aXN0cyBhcyBDaGluZXNlLCBhIHRvdGFsIGxhbmd1YWdlIGNs b3NlciB0byBtdWx0aWxldmFsIHN0cnVjdHVyZSBvZiAKZXhwZXJpZW5jZSwg d2l0aCBhIHNjcmlwdCBkZXJpdmVkIGZyb20gaGllcm9nbHlwaHMsIG1vcmUg Y2xvc2VseSByZWxhdGVkIHRvIHRoZSAKb2JqZWN0cyBhbmQgYXJlYXMgZGVz Y3JpYmVkLiBUaGUgZXF1YW5pbWl0eSBvZiB0aGUgQ2hpbmVzZSBpcyB1bmRv dWJ0ZWRseSAKZGVyaXZlZCBmcm9tIHRoZWlyIGxhbmd1YWdlIGJlaW5nIHN0 cnVjdHVyZWQgZm9yIGdyZWF0ZXIgc2FuaXR5LiBJIG5vdGljZSB0aGUgCkNo aW5lc2UsIHdoZXJldmVyIHRoZXkgYXJlIHJldGFpbiB0aGUgd3JpdHRlbiBh bmQgc3Bva2VuIGxhbmd1YWdlLCB3aGlsZSBvdGhlciAKaW1taWdyYW50IHBl b3BsZXMgd2lsbCBsb3NlIHRoZWlyIGxhbmd1YWdlIGluIHR3byBnZW5lcmF0 aW9ucy4gVGhlIGFpbSBvZiB0aGlzIApwcm9qZWN0IGlzIHRvIGJ1aWxkIHVw IGEgbGFuZ3VhZ2UgaW4gd2hpY2ggY2VydGFpbiBmYWxzaWZpY2F0aW9ucyBp bmhlcml0IGluIGFsbCAKZXhpc3Rpbmcgd2VzdGVybiBsYW5ndWFnZXMgd2ls bCBiZSBtYWRlIGluY2FwYWJsZSBvZiBmb3JtdWxhdGlvbi4gVGhlIGZvbGxv dy0KZmFsc2lmaWNhdGlvbnMgdG8gYmUgZGVsZXRlZCBmcm9tIHRoZSBwcm9w b3NlZCBsYW5ndWFnZS4KClRoaXMgSVMgT0YgSURFTlRJVFkuIFlvdSBhcmUg YW4gYW5pbWFsLiBZb3UgYXJlIGEgYm9keS4gTm93IHdoYXRldmVyIHlvdSBt YXkgYmUgCnlvdSBhcmUgbm90IGFuICJhbmltYWwiLCB5b3UgYXJlIG5vdCBh ICJib2R5IiwgYmVjYXVzZSB0aGVzZSBhcmUgdmVyYmFsIGxhYmVscy4gClRo ZSBJUyBvZiBpZGVudGl0eSBhbHdheXMgY2FycmllcyB0aGUgYXNzaWdubWVu dCBvZiBwZXJtYW5lbnQgY29uZGl0aW9uLiBUbyBzdGF5IAp0aGF0IHdheS4g QWxsIG5hbWUgY2FsbGluZyBwcmVzdXBwb3NlcyB0aGUgSVMgb2YgaWRlbnRp dHkuIFRoaXMgY29uY2VwdCBpcyAKdW5uZWNlc3NhcnkgaW4gYSBoaWVyb2ds eXBoaWMgbGFuZ3VhZ2UgbGlrZSBhbmNpZW50IEVneXB0aWFuIGFuZCBpbiBm YWN0IApmcmVxdWVudGx5IG9taXR0ZWQuIE5vIG5lZWQgdG8gc2F5IHRoZSBz dW4gSVMgaW4gdGhlIHNreSwgc3VuIGluIHNreSBzdWZmaWNlcy4gClRoZSB2 ZXJiIFRPIEJFIGNhbiBlYXNpbHkgYmUgb21pdHRlZCBmcm9tIGFueSBsYW5n dWFnZXMgYW5kIHRoZSBmb2xsb3dlcnMgb2YgCkNvdW50IEtvcmd5YnNraSBo YXZlIGRvbmUgdGhpcywgZWxpbWluYXRpbmcgdGhlIHZlcmIgVE8gQkUgaW4g RW5nbGlzaC4gSG93ZXZlciwgCml0IGlzIGRpZmZpY3VsdCB0byB0aWR5IHVw IHRoZSBFbmdsaXNoIGxhbmd1YWdlIGJ5IGFyYml0cmFyeSBleGNsdXNpb24g b2YgCmNvbmNlcHRzIHdoaWNoIHJlbWFpbiBpbiBmb3JjZSBzbyBsb25nIGFz IHRoZSB1bmNoYW5nZWQgbGFuZ3VhZ2UgaXMgc3Bva2VuLiAKClRIRSBERUZJ TklURSBBUlRJQ0xFIFRIRS4gVEhFIGNvbnRhaW5zIHRoZSBpbXBsaWNhdGlv biBvZiBvbmUgYW5kIG9ubHk6IFRIRSBHb2QsIApUSEUgdW5pdmVyc2UsIFRI RSB3YXksIFRIRSByaWdodCwgVGhlIHdyb25nLCBJZiB0aGVyZSBpcyBhbm90 aGVyLCB0aGVuIFRIQVQgCnVuaXZlcnNlLCBUSEFUIHdheSBpcyBubyBsb25n ZXIgVEhFIHVuaXZlcnNlLCBUaGUgd2F5LiBUaGUgZGVmaW5pdGUgYXJ0aWNs ZSBUSEUgCndpbGwgYmUgZGVsZXRlZCBhbmQgdGhlIGluZGVmaW5pdGUgYXJ0 aWNsZSBBIHdpbGwgdGFrZSBpdCdzIHBsYWNlLiAKClRIRSBXSE9MRSBDT05D RVBUIE9GIEVJVEhFUi9PUi4gUmlnaHQgb3Igd3JvbmcsIHBoeXNpY2FsIG9y IG1lbnRhbCwgdHJ1ZSBvciAKZmFsc2UsIHRoZSB3aG9sZSBjb25jZXB0IG9m IE9SIHdpbGwgYmUgZGVsZXRlZCBmcm9tIHRoZSBsYW5ndWFnZSBhbmQgcmVw bGFjZWQgYnkgCmp1eHRhcG9zaXRpb24sIGJ5IEFORCBUaGlzIGlzIGRvbmUg dG8gc29tZSBleHRlbnQgaW4gYW55IHBpY3RvcmlhbCBsYW5ndWFnZSAKd2hl cmUgdHdvIGNvbmNlcHRzIHN0YW5kIGxpdGVyYWxseSBzaWRlIGJ5IHNpZGUu IFRoZXNlIGZhbHNpZmljYXRpb25zIGluaGVyZW50IAppbiB0aGUgRW5nbGlz aCBhbmQgb3RoZXIgd2VzdGVybiBhbHBoYWJldGljYWwgbGFuZ3VhZ2VzIGdp dmUgdGhlIHJlYWN0aXZlIG1pbmQgCmNvbW1hbmRzIHRoZWlyIG92ZXJ3aGVs bWluZyBmb3JjZSBpbiB0aGVzZSBsYW5ndWFnZXMuIENvbnNpZGVyIHRoZSBJ UyBvZiAKaWRlbnRpdHkuIFdoZW4gSSBzYXkgdG8gYmUgbWUsIHRvIGJlIHlv dSwgdG8gYmUgbXlzZWxmLCB0byBiZSBvdGhlcnMtIHdoYXRldmVyIEkgCm1h eSBiZSBjYWxsZWQgdXBvbiB0byBiZSBvciB0byBzYXkgdGhhdCBJIGFtLSBJ IGFtIG5vdCB0aGUgdmVyYmFsIGxhYmVsIAoibXlzZWxmLiIgVGhlIHdvcmQg QkUgaW4gdGhlIEVuZ2xpc2ggbGFuZ3VhZ2UgY29udGFpbnMsIGFzIGEgdmly dXMgY29udGFpbnMsIGl0cyAKcHJlY29kZWQgbWVzc2FnZSBvZiBkYW1hZ2Us IHRoZSBjYXRlZ29yaWFsIGltcGVyYXRpdmUgb2YgcGVybWFuZW50IGNvbmRp dGlvbi4gVG8gCmJlIGEgYm9keSwgdG8gYmUgYW4gYW5pbWFsLiBJZiB5b3Ug c2VlIHRoZSByZWxhdGlvbiBvZiBhIHBpbG90IHRvIGhpcyBzaGlwLCB5b3Ug CnNlZSBjcmlwcGxpbmcgZm9yY2Ugb2YgdGhlIHJlYWN0aXZlIG1pbmQgY29t bWFuZCB0byBiZSBhIGJvZHkuIFRlbGxpbmcgdGhlIHBpbG90IAp0byBiZSB0 aGUgcGxhbmUsIHRoZW4gd2hvIHdpbGwgcGlsb3QgdGhlIHBsYW5lPyAKClRo ZSBJUyBvZiBpZGVudGl0eSwgYXNzaWduaW5nIGEgcmlnaWQgYW5kIHBlcm1h bmVudCBzdGF0dXMsIHdhcyBncmVhdGx5IApyZWluZm9yY2VkIGJ5IHRoZSBj dXN0b21zIGFuZCBwYXNzcG9ydCBjb250cm9sIHRoZSBjYW1lIGluIGFmdGVy IFdvcmxkIFdhciBJLiAKV2hhdGV2ZXIgeW91IG1heSBiZSwgeW91IGFyZSBu b3QgdGhlIHZlcmJhbCBsYWJlbHMgaW4geW91ciBwYXNzcG9ydC4gYW55IG1v cmUgCnRoYW4geW91IGFyZSB0aGUgd29yZCAic2VsZi4iIFNvIHlvdSBtdXN0 IGJlIHByZXBhcmVkIHRvIHByb3ZlIGF0IGFsbCB0aW1lcyB0aGF0IAp5b3Ug YXJlIHdoYXQgeW91IGFyZSBub3QuIE11Y2ggb2YgdGhlIGZhbHNpZmljYXRp b24gaW5oZXJlbnQgaW4gdGhlIGNhdGVnb3JpY2FsIApkZWZpbml0ZSBUSEUu IFRIRSBub3csIFRIRSBwYXN0LCBUSEUgdGltZSwgVEhFIHNwYWNlLCBUSEUg ZW5lcmd5LCBUSEUgbWF0dGVyLCAKVEhFIHVuSXZlcnNlLiBEZWZpbml0ZSBh cnRpY2xlIFRIRSBjb250YWlucyB0aGUgaW1wbGljYXRpb25zIG9mIG5vIG90 aGVyLiBUSEUgCnVuaXZlcnNlIGxvY2tzIHlvdSBpbiBUSEUsIGFuZCBkZW5p ZXMgdGhlIHBvc3NpYmlsaXR5IG9mIGFueSBvdGhlci4gSWYgb3RoZXIgCnVu aXZlcnNlcyBhcmUgcG9zc2libGUsIHRoZW4gdGhlIHVuaXZlcnNlIGlzIG5v IGxvbmdlciBUSEUgaXQgYmVjb21lcyBBLiBUaGUgCmRlZmluaXRlIGFydGlj bGUgVEhFIGlzIGRlbGV0ZWQgYW5kIHJlcGxhY2VkIGJ5IEEuIG1hbnkgb2Yg dGhlIFJNIGNvbW1hbmRzIGFyZSAKaW4gcG9pbnQgb2YgZmFjdCBjb250cmFk aWN0b3J5IGNvbW1hbmRzIGFuZCBhIGNvbnRyYWRpY3RvcnkgY29tbWFuZCBn YWlucyBpdHMgCmZvcmNlIGZyb20gdGhlIEFyaXN0b3RlbGlhbiBjb25jZXB0 IG9mIGVpdGhlci9vci4gVG8gZG8gZXZlcnl0aGluZywgdG8gZG8gCm5vdGhp bmcsIHRvIGhhdmUgZXZlcnl0aGluZywgdG8gaGF2ZSBub3RoaW5nLCB0byBk byBpdCBhbGwsIHRvIGRvIG5vdCBhbnksIHRvIApzdGF5IHVwLCB0byBzdGF5 IGRvd24sIHRvIHN0YXkgaW4sIHRvIHN0YXkgb3V0LCB0byBzdGF5IHByZXNl bnQsIHRvIHN0YXkgYWJzZW50LiAKVGhlc2UgYXJlIGluIHBvaW50IG9mIGZh Y3QgZWl0aGVyL29yIHByb3Bvc2l0aW9ucy4gVG8gZG8gbm90aGluZyBPUiBl dmVyeXRoaW5nLCAKdG8gaGF2ZSBpdCBhbGwsIE9SIG5vdCBhbnksIHRvIHN0 YXkgcHJlc2VudCBPUiB0byBzdGF5IGFic2VudC4gRWl0aGVyL29yIGlzIG1v cmUgCmRpZmZpY3VsdCB0byBmb211bGF0ZSBpbiBhIHdyaXR0ZW4gbGFuZ3Vh Z2Ugd2hlcmUgYm90aCBhbHRlcm5hdGl2ZXMgYXJlIApwaWN0b3JpYWxseSBy ZXByZXNlbnRlZCBhbmQgY2FuIGJlIGRlbGV0ZWQgZW50aXJlbHkgZnJvbSB0 aGUgc3Bva2VuIGxhbmd1YWdlLiAKVGhlIHdob2xlIHJlYWN0aXZlIG1pbmQg Y2FuIGJlIGluIGZhY3QgcmVkdWNlZCB0byB0aHJlZSBsaXR0bGUgd29yZHMg LSB0byBiZSAKIlRIRSIuIFRoYXQgaXMgdG8gYmUgd2hhdCB5b3UgYXJlIG5v dCwgdmVyYmFsIGZvcm11bGF0aW9ucy4gCgpJIGhhdmUgZnJlcXVlbnRseSBz cG9rZW4gb2Ygd29yZCBhbmQgaW1hZ2UgYXMgdmlydXNlcyBvciBhcyBhY3Rp bmcgYXMgdmlydXNlcywgCmFuZCB0aGlzIGlzIG5vdCBhbiBhbGxlZ29yaWNh bCBjb21wYXJpc29uLiBJdCB3aWxsIGJlIHNlZW4gdGhhdCB0aGUgCmZhbHNp ZmljYXRpb25zIG9mIHN5bGxhYmljIHdlc3Rlcm4gbGFuZ3VhZ2VzIGFyZSBp biBwb2ludCBvZiBmYWN0IGFjdHVhbCB2aXJ1cyAKbWVjaGFuaXNtcy4gVGhl IElTIG9mIGlkZW50aXR5IHRoZSBwdXJwb3NlIG9mIGEgdmlydXMgaXMgdG8g U1VSVklWRS4gVG8gc3Vydml2ZSAKYXQgYW55IGV4cGVuc2UgdG8gdGhlIGhv c3QgaW52YWRlZC4gVG8gYmUgYW4gYW5pbWFsLCB0byBiZSBhIGJvZHkuIFRv IGJlIGFuIAphbmltYWwgYm9keSB0aGF0IHRoZSB2aXJ1cyBjYW4gaW52YWRl LiBUbyBiZSBhbmltYWxzLCB0byBiZSBib2RpZXMuIFRvIGJlIG1vcmUgCmFu aW1hbCBib2RpZXMsIHNvIHRoYXQgdGhlIHZpcnVzIGNhbiBtb3ZlIGZyb20g b25lIGJvZHkgdG8gYW5vdGhlci4gVG8gc3RheSAKcHJlc2VudCBhcyBhbiBh bmltYWwgYm9keSwgdG8gc3RheSBhYnNlbnQgYXMgYW50aWJvZHkgb3IgcmVz aXN0YW5jZSB0byB0aGUgYm9keSAKaW52YXNpb24uIAoKVGhlIGNhdGVnb3Jp YWwgVEhFIGlzIGFsc28gYSB2aXJ1cyBtZWNoYW5pc20sIGxvY2tpbmcgeW91 IGluIFRIRSB2aXJ1cyB1bml2ZXJzZS4gCkVJVEhFUi9PUiBpcyBhbm90aGVy IHZpcnVzIGZvcm11bGEuIEl0IGlzIGFsd2F5IHlvdSBPUiB0aGUgdmlydXMu IEVJVEhFUi9PUi4gClRoaXMgaXMgaW4gcG9pbnQgb2YgZmFjdCB0aGUgY29u ZmxpY3QgZm9ybXVsYSB3aGljaCBpcyBzZWVuIHRvIGJlIGFyY2hldHlwaWNh bCAKdmlydXMgbWVjaGFuaXNtLiBUaGUgcHJvcG9zZWQgbGFuZ3VhZ2Ugd2ls bCBkZWxldGUgdGhlc2UgdmlydXMgbWVjaGFuaXNtcyBhbmQgCm1ha2UgdGhl bSBpbXBvc3NpYmxlIG9mIGZvcm11bGF0aW9uIGluIHRoZSBsYW5ndWFnZS4g VGhpcyBsYW5ndWFnZSB3aWxsIGJlIGEgCnRvbmFsIGxhbmd1YWdlIGxpa2Ug Q2hpbmVzZSwgaXQgd2lsbCBhbHNvIGhhdmUgYSBoaWVyb2dseXBoaWMgc2Ny aXB0IGFzIApwaWN0b3JpYWwgYXMgcG9zc2libGUgd2l0aG91dCBiZWluZyB0 byBjdW1iZXJzb21lIG9yIGRpZmZpY3VsdCB0byB3cml0ZS4gVGhpcyAKbGFu Z3VhZ2Ugd2lsbCBnaXZlIG9uZSBvcHRpb24gb2Ygc2lsZW5jZS4gV2hlbiBu b3QgdGFsa2luZywgdGhlIHVzZXIgb2YgdGhpcyAKbGFuZ3VhZ2UgY2FuIHRh a2UgaW4gdGhlIHNpbGVudCBpbWFnZXMgb2YgdGhlIHdyaXR0ZW4sIHBpY3Rv cmlhbCBhbmQgc3ltYm9sIApsYW5ndWFnZXMuIAoKSSBoYXZlIGRlc2NyaWJl ZCBoZXJlIGEgbnVtYmVyIG9mIHdlYXBvbnMgYW5kIHRhY3RpY3MgaW4gdGhl IHdhciBnYW1lLiBXZWFwb25zIAp0aGF0IGNoYW5nZSBjb25zY2lvdXNuZXNz IGNvdWxkIGNhbGwgdGhlIHdhciBnYW1lIGluIHF1ZXN0aW9uLiBBbGwgZ2Ft ZXMgYXJlIApob3N0aWxlLiBCYXNpY2FsbHkgdGhlcmUgaXMgb25seSBvbmUg Z2FtZSBmcm9tIGhlcmUgdG8gZXRlcm5pdHkuIE1yIEh1YmJhcmQgc2F5cyAK dGhhdCBTY2llbnRvbG9neSBpcyBhIGdhbWUgd2hlcmUgZXZlcnlib2R5IHdp bnMuIFRoZXJlIGFyZSBubyBnYW1lcyB3aGVyZSAKZXZlcnlib2R5IHdpbnMu IFRoYXQncyB3aGF0IGdhbWVzIGFyZSBhbGwgYWJvdXQsIHdpbm5pbmcgYW5k IGxvc2luZyAuLi4gVGhlIApWZXJzYWlsbGVzIFRyZWF0eSAuLi4gSGl0bGVy IGRhbmNlcyB0aGUgT2NjdXBhdGlvbiBKaWcgLi4uIFdhciBjcmltaW5hbHMg aGFuZyBhdCAKTnVyZW1iZXJnIC4uLkl0IGlzIGEgcnVsZSBvZiB0aGlzIGdh bWUgdGhhdCB0aGVyZSBjYW4gYmUgbm8gZmluYWwgdmljdG9yeSBzaW5jZSAK dGhpcyBtZWFuIHRoZSBlbmQgb2YgdGhlIHdhciBnYW1lLiBZZXQgZXZlcnkg cGxheWVyIG11c3QgYmVsaWV2ZSBpbiBmaW5hbCAKdmljdG9yeSBhbmQgc3Ry aXZlIGZvciBpdCB3aXRoIGFsbCBoaXMgcG93ZXIuIEZhY2VkIGJ5IHRoZSBu aWdodG1hcmUgb2YgZmluYWwgCmRlZmVhdCBoZSBoYXMgbm8gYWx0ZXJuYXRp dmUuIFNvIGFsbCB0ZWNobm9sb2dpZXMgd2l0aCBlc2NhbGF0aW5nIGVmZmlj aWVuY3kgCnByb2R1Y2UgbW9yZSBhbmQgbW9yZSB0b3RhbCB3ZWFwb25zIHVu dGlsIHdlIGhhdmUgdGhlIGF0b20gYm9tYiB3aGljaCBjb3VsZCBlbmQgCnRo ZSBnYW1lIGJ5IGRlc3Ryb3lpbmcgYWxsIHBsYXllcnMuIE5vdyBtb2NrIHVw IGEgbWlyYWNsZS4gVGhlIHNvIHN0dXBpZCBwbGF5ZXJzIApkZWNpZGUgdG8g c2F2ZSB0aGUgZ2FtZS4gVGhleSBzaXQgZG93biBhcm91bmQgYSBiaWcgdGFi bGUgYW5kIGRyYXcgdXAgYSBwbGFuIGZvciAKdGhlIGltbWVkaWF0ZSBkZWFj dGl2YXRpb24gYW5kIGV2ZW50dWFsIGRlc3RydWN0aW9uIG9mIGFsbCBhdG9t aWMgd2VhcG9ucy4gV2h5IApzdG9wIHRoZXJlPyBDb252ZW50aW9uYWwgYm9t YnMgYXJlIHVubmVjZXNzYXJpbHkgZGVzdHJ1Y3RpdmUgaWYgbm9ib2R5IGhh cyB0aGVtIApoZWluPyAKCkxldCdzIHR1cm4gYmFjayB0aGUgd2FyIGNsb2Nr IGJhY2sgdG8gMTkxNzogCgpLZWVwIHRoZSBob21lIGZpcmVzIGJ1cm5pbmcg CgpUaHJvdWdoIHRoZSBoZWFydHMgYXJlIHllYXJuaW5nIAoKVGhlcmUncyBh IGxvbmcsIGxvbmcgdHJhaWwgYXdpbmRpbmcgLi4uIC4gCgpCYWNrIHRvIHRo ZSBBbWVyaWNhbiBDaXZpbCBXYXIuLi4gCgoiSGUgaGFzIGxvb3NlZCB0aGUg ZmF0YWwgbGlnaHRuaW5nIG9mIHRoaXMgdGVycmlibGUgc3dpZnQgc3dvcmQu IiBIaXMgZmF0YWwgCmxpZ2h0bmluZyBkaWRuJ3QgY29zdCBhcyBtdWNoIGlu IHRob3NlIGRheXMuIFNhdmUgYSBsb3Qgb24gdGhlIGRlZmVuY2UgYnVkZ2V0 IAp0aGlzIHdheSBvbiBiYWNrIHRvIGZsaW50bG9ja3MsIG1hdGNobG9ja3Ms IHN3b3JkcywgYXJtb3VyLCBsYW5jZXMsIGJvd3MgYW5kIAphcnJvd3MsIHNw ZWFycywgc3RvbmUgYXhlcyBhbmQgY2x1YnMuIFdoeSBzdG9wIHRoZXJlPyBX aHkgbm90IGdyb3cgdGVldGggYW5kIApjbGF3cywgcG9pc29uIGZhbmdzLCBz dGluZ2Vycywgc3BpbmVzLCBxdWlsbHMsIGJlYWtzIGFuZCBzdWNrZXJzIGFu ZCBzdGluayAKZ2xhbmRzIGFuZCBmaWdodCBpbiBvdXQgaW4gdGhlIG11Y2sg aGVpbj8gCgpUaGF0IGlzIHdoYXQgdGhpcyByZXZvbHV0aW9uIGlzIGFib3V0 LiBFbmQgb2YgZ2FtZS4gTmV3IGdhbWVzPwoKVGhlcmUgYXJlIG5vIG5ldyBn YW1lcyBmcm9tIGhlcmUgdG8gZXRlcm5pdHkuIAoKRU5EIE9GIFRIRSBXQVIg R0FNRS4='.unpack('m*')