#FILE text/plain Ozs7ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCjs7IEAoIykgZGlyZWQtc2luZ2xlLmVsIC0tIHJldXNlIHRo ZSBjdXJyZW50IGRpcmVkIGJ1ZmZlciB0byB2aXNpdCBhbm90aGVyIGRpcmVjdG9yeQo7OyBAKCMp ICRJZDogZGlyZWQtc2luZ2xlLmVsLHYgMS42IDIwMDEvMDEvMTEgMDI6NTY6MDEgcm9vdCBFeHAg JAoKOzsgVGhpcyBmaWxlIGlzIG5vdCBwYXJ0IG9mIEVtYWNzCgo7OyBDb3B5cmlnaHQgKEMpIDIw MDAtMjAwMSBieSBKb3NlcGggTC4gQ2FzYWRvbnRlIEpyLgo7OyBBdXRob3I6ICAgICAgICAgIEpv ZSBDYXNhZG9udGUgKGVtYWNzQG5vcnRoYm91bmQtdHJhaW4uY29tKQo7OyBNYWludGFpbmVyOiAg ICAgIEpvZSBDYXNhZG9udGUgKGVtYWNzQG5vcnRoYm91bmQtdHJhaW4uY29tKQo7OyBDcmVhdGVk OiAgICAgICAgIEF1Z3VzdCAxNywgMjAwMAo7OyBMYXRlc3QgVmVyc2lvbjogIGh0dHA6Ly93d3cu bm9ydGhib3VuZC10cmFpbi5jb20vZW1hY3MuaHRtbAoKOzsgQ09QWVJJR0hUIE5PVElDRQoKOzsg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKOzsgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKOzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQo7OyBhbnkgbGF0ZXIgdmVy c2lvbi4KCjs7IFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAo7OyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCjs7IEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgo7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQo7OyBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuICBJZiBub3QsIHdyaXRlIHRvIHRoZQo7OyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz MCwKOzsgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCjs7OyAqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoK Ozs7IERlc2NyaXB0aW9uOgo7Owo7OyAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgd2F5IHRvIHJl dXNlIHRoZSBjdXJyZW50IGRpcmVkIGJ1ZmZlciB0byB2aXNpdAo7OyAgYW5vdGhlciBkaXJlY3Rv cnkgKHJhdGhlciB0aGFuIGNyZWF0aW5nIGEgbmV3IGJ1ZmZlciBmb3IgdGhlIG5ldyBkaXJlY3Rv cnkpLgo7OyAgT3B0aW9uYWxseSwgaXQgYWxsb3dzIHRoZSB1c2VyIHRvIHNwZWNpZnkgYSBuYW1l IHRoYXQgYWxsIHN1Y2ggYnVmZmVycyB3aWxsCjs7ICBoYXZlLCByZWdhcmRsZXNzIG9mIHRoZSBk aXJlY3RvcnkgdGhleSBwb2ludCB0by4KCjs7OyBJbnN0YWxsYXRpb246Cjs7Cjs7ICBQdXQgdGhp cyBmaWxlIG9uIHlvdXIgRW1hY3MtTGlzcCBsb2FkIHBhdGggYW5kIGFkZCB0aGUgZm9sbG93aW5n IHRvIHlvdXIKOzsgIH4vLmVtYWNzIHN0YXJ0dXAgZmlsZQo7Owo7OyAgICAgKHJlcXVpcmUgJ2Rp cmVkLXNpbmdsZSkKOzsKOzsgIFNlZSBiZWxvdyBmb3Iga2V5LWJpbmRpbmcgc3VnZ2VzdGlvbnMu Cgo7OzsgVXNhZ2U6Cjs7Cjs7ICBNLXggYGpvYy1kaXJlZC1zaW5nbGUtYnVmZmVyJwo7OyAgICAg VmlzaXRzIHRoZSBzZWxlY3RlZCBkaXJlY3RvcnkgaW4gdGhlIGN1cnJlbnQgYnVmZmVyLCByZXBs YWNpbmcgdGhlCjs7ICAgICBjdXJyZW50IGNvbnRlbnRzIHdpdGggdGhlIGNvbnRlbnRzIG9mIHRo ZSBuZXcgZGlyZWN0b3J5LiAgVGhpcyBkb2Vzbid0Cjs7ICAgICBwcmV2ZW50IHlvdSBmcm9tIGhh dmluZyBtb3JlIHRoYW4gb25lIGRpcmVkIGJ1ZmZlci4gIFRoZSBtYWluIGRpZmZlcmVuY2UKOzsg ICAgIGlzIHRoYXQgYSBnaXZlbiBkaXJlZCBidWZmZXIgd2lsbCBub3Qgc3Bhd24gb2ZmIGEgbmV3 IGJ1ZmZlciBldmVyeSB0aW1lCjs7ICAgICBhIG5ldyBkaXJlY3RvcnkgaXMgdmlzaXRlZC4KOzsK OzsgICAgIElmIHRoZSB2YXJpYWJsZSBqb2MtZGlyZWQtdXNlLW1hZ2ljLWJ1ZmZlciBpcyBub24t bmlsLCBhbmQgdGhlIGN1cnJlbnQKOzsgICAgIGJ1ZmZlcidzIG5hbWUgaXMgdGhlIHNhbWUgYXMg dGhhdCBzcGVjaWZpZWQgYnkgdGhlIHZhcmlhYmxlCjs7ICAgICBqb2MtZGlyZWQtbWFnaWMtYnVm ZmVyLW5hbWUsIHRoZW4gdGhlIG5ldyBkaXJlY3RvcnkncyBidWZmZXIgd2lsbCByZXRhaW4KOzsg ICAgIHRoYXQgc2FtZSBuYW1lIChpLmUuIG5vdCBvbmx5IHdpbGwgZGlyZWQgb25seSB1c2UgYSBz aW5nbGUgYnVmZmVyLCBidXQKOzsgICAgIGl0cyBuYW1lIHdpbGwgbm90IGNoYW5nZSBldmVyeSB0 aW1lIGEgbmV3IGRpcmVjdG9yeSBpcyBlbnRlcmVkKS4KOzsKOzsgICAgIFNlZSBiZWxvdyBmb3Ig a2V5LWJpbmRpbmcgcmVjb21tZW5kYXRpb25zLgo7Owo7OyAgTS14IGBqb2MtZGlyZWQtc2luZ2xl LWJ1ZmZlci1tb3VzZScKOzsgICAgIEVzc2VudGlhbGx5IHRoaXMgaXMgdGhlIHNhbWUgYXMgam9j LWRpcmVkLXNpbmdsZS1idWZmZXIsIGV4Y2VwdCB0aGF0IHRoZQo7OyAgICAgYWN0aW9uIGlzIGlu aXRpYXRlZCBieSBhIG1vdXNlLWNsaWNrIGluc3RlYWQgb2YgYSBrZXlzdHJva2UuCjs7Cjs7ICAg ICBTZWUgYmVsb3cgZm9yIGtleS1iaW5kaW5nIHJlY29tbWVuZGF0aW9ucy4KOzsKOzsgIE0teCBg am9jLWRpcmVkLW1hZ2ljLWJ1ZmZlcicKOzsgICAgIFN3aXRjaCB0byBhbiBleGlzdGluZyBidWZm ZXIgd2hvc2UgbmFtZSBpcyB0aGUgdmFsdWUgb2YKOzsgICAgIGpvYy1kaXJlZC1tYWdpYy1idWZm ZXItbmFtZS4gSWYgbm8gc3VjaCBidWZmZXIgZXhpc3RzLCBsYXVuY2ggZGlyZWQgaW4gYQo7OyAg ICAgbmV3IGJ1ZmZlciBhbmQgcmVuYW1lIHRoYXQgYnVmZmVyIHRvIHRoZSB2YWx1ZSBvZgo7OyAg ICAgam9jLWRpcmVkLW1hZ2ljLWJ1ZmZlci1uYW1lLiAgSWYgdGhlIGN1cnJlbnQgYnVmZmVyIGlz IHRoZSBtYWdpYyBidWZmZXIsCjs7ICAgICBpdCB3aWxsIHByb21wdCBmb3IgYSBuZXcgZGlyZWN0 b3J5IHRvIHZpc2l0Lgo7Owo7OyAgICAgU2VlIGJlbG93IGZvciBrZXktYmluZGluZyByZWNvbW1l bmRhdGlvbnMuCjs7Cjs7ICBNLXggYGpvYy1kaXJlZC10b2dnbGUtYnVmZmVyLW5hbWUnCjs7ICAg ICBUb2dnbGUgYmV0d2VlbiB0aGUgYG1hZ2ljJyBidWZmZXIgbmFtZSBhbmQgdGhlIGByZWFsJyBk aXJlZCBidWZmZXIKOzsgICAgIG5hbWUuICBXaWxsIGFsc28gc2VlayB0byB1bmlxdWlmeSB0aGUg YHJlYWwnIGJ1ZmZlciBuYW1lLgo7Owo7OyAgICAgU2VlIGJlbG93IGZvciBrZXktYmluZGluZyBy ZWNvbW1lbmRhdGlvbnMuCgo7OzsgUmVjb21lbmRlZCBLZXliaW5kaW5nczoKOzsKOzsgIFRvIHVz ZSB0aGUgc2luZ2xlLWJ1ZmZlciBmZWF0dXJlIG1vc3QgZWZmZWN0aXZlbHksIEkgcmVjb21tZW5k IGFkZGluZyB0aGUKOzsgIGZvbGxvd2luZyBjb2RlIHRvIHlvdXIgLmVtYWNzIGZpbGUuICBCYXNp Y2FsbHksIGl0IHJlbWFwcyB0aGUgW1JldHVybl0ga2V5Cjs7ICB0byBjYWxsIHRoZSBqb2MtZGly ZWQtc2luZ2xlLWJ1ZmZlciBmdW5jdGlvbiBpbnN0ZWFkIG9mIGl0cyBub3JtYWwgZnVuY3Rpb24K OzsgIChkaXJlZC1hZHZlcnRpc2VkLWZpbmQtZmlsZSkuICBBbHNvLCBpdCBtYXBzIHRoZSBjYXJl dCAoIl4iKSBrZXkKOzsgIHRvIGdvIHVwIG9uZSBkaXJlY3RvcnksIHVzaW5nIHRoZSBqb2MtZGly ZWQtc2luZ2xlLWJ1ZmZlciBjb21tYW5kIGluc3RlYWQgb2YKOzsgIHRoZSBub3JtYWwgb25lIChk aXJlZC11cC1kaXJlY3RvcnkpLCB3aGljaCBoYXMgdGhlIHNhbWUgZWZmZWN0IGFzIGhpdHRpbmcK OzsgIFtSZXR1cm5dIG9uIHRoZSBwYXJlbnQgZGlyZWN0b3J5IGxpbmUgKCIuLiIpKS4gIEZpbmFs bHksIGl0IG1hcHMgYQo7OyAgYnV0dG9uLW9uZSBjbGljayB0byB0aGUgam9jLWRpcmVkLXNpbmds ZS1idWZmZXItbW91c2UgZnVuY3Rpb24sIHdoaWNoIGRvZXMKOzsgIHNvbWUgbW91c2Ugc2VsZWN0 aW9uIHN0dWZmLCBhbmQgdGhlbiBjYWxscyBpbnRvIHRoZSBtYWluCjs7ICBqb2MtZGlyZWQtc2lu Z2xlLWJ1ZmZlciBmdW5jdGlvbi4KOzsKOzsgIE5PVEU6IFRoaXMgc2hvdWxkIG9ubHkgYmUgZG9u ZSBmb3IgdGhlIGRpcmVkLW1vZGUtbWFwIChOT1QgZ2xvYmFsbHkhKS4KOzsKOzsgIFRoZSBmb2xs b3dpbmcgY29kZSB3aWxsIHdvcmsgd2hldGhlciBvciBub3QgZGlyZWQgaGFzIGJlZW4gbG9hZGVk IGFscmVhZHkuCjs7Cjs7ICAgICAgKGRlZnVuIG15LWRpcmVkLWluaXQgKCkKOzsgICAgICAgICJC dW5jaCBvZiBzdHVmZiB0byBydW4gZm9yIGRpcmVkLCBlaXRoZXIgaW1tZWRpYXRlbHkgb3Igd2hl biBpdCdzCjs7ICAgICAgICAgbG9hZGVkLiIKOzsgICAgICAgIDs7IDxhZGQgb3RoZXIgc3R1ZmYg aGVyZT4KOzsgICAgICAgIChkZWZpbmUta2V5IGRpcmVkLW1vZGUtbWFwIFtyZXR1cm5dICdqb2Mt ZGlyZWQtc2luZ2xlLWJ1ZmZlcikKOzsgICAgICAgIChkZWZpbmUta2V5IGRpcmVkLW1vZGUtbWFw IFttb3VzZS0xXSAnam9jLWRpcmVkLXNpbmdsZS1idWZmZXItbW91c2UpCjs7ICAgICAgICAoZGVm aW5lLWtleSBkaXJlZC1tb2RlLW1hcCAiXiIKOzsgICAgICAgICAgICAgIChmdW5jdGlvbgo7OyAg ICAgICAgICAgICAgIChsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkgKGpvYy1kaXJlZC1zaW5nbGUt YnVmZmVyICIuLiIpKSkpKQo7Owo7OyAgICAgIDs7IGlmIGRpcmVkJ3MgYWxyZWFkeSBsb2FkZWQs IHRoZW4gdGhlIGtleW1hcCB3aWxsIGJlIGJvdW5kCjs7ICAgICAgKGlmIChib3VuZHAgJ2RpcmVk LW1vZGUtbWFwKQo7OyAgICAgICAgICAgICAgOzsgd2UncmUgZ29vZCB0byBnbzsganVzdCBhZGQg b3VyIGJpbmRpbmdzCjs7ICAgICAgICAgICAgICAobXktZGlyZWQtaW5pdCkKOzsgICAgICAgIDs7 IGl0J3Mgbm90IGxvYWRlZCB5ZXQsIHNvIGFkZCBvdXIgYmluZGluZ3MgdG8gdGhlIGxvYWQtaG9v awo7OyAgICAgICAgKGFkZC1ob29rICdkaXJlZC1sb2FkLWhvb2sgJ215LWRpcmVkLWluaXQpKQo7 Owo7OyAgVG8gdXNlIHRoZSBtYWdpYy1idWZmZXIgZnVuY3Rpb24sIHlvdSBmaXJzdCBuZWVkIHRv IHN0YXJ0IGRpcmVkIGluIGEgYnVmZmVyCjs7ICB3aG9zZSBuYW1lIGlzIHRoZSB2YWx1ZSBvZiBq b2MtZGlyZWQtbWFnaWMtYnVmZmVyLW5hbWUuICBPbmNlIHRoZSBidWZmZXIKOzsgIGhhcyB0aGlz IG5hbWUsIGl0IHdpbGwga2VlcCBpdCB1bmxlc3MgZXhwbGljaXRseSByZW5hbWVkLiAgVXNlIHRo ZSBmdW5jdGlvbgo7OyAgam9jLWRpcmVkLW1hZ2ljLWJ1ZmZlciB0byBzdGFydCB0aGlzIGluaXRp YWwgZGlyZWQgbWFnaWMgYnVmZmVyIChvciB5b3UgY2FuCjs7ICBzaW1wbHkgcmVuYW1lIGFuIGV4 aXN0aW5nIGRpcmVkIGJ1ZmZlciB0byB0aGUgbWFnaWMgbmFtZSkuICBJIGJpbmQgdGhpcwo7OyAg ZnVuY3Rpb24gZ2xvYmFsbHksIHNvIHRoYXQgSSBjYW4gYWx3YXlzIGdldCBiYWNrIHRvIG15IG1h Z2ljIGJ1ZmZlciBmcm9tCjs7ICBhbnl3aGVyZS4gIExpa2V3aXNlLCBJIGJpbmQgYW5vdGhlciBr ZXkgdG8gYnJpbmcgdGhlIG1hZ2ljIGJ1ZmZlciB1cCBpbiB0aGUKOzsgIGN1cnJlbnQgZGVmYXVs dC1kaXJlY3RvcnksIGFsbG93aW5nIG1lIHRvIG1vdmUgYXJvdW5kIGZhaXJseSBlYXNpbHkuICBI ZXJlJ3MKOzsgIHdoYXQgSSBoYXZlIGluIG15IC5lbWFjcyBmaWxlOgo7Owo7OyAgICAgIChnbG9i YWwtc2V0LWtleSBbKGY1KV0gJ2pvYy1kaXJlZC1tYWdpYy1idWZmZXIpCjs7ICAgICAgKGdsb2Jh bC1zZXQta2V5IFsoY29udHJvbCBmNSldIChmdW5jdGlvbgo7OyAgICAgICAgICAgICAgKGxhbWJk YSBuaWwgKGludGVyYWN0aXZlKQo7OyAgICAgICAgICAgICAgKGpvYy1kaXJlZC1tYWdpYy1idWZm ZXIgZGVmYXVsdC1kaXJlY3RvcnkpKSkpCjs7ICAgICAgKGdsb2JhbC1zZXQta2V5IFsoc2hpZnQg ZjUpXSAoZnVuY3Rpb24KOzsgICAgICAgICAgICAgIChsYW1iZGEgbmlsIChpbnRlcmFjdGl2ZSkK OzsgICAgICAgICAgICAgIChtZXNzYWdlICJDdXJyZW50IGRpcmVjdG9yeSBpczogJXMiIGRlZmF1 bHQtZGlyZWN0b3J5KSkpKQo7OyAgICAgIChnbG9iYWwtc2V0LWtleSBbKG1ldGEgZjUpXSAnam9j LWRpcmVkLXRvZ2dsZS1idWZmZXItbmFtZSkKOzsKOzsgIE9mIGNvdXJzZSwgdGhlc2UgYXJlIG9u bHkgc3VnZ2VzdGlvbnMuCgo7OzsgQ3VzdG9taXphdGlvbjoKOzsKOzsgIE0teCBgam9jLWRpcmVk LXNpbmdsZS1jdXN0b21pemUnIHRvIGN1c3RvbWl6ZSBhbGwgcGFja2FnZSBvcHRpb25zLgo7Owo7 OyAgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgY2FuIGJlIGN1c3RvbWl6ZWQ6Cjs7Cjs7ICBvIGBq b2MtZGlyZWQtdXNlLW1hZ2ljLWJ1ZmZlcicKOzsgICAgICAgIEJvb2xlYW4gdXNlZCB0byBkZXRl cm1pbmUgaWYgdGhlIGpvYy1kaXJlZC1zaW5nbGUgZnVuY3Rpb25zIHNob3VsZAo7OyAgICAgICAg bG9vayBmb3IgYW5kIHJldGFpbiBhIHNwZWNpZmljIGJ1ZmZlciBuYW1lLiAgVGhlIGJ1ZmZlciBu YW1lIHRvIGxvb2sKOzsgICAgICAgIGZvciBpcyBzcGVjaWZpZWQgd2l0aCBqb2MtZGlyZWQtbWFn aWMtYnVmZmVyLW5hbWUuCjs7Cjs7ICBvIGBqb2MtZGlyZWQtbWFnaWMtYnVmZmVyLW5hbWUnCjs7 ICAgICAgICBOYW1lIG9mIGJ1ZmZlciB0byB1c2UgaWYgam9jLWRpcmVkLXVzZS1tYWdpYy1idWZm ZXIgaXMgdHJ1ZS4gIE9uY2UgYQo7OyAgICAgICAgZGlyZWQgYnVmZmVyIGhhcyB0aGlzIG5hbWUs IGl0IHdpbGwgYWx3YXlzIGtlZXAgdGhpcyBuYW1lICh1bmxlc3MgaXQncwo7OyAgICAgICAgZXhw bGljaXRseSByZW5hbWVkIGJ5IHlvdSkuCgo7OzsgVG8gRG86Cjs7Cjs7ICBvIE5vdGhpbmcsIGF0 IHRoZSBtb21lbnQuCgo7OzsgQ3JlZGl0czoKOzsKOzsgIFRoZSBzaW5nbGUgYnVmZmVyIGNvZGUg aXMgbG9vc2VseSBiYXNlZCBvbiBjb2RlIHBvc3RlZCB0byB0aGUgTlQtRW1hY3MKOzsgIG1haWxp bmcgbGlzdCBieSBTdGV2ZSBLZW1wICYgUm9iIERhdmVucG9ydC4gIFRoZSBtYWdpYyBidWZmZXIg bmFtZSBjb2RlCjs7ICBpcyBhbGwgbWluZS4KCjs7OyBDb21tZW50czoKOzsKOzsgIEFueSBjb21t ZW50cywgc3VnZ2VzdGlvbnMsIGJ1ZyByZXBvcnRzIG9yIHVwZ3JhZGUgcmVxdWVzdHMgYXJlIHdl bGNvbWUuCjs7ICBQbGVhc2Ugc2VuZCB0aGVtIHRvIEpvZSBDYXNhZG9udGUgKGVtYWNzQG5vcnRo Ym91bmQtdHJhaW4uY29tKS4KOzsKOzsgIFRoaXMgdmVyc2lvbiBvZiBkaXJlZC1zaW5nbGUgd2Fz IGRldmVsb3BlZCBhbmQgdGVzdGVkIHdpdGggTlRFbWFjcyAyMC41LjEKOzsgIGFuZCAyLjcgdW5k ZXIgV2luZG93cyBOVCA0LjAgU1A2IGFuZCBFbWFjcyAyMC43LjEgdW5kZXIgTGludXggKFJINyku Cjs7ICBQbGVhc2UsIGxldCBtZSBrbm93IGlmIGl0IHdvcmtzIHdpdGggb3RoZXIgT1MgYW5kIHZl cnNpb25zIG9mIEVtYWNzLgoKOzs7ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCjs7OyAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgo7OzsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKOzs7ICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCjs7OyAqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgo7OzsgQ29kZToKCjs7OyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo7OzsgKioqKiog Y3VzdG9taXphdGlvbiByb3V0aW5lcwo7OzsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKGRlZmdyb3VwIGpv Yy1kaXJlZC1zaW5nbGUgbmlsCiAgImpvYy1kaXJlZC1zaW5nbGUgcGFja2FnZSBjdXN0b21pemF0 aW9uIgogIDpncm91cCAndG9vbHMpCgo7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKGRlZnVuIGpvYy1k aXJlZC1zaW5nbGUtY3VzdG9taXplICgpCiAgIkN1c3RvbWl6YXRpb24gb2YgdGhlIGdyb3VwIGpv Yy1kaXJlZC1zaW5nbGUuIgogIChpbnRlcmFjdGl2ZSkKICAoY3VzdG9taXplLWdyb3VwICJqb2Mt ZGlyZWQtc2luZ2xlIikpCgo7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKGRlZmN1c3RvbSBqb2MtZGly ZWQtdXNlLW1hZ2ljLWJ1ZmZlciB0CiAgIkJvb2xlYW4gdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhl IGpvYy1kaXJlZC1zaW5nbGUgZnVuY3Rpb25zIHNob3VsZAogICBsb29rIGZvciBhbmQgcmV0YWlu IGEgc3BlY2lmaWMgYnVmZmVyIG5hbWUuICBUaGUgYnVmZmVyIG5hbWUgdG8gbG9vawogICBmb3Ig aXMgc3BlY2lmaWVkIHdpdGggam9jLWRpcmVkLW1hZ2ljLWJ1ZmZlci1uYW1lLiIKICA6Z3JvdXAg J2pvYy1kaXJlZC1zaW5nbGUKICA6dHlwZSAnYm9vbGVhbikKCjs7IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQooZGVmY3VzdG9tIGpvYy1kaXJlZC1tYWdpYy1idWZmZXItbmFtZSAiKmRpcmVkKiIKICAiTmFt ZSBvZiBidWZmZXIgdG8gdXNlIGlmIGpvYy1kaXJlZC11c2UtbWFnaWMtYnVmZmVyIGlzIHRydWUu ICBPbmNlIGEKICAgZGlyZWQgYnVmZmVyIGhhcyB0aGlzIG5hbWUsIGl0IHdpbGwgYWx3YXlzIGtl ZXAgdGhpcyBuYW1lICh1bmxlc3MgaXQncwogICBleHBsaWNpdGx5IHJlbmFtZWQgYnkgeW91KS4i CiAgOmdyb3VwICdqb2MtZGlyZWQtc2luZ2xlCiAgOnR5cGUgJ3N0cmluZykKCjs7OyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgo7OzsgKioqKiogdmVyc2lvbiByZWxhdGVkIHJvdXRpbmVzCjs7OyAqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgooZGVmY29uc3Qgam9jLWRpcmVkLXNpbmdsZS12ZXJzaW9uCiAgIiRSZXZpc2lv bjogMS42ICQiCiAgImpvYy1kaXJlZC1zaW5nbGUgdmVyc2lvbiBudW1iZXIuIikKCjs7IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQooZGVmdW4gam9jLWRpcmVkLXNpbmdsZS12ZXJzaW9uLW51bWJlciAoKQog ICJSZXR1cm5zIGpvYy1kaXJlZC1zaW5nbGUgdmVyc2lvbiBudW1iZXIuIgogIChzdHJpbmctbWF0 Y2ggIlswMTIzNDU2Nzg5Ll0rIiBqb2MtZGlyZWQtc2luZ2xlLXZlcnNpb24pCiAgKG1hdGNoLXN0 cmluZyAwIGpvYy1kaXJlZC1zaW5nbGUtdmVyc2lvbikpCgo7OyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KGRlZnVuIGpvYy1kaXJlZC1zaW5nbGUtZGlzcGxheS12ZXJzaW9uICgpCiAgIkRpc3BsYXlzIGpv Yy1kaXJlZC1zaW5nbGUgdmVyc2lvbi4iCiAgKGludGVyYWN0aXZlKQogIChtZXNzYWdlICJqb2Mt ZGlyZWQtc2luZ2xlIHZlcnNpb24gPCVzPi4iIChqb2MtZGlyZWQtc2luZ2xlLXZlcnNpb24tbnVt YmVyKSkpCgo7OzsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKOzs7ICoqKioqIGludGVyYWN0aXZlIGZ1bmN0 aW9ucwo7OzsgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKGRlZnVuIGpvYy1kaXJlZC1zaW5nbGUtYnVmZmVy ICgmb3B0aW9uYWwgZGVmYXVsdC1kaXJuYW1lKQogICJWaXNpdHMgdGhlIHNlbGVjdGVkIGRpcmVj dG9yeSBpbiB0aGUgY3VycmVudCBidWZmZXIsIHJlcGxhY2luZyB0aGUKICAgY3VycmVudCBjb250 ZW50cyB3aXRoIHRoZSBjb250ZW50cyBvZiB0aGUgbmV3IGRpcmVjdG9yeS4gIFRoaXMgZG9lc24n dAogICBwcmV2ZW50IHlvdSBmcm9tIGhhdmluZyBtb3JlIHRoYW4gb25lIGRpcmVkIGJ1ZmZlci4g IFRoZSBtYWluIGRpZmZlcmVuY2UKICAgaXMgdGhhdCBhIGdpdmVuIGRpcmVkIGJ1ZmZlciB3aWxs IG5vdCBzcGF3biBvZmYgYSBuZXcgYnVmZmVyIGV2ZXJ5IHRpbWUKICAgYSBuZXcgZGlyZWN0b3J5 IGlzIHZpc2l0ZWQuCgogICBJZiB0aGUgdmFyaWFibGUgam9jLWRpcmVkLXVzZS1tYWdpYy1idWZm ZXIgaXMgbm9uLW5pbCwgYW5kIHRoZSBjdXJyZW50CiAgIGJ1ZmZlcidzIG5hbWUgaXMgdGhlIHNh bWUgYXMgdGhhdCBzcGVjaWZpZWQgYnkgdGhlIHZhcmlhYmxlCiAgIGpvYy1kaXJlZC1tYWdpYy1i dWZmZXItbmFtZSwgdGhlbiB0aGUgbmV3IGRpcmVjdG9yeSdzIGJ1ZmZlciB3aWxsIHJldGFpbgog ICB0aGF0IHNhbWUgbmFtZSAoaS5lLiBub3Qgb25seSB3aWxsIGRpcmVkIG9ubHkgdXNlIGEgc2lu Z2xlIGJ1ZmZlciwgYnV0CiAgIGl0cyBuYW1lIHdpbGwgbm90IGNoYW5nZSBldmVyeSB0aW1lIGEg bmV3IGRpcmVjdG9yeSBpcyBlbnRlcmVkKS4iCiAgKGludGVyYWN0aXZlKQogIDs7IHVzZSBhcmcg cGFzc2VkIGluIG9yIGZpbmQgbmFtZSBvZiBjdXJyZW50IGxpbmUKICAobGV0ICgobmFtZSAob3Ig ZGVmYXVsdC1kaXJuYW1lIChkaXJlZC1nZXQtZmlsZW5hbWUpKSkpCiAgICAgICAgKHNhdmUtZXhj dXJzaW9uCiAgICAgICAgICAoc2F2ZS1tYXRjaC1kYXRhCiAgICAgICAgICAgICAgICA7OyBTZWUg aWYgdGhlIHNlbGVjdGlvbiBpcyBhIGRpcmVjdG9yeSBvciBub3QuCiAgICAgICAgICAgICAgICAo ZW5kLW9mLWxpbmUpCiAgICAgICAgICAgICAgICAobGV0ICgoZW9sIChwb2ludCkpKQogICAgICAg ICAgICAgICAgICAoYmVnaW5uaW5nLW9mLWxpbmUpCiAgICAgICAgICAgICAgICAgIDs7IGFzc3Vt ZSBkaXJlY3RvcnkgaWYgYXJnIHBhc3NlZCBpbgogICAgICAgICAgICAgICAgICAoaWYgKG9yIGRl ZmF1bHQtZGlybmFtZSAocmUtc2VhcmNoLWZvcndhcmQgIl4gIGQiIGVvbCB0KSkKICAgICAgICAg ICAgICAgICAgICAgICAgICA7OyBzYXZlIGN1cnJlbnQgYnVmZmVyJ3MgbmFtZQogICAgICAgICAg ICAgICAgICAgICAgICAgIChsZXQgKChjdXJyZW50LWJ1ZmZlci1uYW1lIChidWZmZXItbmFtZSkp KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGdvIGFoZWFkIGFuZCByZWFkIGlu IHRoZSBkaXJlY3RvcnkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmluZC1hbHRl cm5hdGUtZmlsZSBuYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGlmIHRo ZSBzYXZlZCBidWZmZXIncyBuYW1lIHdhcyB0aGUgbWFnaWMgbmFtZSwgcmVuYW1lIHRoaXMgYnVm ZmVyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlmIChhbmQgam9jLWRpcmVkLXVz ZS1tYWdpYy1idWZmZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChzdHJpbmc9IGN1cnJlbnQtYnVmZmVyLW5hbWUgam9jLWRpcmVkLW1hZ2ljLWJ1ZmZl ci1uYW1lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyZW5hbWUt YnVmZmVyIGpvYy1kaXJlZC1tYWdpYy1idWZmZXItbmFtZSkpKQogICAgICAgICAgICAgICAgICAg ICAgICA7OyBpdCdzIGp1c3QgYSBmaWxlCiAgICAgICAgICAgICAgICAgICAgICAgIChmaW5kLWZp bGUgbmFtZSkpKSkpKSkKCjs7OzsgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCihkZWZ1biBqb2MtZGlyZWQtc2lu Z2xlLWJ1ZmZlci1tb3VzZSAoY2xpY2spCiAgIkVzc2VudGlhbGx5IHRoaXMgaXMgdGhlIHNhbWUg YXMgam9jLWRpcmVkLXNpbmdsZS1idWZmZXIsIGV4Y2VwdCB0aGF0IHRoZQogICBhY3Rpb24gaXMg aW5pdGlhdGVkIGJ5IGEgbW91c2UtY2xpY2sgaW5zdGVhZCBvZiBhIGtleXN0cm9rZS4iCiAgKGlu dGVyYWN0aXZlICJlIikKICAobGV0KiAoIChzdGFydCAoZXZlbnQtc3RhcnQgY2xpY2spKQogICAg ICAgICAgICAgICAgICAod2luZG93IChjYXIgc3RhcnQpKQogICAgICAgICAgICAgICAgICAocG9z IChjYXIgKGNkciBzdGFydCkpKSApCiAgICAgICAgKHNlbGVjdC13aW5kb3cgd2luZG93KQogICAg ICAgIChnb3RvLWNoYXIgcG9zKSkKICAoam9jLWRpcmVkLXNpbmdsZS1idWZmZXIpKQoKOzs7OyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKGRlZnVuIGpvYy1kaXJlZC1tYWdpYy1idWZmZXIgKCZvcHRpb25hbCBk ZWZhdWx0LWRpcm5hbWUpCiAgIlN3aXRjaCB0byBhbiBleGlzdGluZyBidWZmZXIgd2hvc2UgbmFt ZSBpcyB0aGUgdmFsdWUgb2YKICAgam9jLWRpcmVkLW1hZ2ljLWJ1ZmZlci1uYW1lLiBJZiBubyBz dWNoIGJ1ZmZlciBleGlzdHMsIGxhdW5jaCBkaXJlZCBpbiBhCiAgIG5ldyBidWZmZXIgYW5kIHJl bmFtZSB0aGF0IGJ1ZmZlciB0byB0aGUgdmFsdWUgb2YKICAgam9jLWRpcmVkLW1hZ2ljLWJ1ZmZl ci1uYW1lLiAgSWYgdGhlIGN1cnJlbnQgYnVmZmVyIGlzIHRoZSBtYWdpYyBidWZmZXIsCiAgIGl0 IHdpbGwgcHJvbXB0IGZvciBhIG5ldyBkaXJlY3RvcnkgdG8gdmlzaXQuIgogIChpbnRlcmFjdGl2 ZSkKICA7OyBkbyB3ZSBub3QgaGF2ZSBvbmUgb3IgYXJlIHdlIGFscmVhZHkgaW4gaXQ/CiAgKGxl dCAoKG1hZ2ljLWRpcmVkLWJ1ZmZlciAoZ2V0LWJ1ZmZlciBqb2MtZGlyZWQtbWFnaWMtYnVmZmVy LW5hbWUpKSkKICAgICAgICAoaWYgKG9yIChlcSBtYWdpYy1kaXJlZC1idWZmZXIgbmlsKQogICAg ICAgICAgICAgICAgICAgICAgICAoZXEgbWFnaWMtZGlyZWQtYnVmZmVyIChjdXJyZW50LWJ1ZmZl cikpKQogICAgICAgICAgICAgICAgOzsgbm90aGluZyB0byBzd2l0Y2ggdG8KICAgICAgICAgICAg ICAgIDs7IGdldCBkaXJlY3RvcnkgbmFtZSB0byBzdGFydCBpbgogICAgICAgICAgICAgICAgKGxl dCAoKGRpcm5hbWUgKG9yIGRlZmF1bHQtZGlybmFtZQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAocmVhZC1maWxlLW5hbWUgKGZvcm1hdCAiRGlyZWQg JXMoZGlyZWN0b3J5KTogIiAiIikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuaWwgZGVmYXVs dC1kaXJlY3RvcnkgdCkpKSkKCiAgICAgICAgICAgICAgICAgIDs7IG1ha2Ugc3VyZSBpdCdzIHJl YWxseSBhIGRpcmVjdG9yeQogICAgICAgICAgICAgICAgICAoaWYgKG5vdCAoZmlsZS1kaXJlY3Rv cnktcCBkaXJuYW1lKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IgIkVycm9yOiA8 JXM+IGlzIG5vdCBhIGRpcmVjdG9yeSIgZGlybmFtZSkpCgogICAgICAgICAgICAgICAgICA7OyBk byB3ZSBuZWVkIGEgbmV3IGJ1ZmZlcj8KICAgICAgICAgICAgICAgICAgKGlmIChlcSBtYWdpYy1k aXJlZC1idWZmZXIgbmlsKQogICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGZpbmQgdGhlIGZp bGUgaW4gbmV3IGJ1ZmZlciwgY3VycmVudCB3aW5kb3cKICAgICAgICAgICAgICAgICAgICAgICAg ICAoZmluZC1maWxlIGRpcm5hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgIDs7IGp1c3QgZmlu ZCBpbiBwbGFjZSBvZiBjdXJyZW50IGJ1ZmZlcgogICAgICAgICAgICAgICAgICAgICAgICAoZmlu ZC1hbHRlcm5hdGUtZmlsZSBkaXJuYW1lKSkKICAgICAgICAgICAgICAgICAgOzsgcmVuYW1lIHRo ZSBidWZmZXIsIHdoZXJlIGV2ZXIgd2UgZm91bmQgaXQKICAgICAgICAgICAgICAgICAgKHJlbmFt ZS1idWZmZXIgam9jLWRpcmVkLW1hZ2ljLWJ1ZmZlci1uYW1lKSkKICAgICAgICAgIDs7IHdlJ3Jl IG5vdCB0aGVyZSAod2UgaGF2ZSBvbmUgYWxyZWFkeSksIHNvIHNpbXBseSBzd2l0Y2ggdG8gaXQK ICAgICAgICAgIChzd2l0Y2gtdG8tYnVmZmVyIG1hZ2ljLWRpcmVkLWJ1ZmZlcikKICAgICAgICAg IDs7IGlmIGNhbGxlZCB3aXRoIGEgZGVmYXVsdCwgdHJ5IGl0IGFnYWluCiAgICAgICAgICAoaWYg ZGVmYXVsdC1kaXJuYW1lCiAgICAgICAgICAgICAgICAgIChqb2MtZGlyZWQtbWFnaWMtYnVmZmVy IGRlZmF1bHQtZGlybmFtZSkpKSkpCgo7Ozs7IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQooZGVmdW4gam9jLWRp cmVkLXRvZ2dsZS1idWZmZXItbmFtZSAoKQogICJUb2dnbGUgYmV0d2VlbiB0aGUgYG1hZ2ljJyBi dWZmZXIgbmFtZSBhbmQgdGhlIGByZWFsJyBkaXJlZCBidWZmZXIKICAgbmFtZS4gIFdpbGwgYWxz byBzZWVrIHRvIHVuaXF1aWZ5IHRoZSBgcmVhbCcgYnVmZmVyIG5hbWUuIgogIChpbnRlcmFjdGl2 ZSkKCiAgOzsgbWFrZSBzdXJlIGl0J3MgYSBkaXJlZCBidWZmZXIKICAoaWYgKG5vdCAoc3RyaW5n PSBtYWpvci1tb2RlICJkaXJlZC1tb2RlIikpCiAgICAgICAgICAoZXJyb3IgIkVycm9yOiBub3Qg YSBkaXJlZCBidWZmZXIiKSkKCiAgOzsgZG8gd2UgaGF2ZSBtYWdpYyBuYW1lIGN1cnJlbnRseT8K ICAoaWYgKHN0cmluZz0gKGJ1ZmZlci1uYW1lKSBqb2MtZGlyZWQtbWFnaWMtYnVmZmVyLW5hbWUp CiAgICAgICAgICAocmVuYW1lLWJ1ZmZlcgogICAgICAgICAgIChhYmJyZXZpYXRlLWZpbGUtbmFt ZQogICAgICAgICAgICAgICAgKGV4cGFuZC1maWxlLW5hbWUgKGRpcmVjdG9yeS1maWxlLW5hbWUg ZGVmYXVsdC1kaXJlY3RvcnkpKSkgdCkKCiAgICAgICAgOzsgbWFrZSBzdXJlIHRoZSBidWZmZXIg ZG9lc24ndCBjdXJyZW50bHkgZXhpc3QKICAgICAgICAobGV0ICgoZXhpc3RpbmctYnVmZmVyIChn ZXQtYnVmZmVyIGpvYy1kaXJlZC1tYWdpYy1idWZmZXItbmFtZSkpKQogICAgICAgICAgKGlmIGV4 aXN0aW5nLWJ1ZmZlcgogICAgICAgICAgICAgICAgICAoa2lsbC1idWZmZXIgZXhpc3RpbmctYnVm ZmVyKSkKICAgICAgICAgIChyZW5hbWUtYnVmZmVyIGpvYy1kaXJlZC1tYWdpYy1idWZmZXItbmFt ZSkpKSkKCjs7OyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgo7OzsgKioqKiogd2UncmUgZG9uZQo7OzsgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKHByb3ZpZGUgJ2RpcmVkLXNpbmdsZSkKCjs7IGRpcmVkLXNpbmdsZS5l bCBlbmRzIGhlcmUhCjs7OyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgo7Ozs7ICoqKioqICBFT0YgICoqKioq ICBFT0YgICoqKioqICBFT0YgICoqKioqICBFT0YgICoqKioqICBFT0YgICoqKioqKioqKioqKioK