ZGlmZiAtLWdpdCBhL0xJQ0VOU0UgYi9MSUNFTlNFCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyM2VjZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MSUNFTlNFCkBAIC0wLDAgKzEsMjc3IEBACitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjAKKworICAgIFRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgUFVCTElDIExJQ0VOU0UgKCJBR1JFRU1FTlQiKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisKKzEuIERFRklOSVRJT05TCisKKyJDb250cmlidXRpb24iIG1lYW5zOgorCisgIGEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKworICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgIGkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZAorICAgICBpaSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOworICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgIm9yaWdpbmF0ZXMiIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkKKyAgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKworIkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLgorCisiTGljZW5zZWQgUGF0ZW50cyIgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorCisiUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKK0FncmVlbWVudC4KKworIlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKworIkRlcml2YXRpdmUgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKK2Zvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKK2VkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKK3JlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgorCisiTW9kaWZpZWQgV29ya3MiIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CityZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKK2NvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQoraW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKK1dvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywKK2ludGVyZmFjZXMsIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkKK2luIGVhY2ggY2FzZSBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtCitvciBNb2RpZmllZCBXb3JrcyB0aGVyZW9mLgorCisiRGlzdHJpYnV0ZSIgbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKK2luIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisKKyJTb3VyY2UgQ29kZSIgbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCittb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAorZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisiU2Vjb25kYXJ5IExpY2Vuc2UiIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCitWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKK0NvbnRyaWJ1dG9yLgorCisyLiBHUkFOVCBPRiBSSUdIVFMKKworICBhKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorCisgIGIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50CisgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCisgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKKyAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCisgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwgYXQKKyAgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2ggYWRkaXRpb24KKyAgb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkIGJ5IHRoZQorICBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueSBvdGhlcgorICBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIgc2UgaXMKKyAgbGljZW5zZWQgaGVyZXVuZGVyLgorCisgIGMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZQorICByaWdodHMgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkKKyAgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsCisgIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkKKyAgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlCisgIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlCisgIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisKKyAgZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMKKyAgc3VmZmljaWVudCBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQKKyAgdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKworICBlKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8KKyAgQ29udHJpYnV0b3IgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbgorICB0aG9zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50J3MKKyAgcmVjZWlwdCBvZiB0aGUgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZQorICAoaWYgcGVybWl0dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgorCiszLiBSRVFVSVJFTUVOVFMKKworMy4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46CisKKyAgYSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgorICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKKyAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KKyAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bworICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5CisgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKKworICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgaSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcKKyAgICAgd2FycmFudGllcyBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQKKyAgICAgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzCisgICAgIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKworICAgICBpaSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCisgICAgIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisKKyAgICAgaWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJyByaWdodHMKKyAgICAgaW4gdGhlIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKworICAgICBpdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueQorICAgICBwYXJ0eSB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cworICAgICBvZiB0aGlzIHNlY3Rpb24gMy4KKworMy4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6CisKKyAgYSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlCisgIFByb2dyYW0gKGkpIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yCisgIGZpbGVzIG1hZGUgYXZhaWxhYmxlIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsCisgIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbgorICBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlCisgIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisKKyAgYikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YKKyAgdGhlIFByb2dyYW0uCisKKzMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LAordHJhZGVtYXJrLCBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMKK29mIGxpYWJpbGl0eSAoIm5vdGljZXMiKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YKK3RoZSBQcm9ncmFtIHdoaWNoIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZAordGhlaXIgb3duIGFwcHJvcHJpYXRlIG5vdGljZXMuCisKKzQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OCisKK0NvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCit3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKK2xpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sCit0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0CitvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAorbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcwordGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKKygiQ29tbWVyY2lhbCBDb250cmlidXRvciIpIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkKK290aGVyIENvbnRyaWJ1dG9yICgiSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IiKSBhZ2FpbnN0IGFueSBsb3NzZXMsCitkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICJMb3NzZXMiKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cworYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkCitDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaAorQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQoraW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90CithcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQKK2ludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkCitDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4KK3dyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsCithbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZCBhbnkKK3JlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkKK3BhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKworRm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKK3Byb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEgQ29tbWVyY2lhbAorQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCitjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZQorY2xhaW1zIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eQorYWxvbmUuIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0bworZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZQorY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8KK3BheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkKK3Rob3NlIGRhbWFnZXMuCisKKzUuIE5PIFdBUlJBTlRZCisKK0VYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVAorUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAiQVMgSVMiCitCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SCitJTVBMSUVEIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GCitUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUKK2FwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbAorcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsCitpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsCitjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcworb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisKKzYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZCisKK0VYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVAorUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUworU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKK0VYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QKK1BST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRQorRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorCis3LiBHRU5FUkFMCisKK0lmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCithcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YKK3RoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyCithY3Rpb24gYnkgdGhlIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUKK21pbmltdW0gZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKworSWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5CisoaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUKK1Byb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUKK29yIGhhcmR3YXJlKSBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncworcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoCitsaXRpZ2F0aW9uIGlzIGZpbGVkLgorCitBbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdAorZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMKK0FncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZgordGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncworcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UKK2FuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLgorSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcworZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCisKK0V2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKK2J1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kCittYXkgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkCityZXNlcnZlcyB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mCit0aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudAorU3Rld2FyZCBoYXMgdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbgoraXMgdGhlIGluaXRpYWwgQWdyZWVtZW50IFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUKK3Jlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlCitlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcKK3ZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbSAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUKK0Rpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMKK3JlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwKK0NvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzCitDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisKK0V4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CitDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAordW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCit0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorCitFeGhpYml0IEEgLSBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2UKKworIlRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKK1NlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCitpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCit2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LiIKKworICBTaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKworICBJZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhcgorICBmaWxlLCB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFCisgIGZpbGUgaW4gYSByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0bworICBsb29rIGZvciBzdWNoIGEgbm90aWNlLgorCisgIFlvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL05PVElDRSBiL05PVElDRQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kYmJjZDdkCi0tLSAvZGV2L251bGwKKysrIGIvTk9USUNFCkBAIC0wLDAgKzEsMTQwIEBACitFY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQKKworTm92ZW1iZXIgMjIsIDIwMTcKKworVXNhZ2UgT2YgQ29udGVudAorCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04KK0FORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gVVNFIE9GCitUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRQorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQKK0JFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQKK0JZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRQorQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRQorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkKK0FQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VCitNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC4KKworQXBwbGljYWJsZSBMaWNlbnNlcworCitVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbgoraXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZQorVmVyc2lvbiAyLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28KK2F2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAuIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLAorIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC4KKworQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24KK2FuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUgcmVwb3NpdG9yeQorKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGUgYXMKK2Rvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLgorCistICAgQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUKKyAgICBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkKKyAgICBpbmNsdWRlIHBsdWctaW5zICgiUGx1Zy1pbnMiKSwgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kCisgICAgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLgorLSAgIEVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUgorICAgIChKYXZhXHUyMTIyIEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi4KKy0gICBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQKKyAgICBhc3NvY2lhdGVkIG1hdGVyaWFsLiBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhCisgICAgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5CisgICAgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vcgorICAgIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLgorLSAgIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYQorICAgIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQKKyAgICB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuCisKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluCitmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcworYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIKKygiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55CitkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZworbG9jYXRpb25zOgorCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5CistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXMKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWlucworLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXMKKworTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nCit0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UKKygiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlCitjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdQord2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91Cit3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICJsaWNlbnNlIgorcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4gU3VjaAorQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kCitjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mCit0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LgorCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUEwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRQorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKToKKworLSAgIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdAorICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sKQorLSAgIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdAorICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbCkKKy0gICBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdAorICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sKQorLSAgIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0CisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApCistICAgTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0CisgICAgaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sKQorCitJVCBJUyBZT1VSIE9CTElHQVRJT04gVE8gUkVBRCBBTkQgQUNDRVBUIEFMTCBTVUNIIFRFUk1TIEFORCBDT05ESVRJT05TIFBSSU9SIFRPCitVU0UgT0YgVEhFIENPTlRFTlQuIElmIG5vIEFib3V0LCBGZWF0dXJlIExpY2Vuc2UsIG9yIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2UgaXMKK3Byb3ZpZGVkLCBwbGVhc2UgY29udGFjdCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZAorY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuCisKK1VzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neQorCitUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoCitpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIKKygiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3IgdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbAorc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseQorIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoIHRoZSBpbnRlbnQgb2YgYWxsb3dpbmcKK3N1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24KK2Fib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQKK2h0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWwgKCJTcGVjaWZpY2F0aW9uIikuCisKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGUKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmQKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91cgorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUKK2ZvbGxvd2luZzoKKworMS4gIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5CisgICAgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgiVGFyZ2V0IE1hY2hpbmUiKSB3aXRoIHRoZQorICAgIGludGVudCBvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4KKyAgICBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuCisyLiAgRHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG1heSBjYXVzZSB0aGlyZAorICAgIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8KKyAgICB0aGUgVGFyZ2V0IE1hY2hpbmUuCiszLiAgUHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgKCJJbnN0YWxsYWJsZQorICAgIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZQorICAgIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldCBNYWNoaW5lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gU3VjaAorICAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kCisgICAgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlCisgICAgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlCisgICAgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZQorICAgIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uIG9mIHRoZQorICAgIEluc3RhbGxhYmxlIFNvZnR3YXJlLgorCitDcnlwdG9ncmFwaHkKKworQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseQorbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsIGFuZC9vciByZS1leHBvcnQgdG8KK2Fub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFIHVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLAorcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwKK3Bvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcworcGVybWl0dGVkLgorCitKYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIE9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUKK1VuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC4KZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5jaGVhdHNoZWV0cy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuY2hlYXRzaGVldHMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwpAQCAtMiw0ICsyLDQgQEAKIGZvcm1hdHRlcl9wcm9maWxlPV9BVEwKIGZvcm1hdHRlcl9zZXR0aW5nc192ZXJzaW9uPTExCiBvcmcuZWNsaXBzZS5qZHQudWkuamF2YWRvYz1mYWxzZQotb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CitvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cHNcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzL2Fib3V0Lmh0bWwgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5jaGVhdHNoZWV0cy9hYm91dC5odG1sCmluZGV4IGM5MTQzZDIuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzL2Fib3V0Lmh0bWwKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuY2hlYXRzaGVldHMvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5EZWNlbWJlciA3LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzL3BvbS54bWwgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5jaGVhdHNoZWV0cy9wb20ueG1sCmluZGV4IGFiNGQxN2YuLmQ2N2IyYWIgMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzL3BvbS54bWwKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuY2hlYXRzaGVldHMvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NoZWF0c2hlZXRzL0ZhbWlseTJQZXJzb25DaGVhdHNoZWV0LmphdmEgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5jaGVhdHNoZWV0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jaGVhdHNoZWV0cy9GYW1pbHkyUGVyc29uQ2hlYXRzaGVldC5qYXZhCmluZGV4IDE0ZDQ1ZTAuLjRlZWJhYTkgMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNoZWF0c2hlZXRzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NoZWF0c2hlZXRzL0ZhbWlseTJQZXJzb25DaGVhdHNoZWV0LmphdmEKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuY2hlYXRzaGVldHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY2hlYXRzaGVldHMvRmFtaWx5MlBlcnNvbkNoZWF0c2hlZXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBBVEwgY2hlYXRzaGVldHMgcGx1Z2luCmRpZmYgLS1naXQgYS9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9jb3B5cmlnaHQudHh0IGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvY29weXJpZ2h0LnR4dAppbmRleCBhNmEwZjNmLi4yNTkyMTEwIDEwMDY0NAotLS0gYS9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9jb3B5cmlnaHQudHh0CisrKyBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL2NvcHlyaWdodC50eHQKQEAgLTEsOCArMSw4IEBACiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKK2h0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAKIENvbnRyaWJ1dG9yczoKICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9lcGwtdjEwLmh0bWwgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5NTdmM2UuLjAwMDAwMDAKLS0tIGEvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvZXBsLXYxMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjU5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFRyYW5zaXRpb25hbC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkIj4KLTwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNDEpaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwgLS0+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Ci0KLTx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAxLjA8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KLSAgYm9keSB7Ci0gICAgc2l6ZTogOC41aW4gMTEuMGluOwotICAgIG1hcmdpbjogMC4yNWluIDAuNWluIDAuMjVpbiAwLjVpbjsKLSAgICB0YWItaW50ZXJ2YWw6IDAuNWluOwotICAgIH0KLSAgcCB7ICAJCi0gICAgbWFyZ2luLWxlZnQ6IGF1dG87Ci0gICAgbWFyZ2luLXRvcDogIDAuNWVtOwotICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOwotICAgIH0KLSAgcC5saXN0IHsKLSAgCW1hcmdpbi1sZWZ0OiAwLjVpbjsKLSAgICBtYXJnaW4tdG9wOiAgMC4wNWVtOwotICAgIG1hcmdpbi1ib3R0b206IDAuMDVlbTsKLSAgICB9Ci0gIDwvc3R5bGU+Ci0KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2hlYWQ+Ci0KLTxib2R5IGxhbmc9IkVOLVVTIj4KLQotPGgyPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMDwvaDI+Ci0KLTxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCi1QVUJMSUMgTElDRU5TRSAoIkFHUkVFTUVOVCIpLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IKLURJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFIE9GIFRISVMKLUFHUkVFTUVOVC48L3A+Ci0KLTxwPjxiPjEuIERFRklOSVRJT05TPC9iPjwvcD4KLQotPHA+IkNvbnRyaWJ1dGlvbiIgbWVhbnM6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsCi1jb2RlIGFuZCBkb2N1bWVudGF0aW9uIGRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8L3A+Ci08cCBjbGFzcz0ibGlzdCI+YikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOjwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L3A+Ci08cCBjbGFzcz0ibGlzdCI+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L3A+Ci08cCBjbGFzcz0ibGlzdCI+d2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0KLW9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBCi1Db250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlCi1Qcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaAotQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluCi1jb25qdW5jdGlvbiB3aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkKLWFyZSBub3QgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJDb250cmlidXRvciIgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBkaXN0cmlidXRlcwotdGhlIFByb2dyYW0uPC9wPgotCi08cD4iTGljZW5zZWQgUGF0ZW50cyIgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYQotQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzCi1Db250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IlByb2dyYW0iIG1lYW5zIHRoZSBDb250cmlidXRpb25zIGRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2UKLXdpdGggdGhpcyBBZ3JlZW1lbnQuPC9wPgotCi08cD4iUmVjaXBpZW50IiBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyCi10aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGFsbCBDb250cmlidXRvcnMuPC9wPgotCi08cD48Yj4yLiBHUkFOVCBPRiBSSUdIVFM8L2I+PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2gKLUNvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLAotcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzCi1vZiwgcHVibGljbHkgZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgZGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUKLUNvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluCi1zb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaAotQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsCi1yb3lhbHR5LWZyZWUgcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsCi1vZmZlciB0byBzZWxsLCBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLUNvbnRyaWJ1dG9yLCBpZiBhbnksIGluIHNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudAotbGljZW5zZSBzaGFsbCBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlCi1Qcm9ncmFtIGlmLCBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwKLXN1Y2ggYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCi1ieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkgb3RoZXIKLWNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcwotbGljZW5zZWQgaGVyZXVuZGVyLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IKLWdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcwotYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQotcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaAotQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMgYnJvdWdodCBieQotYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cwotb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kIGxpY2Vuc2VzCi1ncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eSB0bwotc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IKLWV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50Ci10byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlCi10aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0Ci1oYXMgc3VmZmljaWVudCBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQKLXRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuPC9wPgotCi08cD48Yj4zLiBSRVFVSVJFTUVOVFM8L2I+PC9wPgotCi08cD5BIENvbnRyaWJ1dG9yIG1heSBjaG9vc2UgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpbiBvYmplY3QgY29kZQotZm9ybSB1bmRlciBpdHMgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBwcm92aWRlZCB0aGF0OjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmEpIGl0IGNvbXBsaWVzIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMKLUFncmVlbWVudDsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgaXRzIGxpY2Vuc2UgYWdyZWVtZW50OjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycwotYWxsIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCi1vciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yCi1jb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzCi1hbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKLWluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aWlpKSBzdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzCi1BZ3JlZW1lbnQgYXJlIG9mZmVyZWQgYnkgdGhhdCBDb250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlcgotcGFydHk7IGFuZDwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPml2KSBzdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlCi1mcm9tIHN1Y2ggQ29udHJpYnV0b3IsIGFuZCBpbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEKLXJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUKLWV4Y2hhbmdlLjwvcD4KLQotPHA+V2hlbiB0aGUgUHJvZ3JhbSBpcyBtYWRlIGF2YWlsYWJsZSBpbiBzb3VyY2UgY29kZSBmb3JtOjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQ7IGFuZDwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaAotY29weSBvZiB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPkNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkCi13aXRoaW4gdGhlIFByb2dyYW0uPC9wPgotCi08cD5FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZSBvcmlnaW5hdG9yIG9mIGl0cwotQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3Mgc3Vic2VxdWVudAotUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLjwvcD4KLQotPHA+PGI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2I+PC9wPgotCi08cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4KLXJlc3BvbnNpYmlsaXRpZXMgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZQotbGlrZS4gV2hpbGUgdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mCi10aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZQotcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IKLWluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yCi0oIkNvbW1lcmNpYWwgQ29udHJpYnV0b3IiKSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQKLWluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvciAoIkluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIikKLWFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMgKGNvbGxlY3RpdmVseSAiTG9zc2VzIikKLWFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZAotcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlCi1hY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbiB3aXRoIGl0cwotZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLiBUaGUKLW9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMKLXJlbGF0aW5nIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbgotb3JkZXIgdG8gcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5Ci10aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsCi1Db250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUKLUluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duCi1leHBlbnNlLjwvcD4KLQotPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZQotY2xhaW1zIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eQotYWxvbmUuIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0bwotZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZQotcGVyZm9ybWFuY2UgY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIKLUNvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLW11c3QgcGF5IHRob3NlIGRhbWFnZXMuPC9wPgotCi08cD48Yj41LiBOTyBXQVJSQU5UWTwvYj48L3A+Ci0KLTxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUwotUFJPVklERUQgT04gQU4gIkFTIElTIiBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMKLU9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywgV0lUSE9VVCBMSU1JVEFUSU9OLAotQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwgTUVSQ0hBTlRBQklMSVRZCi1PUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cwotZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0bwotdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywKLWRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCi1pbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy48L3A+Ci0KLTxwPjxiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9iPjwvcD4KLQotPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UCi1OT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULAotSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORwotV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GCi1MSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwotTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUgotRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQKLUhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuPC9wPgotCi08cD48Yj43LiBHRU5FUkFMPC9iPjwvcD4KLQotPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKLWFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZgotdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uCi1ieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtCi1leHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLjwvcD4KLQotPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5Ci0oaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUKLVByb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIKLXNvZnR3YXJlIG9yIGhhcmR3YXJlKSBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaAotUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUKLWRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLjwvcD4KLQotPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQKLWZhaWxzIHRvIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzCi1BZ3JlZW1lbnQgYW5kIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZQotYWZ0ZXIgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzCi11bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZAotZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwKLVJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieQotUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLjwvcD4KLQotPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMKLUFncmVlbWVudCwgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcwotY29weXJpZ2h0ZWQgYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUKLUFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nCi1yZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUKLUFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZQotRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkKLWFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEKLXN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUKLWdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtIChpbmNsdWRpbmcKLUNvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgZGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbiBvZiB0aGUKLUFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldyB2ZXJzaW9uCi1vZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4gRXhjZXB0IGFzCi1leHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudCByZWNlaXZlcyBubwotcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55IENvbnRyaWJ1dG9yIHVuZGVyCi10aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLCBlc3RvcHBlbCBvcgotb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZCB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvcD4KLQotPHA+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlIFN0YXRlIG9mIE5ldyBZb3JrIGFuZAotdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2EuIE5vIHBhcnR5Ci10byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMgQWdyZWVtZW50IG1vcmUKLXRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMgaXRzCi1yaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3A+Ci0KLQotCi08L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL2VwbC12MjAuaHRtbCBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL2VwbC12MjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWE4Mzg4Ci0tLSAvZGV2L251bGwKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvZXBsLXYyMC5odG1sCkBAIC0wLDAgKzEsMzAwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8IS0tIHNhdmVkIGZyb20gdXJsPSgwMDU4KWh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLTIuMC9FUEwtMi4wLmh0bWwgLS0+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICAgIAorICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBib2R5IHsKKyAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07CisgICAgICB9CisgICAgICBoMXsKKyAgICAgICAgZm9udC1zaXplOjEuNWVtOworICAgICAgfQorICAgICAgaDJ7CisgICAgICAgIGZvbnQtc2l6ZToxZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07CisgICAgICAgIG1hcmdpbi10b3A6MWVtOworICAgICAgfQorICAgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CisgICAgICB9CisgICAgICB1bCwgb2x7CisgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+CisgICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKKyAgICAgIFBVQkxJQyBMSUNFTlNFICjigJxBR1JFRU1FTlTigJ0pLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCisgICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+CisgICAgPHA+4oCcQ29udHJpYnV0aW9u4oCdIG1lYW5zOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKKyAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KKyAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCisgICAgICAgIOKAnG9yaWdpbmF0ZXPigJ0gZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuCisgICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAorICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPuKAnENvbnRyaWJ1dG9y4oCdIG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgorICAgIDxwPuKAnExpY2Vuc2VkIFBhdGVudHPigJ0gbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorICAgIDwvcD4KKyAgICA8cD7igJxQcm9ncmFt4oCdIG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCisgICAgICBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxwPuKAnFJlY2lwaWVudOKAnSBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgorICAgIDwvcD4KKyAgICA8cD7igJxEZXJpdmF0aXZlIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgorICAgIDwvcD4KKyAgICA8cD7igJxNb2RpZmllZCBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAorICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCisgICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKKyAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCisgICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCisgICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQorICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAorICAgICAgV29ya3MgdGhlcmVvZi4KKyAgICA8L3A+CisgICAgPHA+4oCcRGlzdHJpYnV0ZeKAnSBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQorICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KKyAgICA8L3A+CisgICAgPHA+4oCcU291cmNlIENvZGXigJ0gbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCisgICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAorICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgIDwvcD4KKyAgICA8cD7igJxTZWNvbmRhcnkgTGljZW5zZeKAnSBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKKyAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCisgICAgICBDb250cmlidXRvci4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+CisgICAgPHVsPgorICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCisgICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50CisgICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCisgICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKKyAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCisgICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKKyAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKKyAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCisgICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQorICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKKyAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKKyAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKKyAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCisgICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCisgICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKKyAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKKyAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCisgICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQorICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAorICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCisgICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncworICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50CisgICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgorICAgICAgPC9saT4KKyAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKKyAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKKyAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50J3MgcmVjZWlwdCBvZiB0aGUKKyAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCisgICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgorICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgorICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKKyAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KKyAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bworICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5CisgICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKKyAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAorICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJyByaWdodHMgaW4gdGhlCisgICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKKyAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgorICAgICAgICAgIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKKyAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKKyAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KKyAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKKyAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCisgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5CisgICAgICAo4oCYbm90aWNlc+KAmSkgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCisgICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCisgICAgICBub3RpY2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+CisgICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKKyAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcworICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCisgICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCisgICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKKyAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKKyAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAo4oCcQ29tbWVyY2lhbCBDb250cmlidXRvcuKAnSkKKyAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKKyAgICAgICjigJxJbmRlbW5pZmllZCBDb250cmlidXRvcuKAnSkgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cworICAgICAgKGNvbGxlY3RpdmVseSDigJxMb3NzZXPigJ0pIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCisgICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAorICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgorICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgorICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKKyAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bworICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAorICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAorICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKKyAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCisgICAgPC9wPgorICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KKyAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQorICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCisgICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCisgICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcworICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAorICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcworICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4g4oCcQVMgSVPigJ0gQkFTSVMsIFdJVEhPVVQKKyAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCisgICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCisgICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCisgICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCisgICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKKyAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKKyAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCisgICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCisgICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCisgICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKKyAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKKyAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KKyAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgorICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQorICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCisgICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50CisgICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCisgICAgPC9wPgorICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCisgICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQorICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQKKyAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorICAgIDwvcD4KKyAgICA8cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bworICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAorICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCisgICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQorICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlcgorICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKKyAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCisgICAgPC9wPgorICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQorICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCisgICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50CisgICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKKyAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKKyAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKKyAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgorICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCisgICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgorICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldworICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKKyAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KKyAgICA8L3A+CisgICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50CisgICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKKyAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCisgICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCisgICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKKyAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCisgICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEg4oCTIEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+CisgICAgPHA+4oCcVGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAorICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAorICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCisgICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0u4oCdCisgICAgPC9wPgorICAgIDxibG9ja3F1b3RlPgorICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQorICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCisgICAgICA8L3A+CisgICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAorICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQorICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgorICAgICAgICBzdWNoIGEgbm90aWNlLgorICAgICAgPC9wPgorICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgorICAgIDwvYmxvY2txdW90ZT4KKyAgCis8ZGl2IGlkPSJlaWQtY2hyb21lLWV4dGVuc2lvbi1pcy1pbnN0YWxsZWQiPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCmluZGV4IGY2NzVjOTIuLjYzNDM4NGIgMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcworKysgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTMsOSArMyw5IEBACiAjICAqCiAjICAqIENvcHlyaWdodCAoYykgMjAwNyBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICogCiAjICAqIENvbnRyaWJ1dG9yczogCiAjICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCkBAIC0zNiw5ICszNiw5IEBACiBjb3B5cmlnaHRVUkw9Y29weXJpZ2h0LnR4dAogY29weXJpZ2h0PUNvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLlxuXAogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xuXAotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXG5cCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcblwKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XG5cCi1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cblwKICBcblwKIENvbnRyaWJ1dG9yczpcblwKICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KQEAgLTU0LDEyNSArNTQsMTQzIEBACiAjIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKIGxpY2Vuc2U9XAogRWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50XG5cCi1BcHJpbCA5LCAyMDE0XG5cCitcblwKK05vdmVtYmVyIDIyLCAyMDE3XG5cCiBcblwKIFVzYWdlIE9mIENvbnRlbnRcblwKIFxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1VcblwKLUFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlRcblwKLUFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTXG5cCi1PUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlNcblwKLU9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCi1CRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT05cblwKK0FORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gVVNFIE9GXG5cCitUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKK0JFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORURcblwKK0JZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRVxuXAorQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTllcblwKK0FQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VXG5cCitNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKIFxuXAogQXBwbGljYWJsZSBMaWNlbnNlc1xuXAogXG5cCi1Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlXG5cCi1FY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZlxuXAotdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKLXByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC5cblwKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAorVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb25cblwKK2lzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2VcblwKK1ZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvXG5cCithdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCxcblwKKyJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCiBcblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCi1hcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKK0NvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uXG5cCithbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnlcblwKKygiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzXG5cCitkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKIFxuXAotXHQtIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsXG5cCi1cdCAgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLFxuXAotXHQgIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCi1cdC0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhKFRNKSBBUmNoaXZlKVxuXAotXHQgIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKLVx0LSBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC5cblwKLVx0ICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLlxuXAotXHQgIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvblxuXAotXHQgIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKLVx0LSBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXNcblwKLVx0ICBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKKy0gICBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZVxuXAorICAgIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gVHlwaWNhbCBtb2R1bGVzIG1heVxuXAorICAgIGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmRcblwKKyAgICBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCistICAgRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSXG5cCisgICAgKEphdmFcdTIxMjIgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAorLSAgIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZFxuXAorICAgIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGFcblwKKyAgICBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXlcblwKKyAgICBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yXG5cCisgICAgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCistICAgRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhXG5cCisgICAgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZFxuXAorICAgIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKIFxuXAotVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZVxuXAotY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQgSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZFxuXAotaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQgRmVhdHVyZVxuXAotTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZVxuXAotaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6XG5cCitUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpblxuXAorZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXNcblwKK2FuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiXG5cCisoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueVxuXAorZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmdcblwKK2xvY2F0aW9uczpcblwKIFxuXAotXHQtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotXHQtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi1cdC0gSW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSc1xuXAotXHQtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLVx0LSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAorLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKIFxuXAotTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZVxuXAotUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFxuXAotVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWluc1xuXAotSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKLXdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtXG5cCi15b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluXG5cCi10aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuXG5cCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlXG5cCi10ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0XG5cCi1nb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZ1xuXAordGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlXG5cCisoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZVxuXAorY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKK3dpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdVxuXAord2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSJcblwKK3Byb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2hcblwKK0Fib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZlxuXAordGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKIFxuXAotVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUExcblwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRVxuXAorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKIFxuXAotXHQtIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCi1cdC0gQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAotXHQtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCistICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwpXG5cCistICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAorLSAgIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gICBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCiBcblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZVxuXAotaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnNcblwKLWdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE9cblwKK1VTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpc1xuXAorcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKIFxuXAotXG5cVXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKIFxuXAotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLFxuXAotYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3JcblwKLXRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vclxuXAotb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoXG5cCi10aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy5cblwKLUluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXRcblwKK1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2hcblwKK2luY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlclxuXAorKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsXG5cCitzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5XG5cCisiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZ1xuXAorc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvblxuXAorYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAogaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKIFxuXAotWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAotWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlXG5cCi1JbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAotaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZFxuXAotbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXJcblwKLWFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbFxuXAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGVcblwKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmRcblwKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcblwKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdFxuXAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGVcblwKK2ZvbGxvd2luZzpcblwKIFxuXAotXHQxLiBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlXG5cCi1cdCAgIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLFxuXAotXHQgICBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAotXHQyLiBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5XG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLlxuXAotXHQzLiBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAotXHQgICBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaFxuXAotXHQgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZVxuXAotXHQgICB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGVcblwKLVx0ICAgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZSBieVxuXAotXHQgICB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2hcblwKLVx0ICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvblxuXAotXHQgICBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCisxLiAgQSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXlcblwKKyAgICBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlXG5cCisgICAgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhblxuXAorICAgIEVjbGlwc2UtYmFzZWQgcHJvZHVjdC5cblwKKzIuICBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkXG5cCisgICAgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0b1xuXAorICAgIHRoZSBUYXJnZXQgTWFjaGluZS5cblwKKzMuICBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kXG5cCisgICAgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlXG5cCisgICAgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlXG5cCisgICAgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2VcblwKKyAgICBieSB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaCBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlXG5cCisgICAgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCiBcblwKIENyeXB0b2dyYXBoeVxuXAogXG5cCi1Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmVcblwKLWN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSxcblwKLWFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkVcblwKLXVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLFxuXAotcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmRcblwKLXJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuXG5cCitDb250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5XG5cCittYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0b1xuXAorYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsXG5cCitwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LFxuXAorcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzXG5cCitwZXJtaXR0ZWQuXG5cCiBcblwKLUphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KK0phdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZVxuXAorVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuCiAjIyMjIyMjIyMjIyBlbmQgb2YgbGljZW5zZSBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL2xpY2Vuc2UuaHRtbAppbmRleCBjZWNmMTM3Li5hZmIyZjM1IDEwMDY0NAotLS0gYS9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9saWNlbnNlLmh0bWwKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvbGljZW5zZS5odG1sCkBAIC0xLDEwNiArMSwxOTAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNDQpaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwvbm90aWNlLmh0bWwgLS0+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CiAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+CiA8dGl0bGU+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2hlYWQ+Cis8L2hlYWQ+CiAKIDxib2R5IGxhbmc9IkVOLVVTIj4KLTxoMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L2gyPgotPHA+QXByaWwgOSwgMjAxNDwvcD4KKwk8aDI+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9oMj4KKwk8cD5Ob3ZlbWJlciAyMiwgMjAxNzwvcD4KIAotPGgzPlVzYWdlIE9mIENvbnRlbnQ8L2gzPgorCTxoMz5Vc2FnZSBPZiBDb250ZW50PC9oMz4KIAotPHA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCi0gICAoQ09MTEVDVElWRUxZICJDT05URU5UIikuICBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFCi0gICBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUgotICAgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC48L3A+CisJPHA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sCisJCUlORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCisJCShDT0xMRUNUSVZFTFkgJnF1b3Q7Q09OVEVOVCZxdW90OykuIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWQorCQlUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKKwkJQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTCisJCUdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZCisJCUFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQKKwkJQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMKKwkJQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRQorCQlBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QKKwkJVVNFIFRIRSBDT05URU5ULjwvcD4KIAotPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgorCTxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KIAotPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAotICAgKCJFUEwiKS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgotICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgorCTxwPgorCQlVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQorCQlFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlCisJCUVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KKwkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgorCTwvcD4KIAotPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZQotICAgcmVwb3NpdG9yeSAoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS48L3A+CisJPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0CisJCWNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBzb3VyY2UgY29kZSByZXBvc2l0b3J5ICgmcXVvdDtSZXBvc2l0b3J5JnF1b3Q7KSBpbiBzb2Z0d2FyZQorCQltb2R1bGVzICgmcXVvdDtNb2R1bGVzJnF1b3Q7KSBhbmQgbWFkZSBhdmFpbGFibGUgYXMgZG93bmxvYWRhYmxlCisJCWFyY2hpdmVzICgmcXVvdDtEb3dubG9hZHMmcXVvdDspLjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuICBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLjwvbGk+Ci0gICAgICAgPGxpPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUiAoSmF2YZkgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLjwvbGk+Ci0gICAgICAgPGxpPkEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiAgRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucwotICAgICAgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+Ci0gICAgICAgPGxpPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8KKwkJCWZhY2lsaXRhdGUgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsCisJCQltb2R1bGVzIG1heSBpbmNsdWRlIHBsdWctaW5zICgmcXVvdDtQbHVnLWlucyZxdW90OyksIHBsdWctaW4KKwkJCWZyYWdtZW50cyAoJnF1b3Q7RnJhZ21lbnRzJnF1b3Q7KSwgYW5kIGZlYXR1cmVzCisJCQkoJnF1b3Q7RmVhdHVyZXMmcXVvdDspLjwvbGk+CisJCTxsaT5FYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeQorCQkJb3IgSkFSIChKYXZhJnRyYWRlOyBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZAorCQkJJnF1b3Q7cGx1Z2lucyZxdW90Oy48L2xpPgorCQk8bGk+QSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vcgorCQkJRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEKKwkJCXN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgJnF1b3Q7ZmVhdHVyZXMmcXVvdDsuIFdpdGhpbiBhCisJCQlGZWF0dXJlLCBmaWxlcyBuYW1lZCAmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YKKwkJCXRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzCisJCQlhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+CisJCTxsaT5GZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgmcXVvdDtJbmNsdWRlZAorCQkJRmVhdHVyZXMmcXVvdDspLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZAorCQkJJnF1b3Q7ZmVhdHVyZS54bWwmcXVvdDsgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbgorCQkJbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L2xpPgorCTwvdWw+CiAKLTxwPlRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAotSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gIEFib3V0cyBhbmQgRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CisJPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZAorCQliZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgJnF1b3Q7YWJvdXQuaHRtbCZxdW90OworCQkoJnF1b3Q7QWJvdXRzJnF1b3Q7KS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQKKwkJSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZAorCQkmcXVvdDtsaWNlbnNlLmh0bWwmcXVvdDsgKCZxdW90O0ZlYXR1cmUgTGljZW5zZXMmcXVvdDspLiBBYm91dHMgYW5kCisJCUZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yCisJCU1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAKLTx1bD4KLSAgICAgICA8bGk+VGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5PC9saT4KLSAgICAgICA8bGk+UGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXM8L2xpPgotICAgICAgIDxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KLSAgICAgICA8bGk+U3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluczwvbGk+Ci0gICAgICAgPGxpPkZlYXR1cmUgZGlyZWN0b3JpZXM8L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgorCQk8bGk+UGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXM8L2xpPgorCQk8bGk+SW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSczwvbGk+CisJCTxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtzcmMmcXVvdDsgb2YKKwkJCWNlcnRhaW4gUGx1Zy1pbnM8L2xpPgorCQk8bGk+RmVhdHVyZSBkaXJlY3RvcmllczwvbGk+CisJPC91bD4KIAotPHA+Tm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlCi1pbnN0YWxsYXRpb24gcHJvY2Vzcy4gIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLCB0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IKLWluZm9ybSB5b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4KLXRoYXQgZGlyZWN0b3J5LjwvcD4KKwk8cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcworCQlpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91CisJCW11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgmcXVvdDtGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlJnF1b3Q7KSBkdXJpbmcKKwkJdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywKKwkJdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcworCQlhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgdGhlIEluY2x1ZGVkIEZlYXR1cmVzIG9yIGluZm9ybSB5b3Ugd2hlcmUgeW91CisJCWNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZQorCQkmcXVvdDtsaWNlbnNlJnF1b3Q7IHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkCisJCSZxdW90O2ZlYXR1cmUucHJvcGVydGllcyZxdW90OyBmb3VuZCB3aXRoaW4gYSBGZWF0dXJlLiBTdWNoIEFib3V0cywKKwkJRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZAorCQljb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuCisJCXlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4gdGhhdCBkaXJlY3RvcnkuPC9wPgogCi08cD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiAgU09NRSBPRiBUSEVTRQotT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTo8L3A+CisJPHA+VEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWQorCQlSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQKKwkJQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVAorCQlBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5FY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbDwvYT4pPC9saT4KLSAgICAgICA8bGk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPik8L2xpPgotICAgICAgIDxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9hPik8L2xpPgotICAgICAgIDxsaT5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KTwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbDwvYT4pCisJCTwvbGk+CisJCTxsaT5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L2E+KQorCQk8L2xpPgorCQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9hPikKKwkJPC9saT4KKwkJPGxpPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KQorCQk8L2xpPgorCTwvdWw+CiAKLTxwPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiAgSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlCi1jb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LjwvcD4KKwk8cD5JVCBJUyBZT1VSIE9CTElHQVRJT04gVE8gUkVBRCBBTkQgQUNDRVBUIEFMTCBTVUNIIFRFUk1TIEFORAorCQlDT05ESVRJT05TIFBSSU9SIFRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwKKwkJb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdAorCQlwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgogCiAKLTxoMz5Vc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3k8L2gzPgorCTxoMz5Vc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3k8L2gzPgogCi08cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZQotICAgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3IKLSAgIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5ICJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8KLSAgIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KLSAgICgiU3BlY2lmaWNhdGlvbiIpLjwvcD4KKwk8cD4KKwkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcworCQlvZiB3aGljaCBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlCisJCU1hbmFnZXIgKCZxdW90O1Byb3Zpc2lvbmluZyBUZWNobm9sb2d5JnF1b3Q7KSBmb3IgdGhlIHB1cnBvc2Ugb2YKKwkJYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yCisJCW90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5ICZxdW90O0luc3RhbGxhYmxlIFNvZnR3YXJlJnF1b3Q7KS4gVGhpcworCQljYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvCisJCWluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0CisJCXBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWwiPmh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWw8L2E+CisJCSgmcXVvdDtTcGVjaWZpY2F0aW9uJnF1b3Q7KS4KKwk8L3A+CiAKLTxwPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUKLSAgIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUKLSAgIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvcD4KKwk8cD5Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvCisJCWluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcKKwkJdGhlIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQl0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcKKwkJVGVjaG5vbG9neSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZworCQlUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdCBhdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoCisJCXRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyIGFncmVlbWVudCB0bywgYW5kIHRoZQorCQlhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzo8L3A+CiAKLTxvbD4KLSAgICAgICA8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kKLSAgICAgICBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZAotICAgICAgIHByb2R1Y3QuPC9saT4KLSAgICAgICA8bGk+RHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG1heSBjYXVzZSB0aGlyZCBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZQotICAgICAgIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLjwvbGk+Ci0gICAgICAgPGxpPlB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQotICAgICAgIFNvZnR3YXJlICgiSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAotICAgICAgIE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4KLSAgICAgICB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaAotICAgICAgIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlLjwvbGk+Ci08L29sPgorCTxvbD4KKwkJPGxpPkEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgmcXVvdDtQcm92aXNpb25pbmcKKwkJCVByb2Nlc3MmcXVvdDspIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nCisJCQlUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoJnF1b3Q7VGFyZ2V0IE1hY2hpbmUmcXVvdDspIHdpdGggdGhlIGludGVudAorCQkJb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuCisJCQlFY2xpcHNlLWJhc2VkIHByb2R1Y3QuPC9saT4KKwkJPGxpPkR1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQorCQkJbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCisJCQlhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS48L2xpPgorCQk8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIKKwkJCXRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUgKCZxdW90O0luc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCZxdW90OykgYW5kIHN1Y2gKKwkJCUluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQKKwkJCU1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCisJCQl0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5CisJCQl0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUKKwkJCUFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUKKwkJCXByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUuPC9saT4KKwk8L29sPgogCi08aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KKwk8aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KIAotPHA+Q29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0bwotICAgYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsCi0gICBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KKwk8cD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoCisJCXlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQKKwkJdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4KKwkJQkVGT1JFIHVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLAorCQlyZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsCisJCWFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KIAotPHA+PHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguPC9zbWFsbD48L3A+Ci0KLQotPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisJPHA+CisJCTxzbWFsbD5KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mCisJCQlPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPgorCTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL3BvbS54bWwgYi9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MtZmVhdHVyZS9wb20ueG1sCmluZGV4IDExN2IxMDAuLjlmZmFmZmIgMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy1mZWF0dXJlL3BvbS54bWwKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jLWZlYXR1cmUvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9hYm91dC5odG1sIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jL2Fib3V0Lmh0bWwKaW5kZXggZDM1ZDVhZS4uN2RmYzUyYSAxMDA2NDQKLS0tIGEvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jL2Fib3V0Lmh0bWwKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+SnVuZSA1LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9hYm91dC5wcm9wZXJ0aWVzIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jL2Fib3V0LnByb3BlcnRpZXMKaW5kZXggZTZlMjc0YS4uZDRmNGIxMyAxMDA2NDQKLS0tIGEvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jL2Fib3V0LnByb3BlcnRpZXMKKysrIGIvZG9jL29yZy5lY2xpcHNlLm0ybS5hdGwuZG9jL2Fib3V0LnByb3BlcnRpZXMKQEAgLTMsOSArMyw5IEBACiAjICAqCiAjICAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAgKgogIyAgKiBDb250cmlidXRvcnM6CiAjICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MvYnVpbGQvb3ZlcnZpZXcuaHRtbCBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9idWlsZC9vdmVydmlldy5odG1sCmluZGV4IDMxMGExZDguLmJkZTFiZDggMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9idWlsZC9vdmVydmlldy5odG1sCisrKyBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9idWlsZC9vdmVydmlldy5odG1sCkBAIC04LDkgKzgsOSBAQAogICoKICAqIENvcHlyaWdodCAoYykgMjAwNyBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOiAKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9kb2Mvb3JnLmVjbGlwc2UubTJtLmF0bC5kb2MvcG9tLnhtbCBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9wb20ueG1sCmluZGV4IDYwYjJjMWYuLjE2ODdjY2YgMTAwNjQ0Ci0tLSBhL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9wb20ueG1sCisrKyBiL2RvYy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRvYy9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy1mZWF0dXJlL2NvcHlyaWdodC50eHQgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvY29weXJpZ2h0LnR4dAppbmRleCBhNmEwZjNmLi4yNTkyMTEwIDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvY29weXJpZ2h0LnR4dAorKysgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvY29weXJpZ2h0LnR4dApAQCAtMSw4ICsxLDggQEAKIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIAogQ29udHJpYnV0b3JzOgogICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMtZmVhdHVyZS9lcGwtdjEwLmh0bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvZXBsLXYxMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTU3ZjNlLi4wMDAwMDAwCi0tLSBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMtZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0MSlodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLQotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICBib2R5IHsKLSAgICBzaXplOiA4LjVpbiAxMS4waW47Ci0gICAgbWFyZ2luOiAwLjI1aW4gMC41aW4gMC4yNWluIDAuNWluOwotICAgIHRhYi1pbnRlcnZhbDogMC41aW47Ci0gICAgfQotICBwIHsgIAkKLSAgICBtYXJnaW4tbGVmdDogYXV0bzsKLSAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgfQotICBwLmxpc3QgewotICAJbWFyZ2luLWxlZnQ6IDAuNWluOwotICAgIG1hcmdpbi10b3A6ICAwLjA1ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC4wNWVtOwotICAgIH0KLSAgPC9zdHlsZT4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiPgotCi08aDI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9oMj4KLQotPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLVBVQkxJQyBMSUNFTlNFICgiQUdSRUVNRU5UIikuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUgotRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUwotQUdSRUVNRU5ULjwvcD4KLQotPHA+PGI+MS4gREVGSU5JVElPTlM8L2I+PC9wPgotCi08cD4iQ29udHJpYnV0aW9uIiBtZWFuczo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwKLWNvZGUgYW5kIGRvY3VtZW50YXRpb24gZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9wPgotPHAgY2xhc3M9Imxpc3QiPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvcD4KLTxwIGNsYXNzPSJsaXN0Ij53aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbQotb3JpZ2luYXRlIGZyb20gYW5kIGFyZSBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEKLUNvbnRyaWJ1dGlvbiAnb3JpZ2luYXRlcycgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUKLVByb2dyYW0gYnkgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoCi1Db250cmlidXRvcidzIGJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlCi1Qcm9ncmFtIHdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4KLWNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKQotYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzCi10aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJMaWNlbnNlZCBQYXRlbnRzIiBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhCi1Db250cmlidXRvciB3aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMKLUNvbnRyaWJ1dGlvbiBhbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uPC9wPgotCi08cD4iUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZQotd2l0aCB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPiJSZWNpcGllbnQiIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIKLXRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3A+Ci0KLTxwPjxiPjIuIEdSQU5UIE9GIFJJR0hUUzwvYj48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaAotQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsCi1yb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3MKLW9mLCBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZQotQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4KLXNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoCi1Db250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKLXJveWFsdHktZnJlZSBwYXRlbnQgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwKLW9mZmVyIHRvIHNlbGwsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50Ci1saWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUKLVByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLAotc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLWJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueSBvdGhlcgotY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvcgotZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzCi1hcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi1wYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoCi1Db250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcyBicm91Z2h0IGJ5Ci1hbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzCi1vciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQgbGljZW5zZXMKLWdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvcgotZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQKLXRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUKLXRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQKLWhhcyBzdWZmaWNpZW50IGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudAotdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPjxiPjMuIFJFUVVJUkVNRU5UUzwvYj48L3A+Ci0KLTxwPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGluIG9iamVjdCBjb2RlCi1mb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcwotQWdyZWVtZW50OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzCi1hbGwgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLW9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IKLWNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMKLWFsbCBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paWkpIHN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMKLUFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0IENvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyCi1wYXJ0eTsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aXYpIHN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUKLWZyb20gc3VjaCBDb250cmlidXRvciwgYW5kIGluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYQotcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZQotZXhjaGFuZ2UuPC9wPgotCi08cD5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoCi1jb3B5IG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQKLXdpdGhpbiB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlIG9yaWdpbmF0b3Igb2YgaXRzCi1Db250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cyBzdWJzZXF1ZW50Ci1SZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uPC9wPgotCi08cD48Yj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvYj48L3A+Ci0KLTxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbgotcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlCi1saWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YKLXRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlCi1wb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvcgotaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKLSgiQ29tbWVyY2lhbCBDb250cmlidXRvciIpIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZAotaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yICgiSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IiKQotYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICJMb3NzZXMiKQotYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkCi1wYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUKLWFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuIFRoZQotb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluCi1vcmRlciB0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkKLXRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZQotQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZQotSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24KLWV4cGVuc2UuPC9wPgotCi08cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsCi1Db250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCi1jbGFpbXMgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5Ci1hbG9uZS4gVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvCi1kZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlCi1wZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlcgotQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvcgotbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3A+Ci0KLTxwPjxiPjUuIE5PIFdBUlJBTlRZPC9iPjwvcD4KLQotPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIFRIRSBQUk9HUkFNIElTCi1QUk9WSURFRCBPTiBBTiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUwotT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sCi1BTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFkKLU9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi1leGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi10aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLAotZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLWludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLjwvcD4KLQotPHA+PGI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2I+PC9wPgotCi08cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgTkVJVEhFUiBSRUNJUElFTlQKLU5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi1JTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HCi1XSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKLUxJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRAotSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3A+Ci0KLTxwPjxiPjcuIEdFTkVSQUw8L2I+PC9wPgotCi08cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mCi10aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24KLWJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0KLWV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9wPgotCi08cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkKLShpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZQotUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlcgotc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZQotZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuPC9wPgotCi08cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdAotZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMKLUFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lCi1hZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMKLXVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuPC9wPgotCi08cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcwotQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZQotQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcKLXJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZQotQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlCi1Gb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heQotYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYQotc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZQotZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0gKGluY2x1ZGluZwotQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mIHRoZQotQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUKLVByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMKLWV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vCi1yaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIKLXRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yCi1vdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMKLUFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuPC9wPgotCi08cD5UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgTmV3IFlvcmsgYW5kCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYS4gTm8gcGFydHkKLXRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcyBBZ3JlZW1lbnQgbW9yZQotdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcyBpdHMKLXJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLjwvcD4KLQotCi0KLTwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy1mZWF0dXJlL2VwbC12MjAuaHRtbCBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMtZmVhdHVyZS9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMtZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNTgpaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtMi4wL0VQTC0yLjAuaHRtbCAtLT4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgCisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KKyAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorICAgICAgUFVCTElDIExJQ0VOU0UgKOKAnEFHUkVFTUVOVOKAnSkuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KKyAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KKyAgICA8cD7igJxDb250cmlidXRpb27igJ0gbWVhbnM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgICAgICAg4oCcb3JpZ2luYXRlc+KAnSBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KKyAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0CisgICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+4oCcQ29udHJpYnV0b3LigJ0gbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+CisgICAgPHA+4oCcTGljZW5zZWQgUGF0ZW50c+KAnSBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCisgICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCisgICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCisgICAgPC9wPgorICAgIDxwPuKAnFByb2dyYW3igJ0gbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKKyAgICAgIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPHA+4oCcUmVjaXBpZW504oCdIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCisgICAgPC9wPgorICAgIDxwPuKAnERlcml2YXRpdmUgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCisgICAgPC9wPgorICAgIDxwPuKAnE1vZGlmaWVkIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CisgICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKKyAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQorICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKKyAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKKyAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCisgICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCisgICAgICBXb3JrcyB0aGVyZW9mLgorICAgIDwvcD4KKyAgICA8cD7igJxEaXN0cmlidXRl4oCdIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCisgICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgorICAgIDwvcD4KKyAgICA8cD7igJxTb3VyY2UgQ29kZeKAnSBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCisgICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgPC9wPgorICAgIDxwPuKAnFNlY29uZGFyeSBMaWNlbnNl4oCdIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgIENvbnRyaWJ1dG9yLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKKyAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKKyAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKKyAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKKyAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAorICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAorICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKKyAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55CisgICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgorICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgICAgICA8L2xpPgorICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKKyAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCisgICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgICAgICA8L2xpPgorICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisgICAgICA8L2xpPgorICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgorICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAorICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQncyByZWNlaXB0IG9mIHRoZQorICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKKyAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+CisgICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQorICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQorICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCisgICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKKyAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQorICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCisgICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMnIHJpZ2h0cyBpbiB0aGUKKyAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQorICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQorICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQorICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bworICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAorICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKKyAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKKyAgICAgICjigJhub3RpY2Vz4oCZKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKKyAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKKyAgICAgIG5vdGljZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KKyAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcworICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCisgICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKKyAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKKyAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgorICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQorICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICjigJxDb21tZXJjaWFsIENvbnRyaWJ1dG9y4oCdKQorICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgorICAgICAgKOKAnEluZGVtbmlmaWVkIENvbnRyaWJ1dG9y4oCdKSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCisgICAgICAoY29sbGVjdGl2ZWx5IOKAnExvc3Nlc+KAnSkgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKKyAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50CisgICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCisgICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCisgICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZworICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCisgICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCisgICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCisgICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAorICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKyAgICA8L3A+CisgICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQorICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCisgICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKKyAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4KKyAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCisgICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCisgICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCisgICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiDigJxBUyBJU+KAnSBCQVNJUywgV0lUSE9VVAorICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKKyAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKKyAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQorICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKKyAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKKyAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKKyAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAorICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUworICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgorICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCisgICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCisgICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKKyAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKKyAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKyAgICA8L3A+CisgICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKKyAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCisgICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZAorICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisgICAgPC9wPgorICAgIDxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCisgICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCisgICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKKyAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCisgICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyCisgICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQorICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKyAgICA8L3A+CisgICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5CisgICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKKyAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAorICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAorICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcworICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCisgICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KKyAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCisgICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3CisgICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQorICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgorICAgIDwvcD4KKyAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKKyAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQorICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKKyAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKKyAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAorICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KKyAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSDigJMgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KKyAgICA8cD7igJxUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCisgICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCisgICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKKyAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS7igJ0KKyAgICA8L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCisgICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCisgICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCisgICAgICAgIHN1Y2ggYSBub3RpY2UuCisgICAgICA8L3A+CisgICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICAKKzxkaXYgaWQ9ImVpZC1jaHJvbWUtZXh0ZW5zaW9uLWlzLWluc3RhbGxlZCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwppbmRleCBlNzc3YjdiLi40YTlkMzZmIDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTMsOSArMyw5IEBACiAjICAqCiAjICAqIENvcHlyaWdodCAoYykgMjAwNyBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICogCiAjICAqIENvbnRyaWJ1dG9yczogCiAjICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCkBAIC0zNiw5ICszNiw5IEBACiBjb3B5cmlnaHRVUkw9Y29weXJpZ2h0LnR4dAogY29weXJpZ2h0PUNvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLlxuXAogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xuXAotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXG5cCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcblwKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XG5cCi1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cblwKICBcblwKIENvbnRyaWJ1dG9yczpcblwKICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KQEAgLTU0LDEyNyArNTQsMTQzIEBACiAjIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKIGxpY2Vuc2U9XAogRWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50XG5cCi1BcHJpbCA5LCAyMDE0XG5cCitcblwKK05vdmVtYmVyIDIyLCAyMDE3XG5cCiBcblwKIFVzYWdlIE9mIENvbnRlbnRcblwKIFxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1VcblwKLUFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlRcblwKLUFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTXG5cCi1PUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlNcblwKLU9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCi1CRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT05cblwKK0FORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gVVNFIE9GXG5cCitUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKK0JFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORURcblwKK0JZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRVxuXAorQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTllcblwKK0FQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VXG5cCitNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKIFxuXAogQXBwbGljYWJsZSBMaWNlbnNlc1xuXAogXG5cCi1Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlXG5cCi1FY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZlxuXAotdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKLXByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC5cblwKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAorVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb25cblwKK2lzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2VcblwKK1ZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvXG5cCithdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCxcblwKKyJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCiBcblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCi1hcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKK0NvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uXG5cCithbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnlcblwKKygiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzXG5cCitkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKIFxuXAotXHQtIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsXG5cCi1cdCAgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLFxuXAotXHQgIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCi1cdC0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhKFRNKSBBUmNoaXZlKVxuXAotXHQgIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKLVx0LSBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC5cblwKLVx0ICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLlxuXAotXHQgIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvblxuXAotXHQgIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKLVx0LSBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXNcblwKLVx0ICBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKKy0gICBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZVxuXAorICAgIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gVHlwaWNhbCBtb2R1bGVzIG1heVxuXAorICAgIGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmRcblwKKyAgICBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCistICAgRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSXG5cCisgICAgKEphdmFcdTIxMjIgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAorLSAgIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZFxuXAorICAgIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGFcblwKKyAgICBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXlcblwKKyAgICBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yXG5cCisgICAgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCistICAgRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhXG5cCisgICAgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZFxuXAorICAgIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKIFxuXAotVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZVxuXAotY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQgSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZFxuXAotaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQgRmVhdHVyZVxuXAotTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZVxuXAotaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6XG5cCitUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpblxuXAorZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXNcblwKK2FuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiXG5cCisoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueVxuXAorZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmdcblwKK2xvY2F0aW9uczpcblwKIFxuXAotXHQtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotXHQtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi1cdC0gSW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSc1xuXAotXHQtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLVx0LSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAorLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKIFxuXAotTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZVxuXAotUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFxuXAotVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWluc1xuXAotSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKLXdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtXG5cCi15b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluXG5cCi10aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuXG5cCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlXG5cCi10ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0XG5cCi1nb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZ1xuXAordGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlXG5cCisoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZVxuXAorY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKK3dpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdVxuXAord2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSJcblwKK3Byb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2hcblwKK0Fib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZlxuXAordGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKIFxuXAotVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUExcblwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRVxuXAorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKIFxuXAotXHQtIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCi1cdC0gQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAotXHQtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCistICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwpXG5cCistICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAorLSAgIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gICBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCiBcblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZVxuXAotaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnNcblwKLWdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE9cblwKK1VTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpc1xuXAorcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKIFxuXAotXG5cVXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKIFxuXAotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLFxuXAotYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3JcblwKLXRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vclxuXAotb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoXG5cCi10aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy5cblwKLUluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXRcblwKK1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2hcblwKK2luY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlclxuXAorKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsXG5cCitzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5XG5cCisiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZ1xuXAorc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvblxuXAorYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAogaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKIFxuXAotWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAotWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlXG5cCi1JbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAotaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZFxuXAotbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXJcblwKLWFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbFxuXAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGVcblwKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmRcblwKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcblwKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdFxuXAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGVcblwKK2ZvbGxvd2luZzpcblwKIFxuXAotXHQxLiBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlXG5cCi1cdCAgIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLFxuXAotXHQgICBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAotXHQyLiBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5XG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLlxuXAotXHQzLiBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAotXHQgICBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaFxuXAotXHQgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZVxuXAotXHQgICB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGVcblwKLVx0ICAgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZSBieVxuXAotXHQgICB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2hcblwKLVx0ICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvblxuXAotXHQgICBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCisxLiAgQSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXlcblwKKyAgICBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlXG5cCisgICAgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhblxuXAorICAgIEVjbGlwc2UtYmFzZWQgcHJvZHVjdC5cblwKKzIuICBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkXG5cCisgICAgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0b1xuXAorICAgIHRoZSBUYXJnZXQgTWFjaGluZS5cblwKKzMuICBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kXG5cCisgICAgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlXG5cCisgICAgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlXG5cCisgICAgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2VcblwKKyAgICBieSB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaCBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlXG5cCisgICAgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCiBcblwKIENyeXB0b2dyYXBoeVxuXAogXG5cCi1Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmVcblwKLWN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSxcblwKLWFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkVcblwKLXVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLFxuXAotcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmRcblwKLXJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuXG5cCitDb250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5XG5cCittYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0b1xuXAorYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsXG5cCitwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LFxuXAorcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzXG5cCitwZXJtaXR0ZWQuXG5cCiBcblwKLUphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KK0phdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZVxuXAorVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuCiAjIyMjIyMjIyMjIyBlbmQgb2YgbGljZW5zZSBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQotCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvbGljZW5zZS5odG1sIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy1mZWF0dXJlL2xpY2Vuc2UuaHRtbAppbmRleCBjZWNmMTM3Li5hZmIyZjM1IDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvbGljZW5zZS5odG1sCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMtZmVhdHVyZS9saWNlbnNlLmh0bWwKQEAgLTEsMTA2ICsxLDE5MCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0NClodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC9ub3RpY2UuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KIAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KIDx0aXRsZT5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KKzwvaGVhZD4KIAogPGJvZHkgbGFuZz0iRU4tVVMiPgotPGgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvaDI+Ci08cD5BcHJpbCA5LCAyMDE0PC9wPgorCTxoMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L2gyPgorCTxwPk5vdmVtYmVyIDIyLCAyMDE3PC9wPgogCi08aDM+VXNhZ2UgT2YgQ29udGVudDwvaDM+CisJPGgzPlVzYWdlIE9mIENvbnRlbnQ8L2gzPgogCi08cD5USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMKLSAgIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UKLSAgIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SCi0gICBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULjwvcD4KKwk8cD5USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwKKwkJSU5GT1JNQVRJT04gQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMKKwkJKENPTExFQ1RJVkVMWSAmcXVvdDtDT05URU5UJnF1b3Q7KS4gVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZCisJCVRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORAorCQlDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VECisJCUJFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMKKwkJR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkKKwkJQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUworCQlBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFCisJCUFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1UgTUFZIE5PVAorCQlVU0UgVEhFIENPTlRFTlQuPC9wPgogCi08aDM+QXBwbGljYWJsZSBMaWNlbnNlczwvaDM+CisJPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgogCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoIkVQTCIpLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCi0gICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CisJPHA+CisJCVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCisJCUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUKKwkJRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgorCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCisJPC9wPgogCi08cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlCi0gICByZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLjwvcD4KKwk8cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QKKwkJY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkgKCZxdW90O1JlcG9zaXRvcnkmcXVvdDspIGluIHNvZnR3YXJlCisJCW1vZHVsZXMgKCZxdW90O01vZHVsZXMmcXVvdDspIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUKKwkJYXJjaGl2ZXMgKCZxdW90O0Rvd25sb2FkcyZxdW90OykuPC9wPgogCi08dWw+Ci0gICAgICAgPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuPC9saT4KLSAgICAgICA8bGk+RWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhmSBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuPC9saT4KLSAgICAgICA8bGk+QSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zCi0gICAgICBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KLSAgICAgICA8bGk+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLjwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0bworCQkJZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwKKwkJCW1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCZxdW90O1BsdWctaW5zJnF1b3Q7KSwgcGx1Zy1pbgorCQkJZnJhZ21lbnRzICgmcXVvdDtGcmFnbWVudHMmcXVvdDspLCBhbmQgZmVhdHVyZXMKKwkJCSgmcXVvdDtGZWF0dXJlcyZxdW90OykuPC9saT4KKwkJPGxpPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5CisJCQlvciBKQVIgKEphdmEmdHJhZGU7IEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkCisJCQkmcXVvdDtwbHVnaW5zJnF1b3Q7LjwvbGk+CisJCTxsaT5BIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yCisJCQlGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYQorCQkJc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtmZWF0dXJlcyZxdW90Oy4gV2l0aGluIGEKKwkJCUZlYXR1cmUsIGZpbGVzIG5hbWVkICZxdW90O2ZlYXR1cmUueG1sJnF1b3Q7IG1heSBjb250YWluIGEgbGlzdCBvZgorCQkJdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMKKwkJCWFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KKwkJPGxpPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCZxdW90O0luY2x1ZGVkCisJCQlGZWF0dXJlcyZxdW90OykuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkCisJCQkmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uCisJCQludW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLjwvbGk+CisJPC91bD4KIAotPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kCi1JbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiAgQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KKwk8cD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkCisJCWJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAmcXVvdDthYm91dC5odG1sJnF1b3Q7CisJCSgmcXVvdDtBYm91dHMmcXVvdDspLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAorCQlJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkCisJCSZxdW90O2xpY2Vuc2UuaHRtbCZxdW90OyAoJnF1b3Q7RmVhdHVyZSBMaWNlbnNlcyZxdW90OykuIEFib3V0cyBhbmQKKwkJRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IKKwkJTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgotICAgICAgIDxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+Ci0gICAgICAgPGxpPkluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnM8L2xpPgotICAgICAgIDxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zPC9saT4KLSAgICAgICA8bGk+RmVhdHVyZSBkaXJlY3RvcmllczwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeTwvbGk+CisJCTxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+CisJCTxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KKwkJPGxpPlN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICZxdW90O3NyYyZxdW90OyBvZgorCQkJY2VydGFpbiBQbHVnLWluczwvbGk+CisJCTxsaT5GZWF0dXJlIGRpcmVjdG9yaWVzPC9saT4KKwk8L3VsPgogCi08cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUKLWluc3RhbGxhdGlvbiBwcm9jZXNzLiAgSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvcgotaW5mb3JtIHlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiAgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4KLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbgotdGhhdCBkaXJlY3RvcnkuPC9wPgorCTxwPk5vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzCisJCWluc3RhbGxlZCB1c2luZyB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UKKwkJbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCZxdW90O0ZlYXR1cmUgVXBkYXRlIExpY2Vuc2UmcXVvdDspIGR1cmluZworCQl0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLAorCQl0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zCisJCWFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdSB3aGVyZSB5b3UKKwkJY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlCisJCSZxdW90O2xpY2Vuc2UmcXVvdDsgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQKKwkJJnF1b3Q7ZmVhdHVyZS5wcm9wZXJ0aWVzJnF1b3Q7IGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2ggQWJvdXRzLAorCQlGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kCisJCWNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4KKwkJeW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS48L3A+CiAKLTxwPlRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuICBTT01FIE9GIFRIRVNFCi1PVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KKwk8cD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZCisJCVJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORAorCQlDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUCisJCUFSRSBOT1QgTElNSVRFRCBUTyk6PC9wPgogCi08dWw+Ci0gICAgICAgPGxpPkVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sPC9hPik8L2xpPgotICAgICAgIDxsaT5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWw8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pPC9saT4KLSAgICAgICA8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+KTwvbGk+Ci0gICAgICAgPGxpPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvYT4pPC9saT4KLTwvdWw+CisJPHVsPgorCQk8bGk+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+RWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkNvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pCisJCTwvbGk+CisJCTxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+KQorCQk8L2xpPgorCQk8bGk+TW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvYT4pCisJCTwvbGk+CisJPC91bD4KIAotPHA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUTyBVU0UgT0YgVEhFIENPTlRFTlQuICBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UKLWNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgorCTxwPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5ECisJCUNPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLAorCQlvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UgY29udGFjdCB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybiB0aGF0CisJCXBhcnRpY3VsYXIgQ29udGVudC48L3A+CiAKIAotPGgzPlVzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neTwvaDM+CisJPGgzPlVzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neTwvaDM+CiAKLTxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2ggaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlCi0gICBVcGRhdGUgTWFuYWdlciAoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vcgotICAgb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoIHRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0bwotICAgaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sIj5odHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sPC9hPgotICAgKCJTcGVjaWZpY2F0aW9uIikuPC9wPgorCTxwPgorCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzCisJCW9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUKKwkJTWFuYWdlciAoJnF1b3Q7UHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kmcXVvdDspIGZvciB0aGUgcHVycG9zZSBvZgorCQlhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3IKKwkJb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgJnF1b3Q7SW5zdGFsbGFibGUgU29mdHdhcmUmcXVvdDspLiBUaGlzCisJCWNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8KKwkJaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24gYWJvdXQKKwkJcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KKwkJKCZxdW90O1NwZWNpZmljYXRpb24mcXVvdDspLgorCTwvcD4KIAotPHA+WW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLiBZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZQotICAgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5Ci0gICBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdCBhdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZQotICAgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91ciBhZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZSBmb2xsb3dpbmc6PC9wPgorCTxwPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8KKwkJaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZworCQl0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlCisJCXRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZworCQlUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nCisJCVRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGgKKwkJdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlCisJCWFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvcD4KIAotPG9sPgotICAgICAgIDxsaT5BIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgICAgIG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkCi0gICAgICAgcHJvZHVjdC48L2xpPgotICAgICAgIDxsaT5EdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCi0gICAgICAgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuPC9saT4KLSAgICAgICA8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCi0gICAgICAgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0Ci0gICAgICAgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybgotICAgICAgIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoCi0gICAgICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuPC9saT4KLTwvb2w+CisJPG9sPgorCQk8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCZxdW90O1Byb3Zpc2lvbmluZworCQkJUHJvY2VzcyZxdW90OykgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcKKwkJCVRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgmcXVvdDtUYXJnZXQgTWFjaGluZSZxdW90Oykgd2l0aCB0aGUgaW50ZW50CisJCQlvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4KKwkJCUVjbGlwc2UtYmFzZWQgcHJvZHVjdC48L2xpPgorCQk8bGk+RHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5CisJCQltYXkgY2F1c2UgdGhpcmQgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUKKwkJCWFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLjwvbGk+CisJCTxsaT5QdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlcgorCQkJdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZSAoJnF1b3Q7SW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50JnF1b3Q7KSBhbmQgc3VjaAorCQkJSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAorCQkJTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUKKwkJCVNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMKKwkJCXRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkKKwkJCXRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQkJQWdyZWVtZW50LiBVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZQorCQkJcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZS48L2xpPgorCTwvb2w+CiAKLTxoMz5DcnlwdG9ncmFwaHk8L2gzPgorCTxoMz5DcnlwdG9ncmFwaHk8L2gzPgogCi08cD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvCi0gICBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwKLSAgIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgorCTxwPkNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2gKKwkJeW91IGFyZSBjdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZAorCQl1c2UsIGFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLgorCQlCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsCisJCXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwKKwkJYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgogCi08cD48c21hbGw+SmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPjwvcD4KLQotCi08L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKwk8cD4KKwkJPHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YKKwkJCU9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLjwvc21hbGw+CisJPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy1mZWF0dXJlL3BvbS54bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvcG9tLnhtbAppbmRleCA1YWE2ZmViLi44OWM2N2RjIDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvcG9tLnhtbAorKysgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLWZlYXR1cmUvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUuY21kL2Fib3V0Lmh0bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLmNtZC9hYm91dC5odG1sCmluZGV4IGI2MzgwZDQuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUuY21kL2Fib3V0Lmh0bWwKKysrIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS5jbWQvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5TZXB0ZW1iZXIgMSwgMjAwNTwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLmNtZC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9leGFtcGxlcy9wdWJsaWMycHJpdmF0ZS9jbWQvTWFpbi5qYXZhIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS5jbWQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvcHVibGljMnByaXZhdGUvY21kL01haW4uamF2YQppbmRleCBjZjc2M2UzLi44ZTA3YjVhIDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLmNtZC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9leGFtcGxlcy9wdWJsaWMycHJpdmF0ZS9jbWQvTWFpbi5qYXZhCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUuY21kL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2V4YW1wbGVzL3B1YmxpYzJwcml2YXRlL2NtZC9NYWluLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDA5IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIFB1YmxpYzJQcml2YXRlIHN0YW5kYWxvbmUgZXhhbXBsZQpkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLnVpLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgorb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBzXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLnVpL2Fib3V0Lmh0bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLnVpL2Fib3V0Lmh0bWwKaW5kZXggYjYzODBkNC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS51aS9hYm91dC5odG1sCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUudWkvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5TZXB0ZW1iZXIgMSwgMjAwNTwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2V4YW1wbGVzL3B1YmxpYzJwcml2YXRlL3VpL1ByaXZhdGl6ZUFjdGlvbi5qYXZhIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9leGFtcGxlcy9wdWJsaWMycHJpdmF0ZS91aS9Qcml2YXRpemVBY3Rpb24uamF2YQppbmRleCBkM2E4MzhjLi4yNzM3Mzg0IDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2V4YW1wbGVzL3B1YmxpYzJwcml2YXRlL3VpL1ByaXZhdGl6ZUFjdGlvbi5qYXZhCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvcHVibGljMnByaXZhdGUvdWkvUHJpdmF0aXplQWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIFB1YmxpYzJQcml2YXRlIGV4YW1wbGUgSURFCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlL2Fib3V0Lmh0bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzLnB1YmxpYzJwcml2YXRlL2Fib3V0Lmh0bWwKaW5kZXggYjYzODBkNC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy5wdWJsaWMycHJpdmF0ZS9hYm91dC5odG1sCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMucHVibGljMnByaXZhdGUvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5TZXB0ZW1iZXIgMSwgMjAwNTwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL2Fib3V0Lmh0bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL2Fib3V0Lmh0bWwKaW5kZXggYzI1OGVmNS4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9hYm91dC5odG1sCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5KdW5lIDUsIDIwMDY8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9hYm91dC5wcm9wZXJ0aWVzIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9hYm91dC5wcm9wZXJ0aWVzCmluZGV4IGY2YmQwMjcuLjVhMzZlZDggMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvYWJvdXQucHJvcGVydGllcworKysgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL2Fib3V0LnByb3BlcnRpZXMKQEAgLTEzLDkgKzEzLDkgQEAKIFxuXAogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uXG5cCiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXG5cCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxuXAogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMgJSUlIEVORCBPRiBUUkFOU0xBVEVEIFBST1BFUlRJRVMgJSUlCiAjIFRoZSBhYm92ZSBwcm9wZXJ0aWVzIGhhdmUgYmVlbiBzaGlwcGVkIGZvciB0cmFuc2xhdGlvbi4KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvYnVpbGQueG1sIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9idWlsZC54bWwKaW5kZXggMzM2MGYxMC4uMzgzYjkxOCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9idWlsZC54bWwKKysrIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9idWlsZC54bWwKQEAgLTQsOSArNCw5IEBACiAgIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvCiAgIAogICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAKICAgQ29udHJpYnV0b3JzOgogICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL3BvbS54bWwgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL3BvbS54bWwKaW5kZXggOWQ2YzFkZC4uMGJmZmZjMCAxMDA2NDQKLS0tIGEvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9wb20ueG1sCisrKyBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvQVRMRXhhbXBsZXNQbHVnaW4uamF2YSBiL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvQVRMRXhhbXBsZXNQbHVnaW4uamF2YQppbmRleCA2NDc3ZTYzLi4xMjJmMmUwIDEwMDY0NAotLS0gYS9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2V4YW1wbGVzL0FUTEV4YW1wbGVzUGx1Z2luLmphdmEKKysrIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9leGFtcGxlcy9BVExFeGFtcGxlc1BsdWdpbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvQWJzdHJhY3RFeGFtcGxlV2l6YXJkLmphdmEgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2V4YW1wbGVzL0Fic3RyYWN0RXhhbXBsZVdpemFyZC5qYXZhCmluZGV4IDRiNzBhZWEuLjllZWZiZDYgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvQWJzdHJhY3RFeGFtcGxlV2l6YXJkLmphdmEKKysrIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9leGFtcGxlcy9BYnN0cmFjdEV4YW1wbGVXaXphcmQuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDYsIDIwMDcsIDIwMDggSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvUHVibGljMlByaXZhdGVFeGFtcGxlV2l6YXJkLmphdmEgYi9leGFtcGxlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLmV4YW1wbGVzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2V4YW1wbGVzL1B1YmxpYzJQcml2YXRlRXhhbXBsZVdpemFyZC5qYXZhCmluZGV4IDRmNTI1ZTAuLjc4YWMzMmUgMTAwNjQ0Ci0tLSBhL2V4YW1wbGVzL29yZy5lY2xpcHNlLm0ybS5hdGwuZXhhbXBsZXMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZXhhbXBsZXMvUHVibGljMlByaXZhdGVFeGFtcGxlV2l6YXJkLmphdmEKKysrIGIvZXhhbXBsZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5leGFtcGxlcy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9leGFtcGxlcy9QdWJsaWMyUHJpdmF0ZUV4YW1wbGVXaXphcmQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvYWJvdXQuaHRtbAppbmRleCAyYjliY2ZiLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+TWF5IDMwLCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzCmluZGV4IGVjMzllYWQuLjE3MDBlNzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvYnVpbGQucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2NvcHlyaWdodC50eHQgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9jb3B5cmlnaHQudHh0CmluZGV4IGI4MGJhMTIuLmJiMGRmMjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2NvcHlyaWdodC50eHQKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvY29weXJpZ2h0LnR4dApAQCAtMSw1ICsxLDUgQEAKIENvcHlyaWdodCAoYykgMjAwNCwgMjAwOSBJTlJJQS4KIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCAKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCAKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2VwbC12MTAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2VwbC12MTAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjk1N2YzZS4uMDAwMDAwMAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0MSlodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLQotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICBib2R5IHsKLSAgICBzaXplOiA4LjVpbiAxMS4waW47Ci0gICAgbWFyZ2luOiAwLjI1aW4gMC41aW4gMC4yNWluIDAuNWluOwotICAgIHRhYi1pbnRlcnZhbDogMC41aW47Ci0gICAgfQotICBwIHsgIAkKLSAgICBtYXJnaW4tbGVmdDogYXV0bzsKLSAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgfQotICBwLmxpc3QgewotICAJbWFyZ2luLWxlZnQ6IDAuNWluOwotICAgIG1hcmdpbi10b3A6ICAwLjA1ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC4wNWVtOwotICAgIH0KLSAgPC9zdHlsZT4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiPgotCi08aDI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9oMj4KLQotPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLVBVQkxJQyBMSUNFTlNFICgiQUdSRUVNRU5UIikuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUgotRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUwotQUdSRUVNRU5ULjwvcD4KLQotPHA+PGI+MS4gREVGSU5JVElPTlM8L2I+PC9wPgotCi08cD4iQ29udHJpYnV0aW9uIiBtZWFuczo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwKLWNvZGUgYW5kIGRvY3VtZW50YXRpb24gZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9wPgotPHAgY2xhc3M9Imxpc3QiPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvcD4KLTxwIGNsYXNzPSJsaXN0Ij53aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbQotb3JpZ2luYXRlIGZyb20gYW5kIGFyZSBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEKLUNvbnRyaWJ1dGlvbiAnb3JpZ2luYXRlcycgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUKLVByb2dyYW0gYnkgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoCi1Db250cmlidXRvcidzIGJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlCi1Qcm9ncmFtIHdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4KLWNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKQotYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzCi10aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJMaWNlbnNlZCBQYXRlbnRzIiBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhCi1Db250cmlidXRvciB3aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMKLUNvbnRyaWJ1dGlvbiBhbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uPC9wPgotCi08cD4iUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZQotd2l0aCB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPiJSZWNpcGllbnQiIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIKLXRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3A+Ci0KLTxwPjxiPjIuIEdSQU5UIE9GIFJJR0hUUzwvYj48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaAotQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsCi1yb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3MKLW9mLCBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZQotQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4KLXNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoCi1Db250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKLXJveWFsdHktZnJlZSBwYXRlbnQgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwKLW9mZmVyIHRvIHNlbGwsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50Ci1saWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUKLVByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLAotc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLWJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueSBvdGhlcgotY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvcgotZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzCi1hcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi1wYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoCi1Db250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcyBicm91Z2h0IGJ5Ci1hbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzCi1vciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQgbGljZW5zZXMKLWdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvcgotZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQKLXRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUKLXRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQKLWhhcyBzdWZmaWNpZW50IGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudAotdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPjxiPjMuIFJFUVVJUkVNRU5UUzwvYj48L3A+Ci0KLTxwPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGluIG9iamVjdCBjb2RlCi1mb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcwotQWdyZWVtZW50OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzCi1hbGwgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLW9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IKLWNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMKLWFsbCBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paWkpIHN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMKLUFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0IENvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyCi1wYXJ0eTsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aXYpIHN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUKLWZyb20gc3VjaCBDb250cmlidXRvciwgYW5kIGluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYQotcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZQotZXhjaGFuZ2UuPC9wPgotCi08cD5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoCi1jb3B5IG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQKLXdpdGhpbiB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlIG9yaWdpbmF0b3Igb2YgaXRzCi1Db250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cyBzdWJzZXF1ZW50Ci1SZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uPC9wPgotCi08cD48Yj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvYj48L3A+Ci0KLTxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbgotcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlCi1saWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YKLXRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlCi1wb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvcgotaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKLSgiQ29tbWVyY2lhbCBDb250cmlidXRvciIpIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZAotaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yICgiSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IiKQotYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICJMb3NzZXMiKQotYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkCi1wYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUKLWFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuIFRoZQotb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluCi1vcmRlciB0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkKLXRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZQotQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZQotSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24KLWV4cGVuc2UuPC9wPgotCi08cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsCi1Db250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCi1jbGFpbXMgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5Ci1hbG9uZS4gVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvCi1kZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlCi1wZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlcgotQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvcgotbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3A+Ci0KLTxwPjxiPjUuIE5PIFdBUlJBTlRZPC9iPjwvcD4KLQotPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIFRIRSBQUk9HUkFNIElTCi1QUk9WSURFRCBPTiBBTiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUwotT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sCi1BTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFkKLU9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi1leGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi10aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLAotZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLWludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLjwvcD4KLQotPHA+PGI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2I+PC9wPgotCi08cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgTkVJVEhFUiBSRUNJUElFTlQKLU5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi1JTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HCi1XSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKLUxJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRAotSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3A+Ci0KLTxwPjxiPjcuIEdFTkVSQUw8L2I+PC9wPgotCi08cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mCi10aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24KLWJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0KLWV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9wPgotCi08cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkKLShpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZQotUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlcgotc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZQotZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuPC9wPgotCi08cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdAotZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMKLUFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lCi1hZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMKLXVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuPC9wPgotCi08cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcwotQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZQotQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcKLXJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZQotQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlCi1Gb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heQotYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYQotc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZQotZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0gKGluY2x1ZGluZwotQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mIHRoZQotQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUKLVByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMKLWV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vCi1yaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIKLXRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yCi1vdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMKLUFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuPC9wPgotCi08cD5UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgTmV3IFlvcmsgYW5kCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYS4gTm8gcGFydHkKLXRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcyBBZ3JlZW1lbnQgbW9yZQotdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcyBpdHMKLXJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLjwvcD4KLQotCi0KLTwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvZXBsLXYyMC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvZXBsLXYyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNTgpaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtMi4wL0VQTC0yLjAuaHRtbCAtLT4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgCisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KKyAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorICAgICAgUFVCTElDIExJQ0VOU0UgKOKAnEFHUkVFTUVOVOKAnSkuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KKyAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KKyAgICA8cD7igJxDb250cmlidXRpb27igJ0gbWVhbnM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgICAgICAg4oCcb3JpZ2luYXRlc+KAnSBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KKyAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0CisgICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+4oCcQ29udHJpYnV0b3LigJ0gbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+CisgICAgPHA+4oCcTGljZW5zZWQgUGF0ZW50c+KAnSBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCisgICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCisgICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCisgICAgPC9wPgorICAgIDxwPuKAnFByb2dyYW3igJ0gbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKKyAgICAgIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPHA+4oCcUmVjaXBpZW504oCdIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCisgICAgPC9wPgorICAgIDxwPuKAnERlcml2YXRpdmUgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCisgICAgPC9wPgorICAgIDxwPuKAnE1vZGlmaWVkIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CisgICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKKyAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQorICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKKyAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKKyAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCisgICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCisgICAgICBXb3JrcyB0aGVyZW9mLgorICAgIDwvcD4KKyAgICA8cD7igJxEaXN0cmlidXRl4oCdIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCisgICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgorICAgIDwvcD4KKyAgICA8cD7igJxTb3VyY2UgQ29kZeKAnSBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCisgICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgPC9wPgorICAgIDxwPuKAnFNlY29uZGFyeSBMaWNlbnNl4oCdIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgIENvbnRyaWJ1dG9yLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKKyAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKKyAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKKyAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKKyAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAorICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAorICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKKyAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55CisgICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgorICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgICAgICA8L2xpPgorICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKKyAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCisgICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgICAgICA8L2xpPgorICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisgICAgICA8L2xpPgorICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgorICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAorICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQncyByZWNlaXB0IG9mIHRoZQorICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKKyAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+CisgICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQorICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQorICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCisgICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKKyAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQorICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCisgICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMnIHJpZ2h0cyBpbiB0aGUKKyAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQorICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQorICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQorICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bworICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAorICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKKyAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKKyAgICAgICjigJhub3RpY2Vz4oCZKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKKyAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKKyAgICAgIG5vdGljZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KKyAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcworICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCisgICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKKyAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKKyAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgorICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQorICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICjigJxDb21tZXJjaWFsIENvbnRyaWJ1dG9y4oCdKQorICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgorICAgICAgKOKAnEluZGVtbmlmaWVkIENvbnRyaWJ1dG9y4oCdKSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCisgICAgICAoY29sbGVjdGl2ZWx5IOKAnExvc3Nlc+KAnSkgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKKyAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50CisgICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCisgICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCisgICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZworICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCisgICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCisgICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCisgICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAorICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKyAgICA8L3A+CisgICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQorICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCisgICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKKyAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4KKyAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCisgICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCisgICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCisgICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiDigJxBUyBJU+KAnSBCQVNJUywgV0lUSE9VVAorICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKKyAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKKyAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQorICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKKyAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKKyAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKKyAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAorICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUworICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgorICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCisgICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCisgICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKKyAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKKyAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKyAgICA8L3A+CisgICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKKyAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCisgICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZAorICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisgICAgPC9wPgorICAgIDxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCisgICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCisgICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKKyAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCisgICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyCisgICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQorICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKyAgICA8L3A+CisgICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5CisgICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKKyAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAorICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAorICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcworICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCisgICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KKyAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCisgICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3CisgICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQorICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgorICAgIDwvcD4KKyAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKKyAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQorICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKKyAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKKyAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAorICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KKyAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSDigJMgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KKyAgICA8cD7igJxUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCisgICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCisgICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKKyAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS7igJ0KKyAgICA8L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCisgICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCisgICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCisgICAgICAgIHN1Y2ggYSBub3RpY2UuCisgICAgICA8L3A+CisgICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICAKKzxkaXYgaWQ9ImVpZC1jaHJvbWUtZXh0ZW5zaW9uLWlzLWluc3RhbGxlZCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKaW5kZXggN2JjMGYwOS4uOTljYmJjNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwpAQCAtMyw5ICszLDkgQEAKICMgICoKICMgICogQ29weXJpZ2h0IChjKSAyMDAyLCAyMDA5IEFUTEFTIEdyb3VwIChJTlJJQSAmIExJTkEpLgogIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAgKiAKICMgICogQ29udHJpYnV0b3JzOiAKICMgICogICBBVExBUyBHcm91cCAoSU5SSUEgJiBMSU5BKQpAQCAtNDgsOSArNDgsOSBAQAogY29weXJpZ2h0VVJMID0gY29weXJpZ2h0LnR4dAogY29weXJpZ2h0ID0gQ29weXJpZ2h0IChjKSAyMDA0LCAyMDA5IElOUklBLiBcblwKIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgXG5cCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgXG5cCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAgXG5cCiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCBcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8gXG5cCiAgXG5cCiAgICAKICMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgpAQCAtNjEsMTI1ICs2MSwxNDMgQEAKICMgc2hvdWxkIGJlIHBsYWluIHRleHQgdmVyc2lvbiBvZiBsaWNlbnNlIGFncmVlbWVudCBwb2ludGVkIHRvIGJlICJsaWNlbnNlVVJMIgogbGljZW5zZT1cCiBFY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnRcblwKLUFwcmlsIDksIDIwMTRcblwKK1xuXAorTm92ZW1iZXIgMjIsIDIwMTdcblwKIFxuXAogVXNhZ2UgT2YgQ29udGVudFxuXAogXG5cCi1USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SXG5cCi1PVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS5cblwKLVVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJU1xuXAotQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SXG5cCi1OT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVVxuXAotQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVFxuXAotQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFNcblwKLU9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAotVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OU1xuXAotT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKLUJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKK1RIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTlxuXAorQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLiBVU0UgT0ZcblwKK1RIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFXG5cCitURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAorQkVMT1cuIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRFxuXAorQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFXG5cCitBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCitURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWVxuXAorQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1VcblwKK01BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAogXG5cCiBBcHBsaWNhYmxlIExpY2Vuc2VzXG5cCiBcblwKLVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGVcblwKLUVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mXG5cCi10aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpc1xuXAotcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCitVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvblxuXAoraXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZVxuXAorVmVyc2lvbiAyLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc29cblwKK2F2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAuIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLFxuXAorIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKIFxuXAotQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsXG5cCi1kb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGVcblwKLXJlcG9zaXRvcnkgKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGVcblwKLWFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLlxuXAorQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb25cblwKK2FuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUgcmVwb3NpdG9yeVxuXAorKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGUgYXNcblwKK2Rvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLlxuXAogXG5cCi1cdC0gQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZyxcblwKLVx0ICBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksXG5cCi1cdCAgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKLVx0LSBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmEoVE0pIEFSY2hpdmUpXG5cCi1cdCAgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAotXHQtIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLlxuXAotXHQgIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuXG5cCi1cdCAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uXG5cCi1cdCAgbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLlxuXAotXHQtIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlc1xuXAotXHQgIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAorLSAgIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlXG5cCisgICAgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5XG5cCisgICAgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZFxuXAorICAgIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKKy0gICBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVJcblwKKyAgICAoSmF2YVx1MjEyMiBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCistICAgQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kXG5cCisgICAgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYVxuXAorICAgIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heVxuXAorICAgIGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3JcblwKKyAgICBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKKy0gICBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGFcblwKKyAgICBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kXG5cCisgICAgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAogXG5cCi1UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlXG5cCi1jb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmRcblwKLWNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkXG5cCi1pbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlXG5cCi1MaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlXG5cCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluXG5cCitmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlc1xuXAorYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCJcblwKKygiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55XG5cCitkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZ1xuXAorbG9jYXRpb25zOlxuXAogXG5cCi1cdC0gVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCi1cdC0gUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKLVx0LSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi1cdC0gU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAotXHQtIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKKy0gICBUaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3RvcnlcblwKKy0gICBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAorLSAgIEluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnNcblwKKy0gICBTdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zXG5cCistICAgRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAogXG5cCi1Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlXG5cCi1Qcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgXG5cCi1VcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCi1JbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAotd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKLXlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKLXRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS5cblwKLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGVcblwKLXRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXRcblwKLWdvdmVybiB5b3VyIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAorTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nXG5cCit0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2VcblwKKygiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlXG5cCitjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAord2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91XG5cCit3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICJsaWNlbnNlIlxuXAorcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4gU3VjaFxuXAorQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mXG5cCit0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAogXG5cCi1USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSXG5cCi1UTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy5cblwKLVNPTUUgT0YgVEhFU0UgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKK1RIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTFxuXAorT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFXG5cCitPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAogXG5cCi1cdC0gRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbClcblwKLVx0LSBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKLVx0LSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKLVx0LSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXG5cCi1cdC0gTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKKy0gICBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbClcblwKKy0gICBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCistICAgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFKVxuXAorLSAgIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAorLSAgIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKIFxuXAotSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUlxuXAotVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlXG5cCi1pcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9uc1xuXAotZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAorSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUT1xuXAorVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzXG5cCitwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmRcblwKK2NvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAogXG5cCi1cblxVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKK1VzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAogXG5cCi1UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsXG5cCi1idXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvclxuXAotdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yXG5cCi1vdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGhcblwKLXRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLlxuXAotSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAorVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaFxuXAoraW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyXG5cCisoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGxcblwKK3NvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHlcblwKKyJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nXG5cCitzdWNoIHVzZXJzIHRvIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uXG5cCithYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0XG5cCiBodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sICgiU3BlY2lmaWNhdGlvbiIpLlxuXAogXG5cCi1Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvIGluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCi1Zb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGVcblwKLUluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCi1pbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kXG5cCi1tYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAotYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOlxuXAorWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsXG5cCitJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZVxuXAorbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZFxuXAorYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuXAorU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0XG5cCithdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyXG5cCithZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZVxuXAorZm9sbG93aW5nOlxuXAogXG5cCi1cdDEuIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGVcblwKLVx0ICAgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsXG5cCi1cdCAgIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuXG5cCi1cdDIuIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHlcblwKLVx0ICAgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuXG5cCi1cdDMuIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0XG5cCi1cdCAgIGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoXG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlXG5cCi1cdCAgIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZVxuXAotXHQgICB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5XG5cCi1cdCAgIHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaFxuXAotXHQgICBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uXG5cCi1cdCAgIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKKzEuICBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heVxuXAorICAgIGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGVcblwKKyAgICBpbnRlbnQgb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuXG5cCisgICAgRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAorMi4gIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmRcblwKKyAgICBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvXG5cCisgICAgdGhlIFRhcmdldCBNYWNoaW5lLlxuXAorMy4gIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmVcblwKKyAgICBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2hcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZFxuXAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZVxuXAorICAgIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZVxuXAorICAgIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGVcblwKKyAgICBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGVcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKIFxuXAogQ3J5cHRvZ3JhcGh5XG5cCiBcblwKLUNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZVxuXAotY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLFxuXAotYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRVxuXAotdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsXG5cCi1yZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZFxuXAotcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC5cblwKK0NvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZSBjdXJyZW50bHlcblwKK21heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvXG5cCithbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSxcblwKK3BsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsXG5cCitwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXNcblwKK3Blcm1pdHRlZC5cblwKIFxuXAotSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgorSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlXG5cCitVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KICMjIyMjIyMjIyMjIGVuZCBvZiBsaWNlbnNlIHByb3BlcnR5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvbGljZW5zZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvbGljZW5zZS5odG1sCmluZGV4IGNlY2YxMzcuLmFmYjJmMzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL2xpY2Vuc2UuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9saWNlbnNlLmh0bWwKQEAgLTEsMTA2ICsxLDE5MCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0NClodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC9ub3RpY2UuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KIAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KIDx0aXRsZT5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KKzwvaGVhZD4KIAogPGJvZHkgbGFuZz0iRU4tVVMiPgotPGgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvaDI+Ci08cD5BcHJpbCA5LCAyMDE0PC9wPgorCTxoMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L2gyPgorCTxwPk5vdmVtYmVyIDIyLCAyMDE3PC9wPgogCi08aDM+VXNhZ2UgT2YgQ29udGVudDwvaDM+CisJPGgzPlVzYWdlIE9mIENvbnRlbnQ8L2gzPgogCi08cD5USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMKLSAgIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UKLSAgIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SCi0gICBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULjwvcD4KKwk8cD5USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwKKwkJSU5GT1JNQVRJT04gQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMKKwkJKENPTExFQ1RJVkVMWSAmcXVvdDtDT05URU5UJnF1b3Q7KS4gVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZCisJCVRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORAorCQlDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VECisJCUJFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMKKwkJR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkKKwkJQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUworCQlBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFCisJCUFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1UgTUFZIE5PVAorCQlVU0UgVEhFIENPTlRFTlQuPC9wPgogCi08aDM+QXBwbGljYWJsZSBMaWNlbnNlczwvaDM+CisJPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgogCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoIkVQTCIpLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCi0gICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CisJPHA+CisJCVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCisJCUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUKKwkJRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgorCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCisJPC9wPgogCi08cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlCi0gICByZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLjwvcD4KKwk8cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QKKwkJY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkgKCZxdW90O1JlcG9zaXRvcnkmcXVvdDspIGluIHNvZnR3YXJlCisJCW1vZHVsZXMgKCZxdW90O01vZHVsZXMmcXVvdDspIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUKKwkJYXJjaGl2ZXMgKCZxdW90O0Rvd25sb2FkcyZxdW90OykuPC9wPgogCi08dWw+Ci0gICAgICAgPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuPC9saT4KLSAgICAgICA8bGk+RWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhmSBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuPC9saT4KLSAgICAgICA8bGk+QSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zCi0gICAgICBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KLSAgICAgICA8bGk+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLjwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0bworCQkJZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwKKwkJCW1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCZxdW90O1BsdWctaW5zJnF1b3Q7KSwgcGx1Zy1pbgorCQkJZnJhZ21lbnRzICgmcXVvdDtGcmFnbWVudHMmcXVvdDspLCBhbmQgZmVhdHVyZXMKKwkJCSgmcXVvdDtGZWF0dXJlcyZxdW90OykuPC9saT4KKwkJPGxpPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5CisJCQlvciBKQVIgKEphdmEmdHJhZGU7IEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkCisJCQkmcXVvdDtwbHVnaW5zJnF1b3Q7LjwvbGk+CisJCTxsaT5BIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yCisJCQlGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYQorCQkJc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtmZWF0dXJlcyZxdW90Oy4gV2l0aGluIGEKKwkJCUZlYXR1cmUsIGZpbGVzIG5hbWVkICZxdW90O2ZlYXR1cmUueG1sJnF1b3Q7IG1heSBjb250YWluIGEgbGlzdCBvZgorCQkJdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMKKwkJCWFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KKwkJPGxpPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCZxdW90O0luY2x1ZGVkCisJCQlGZWF0dXJlcyZxdW90OykuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkCisJCQkmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uCisJCQludW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLjwvbGk+CisJPC91bD4KIAotPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kCi1JbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiAgQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KKwk8cD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkCisJCWJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAmcXVvdDthYm91dC5odG1sJnF1b3Q7CisJCSgmcXVvdDtBYm91dHMmcXVvdDspLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAorCQlJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkCisJCSZxdW90O2xpY2Vuc2UuaHRtbCZxdW90OyAoJnF1b3Q7RmVhdHVyZSBMaWNlbnNlcyZxdW90OykuIEFib3V0cyBhbmQKKwkJRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IKKwkJTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgotICAgICAgIDxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+Ci0gICAgICAgPGxpPkluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnM8L2xpPgotICAgICAgIDxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zPC9saT4KLSAgICAgICA8bGk+RmVhdHVyZSBkaXJlY3RvcmllczwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeTwvbGk+CisJCTxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+CisJCTxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KKwkJPGxpPlN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICZxdW90O3NyYyZxdW90OyBvZgorCQkJY2VydGFpbiBQbHVnLWluczwvbGk+CisJCTxsaT5GZWF0dXJlIGRpcmVjdG9yaWVzPC9saT4KKwk8L3VsPgogCi08cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUKLWluc3RhbGxhdGlvbiBwcm9jZXNzLiAgSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvcgotaW5mb3JtIHlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiAgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4KLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbgotdGhhdCBkaXJlY3RvcnkuPC9wPgorCTxwPk5vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzCisJCWluc3RhbGxlZCB1c2luZyB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UKKwkJbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCZxdW90O0ZlYXR1cmUgVXBkYXRlIExpY2Vuc2UmcXVvdDspIGR1cmluZworCQl0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLAorCQl0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zCisJCWFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdSB3aGVyZSB5b3UKKwkJY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlCisJCSZxdW90O2xpY2Vuc2UmcXVvdDsgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQKKwkJJnF1b3Q7ZmVhdHVyZS5wcm9wZXJ0aWVzJnF1b3Q7IGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2ggQWJvdXRzLAorCQlGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kCisJCWNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4KKwkJeW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS48L3A+CiAKLTxwPlRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuICBTT01FIE9GIFRIRVNFCi1PVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KKwk8cD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZCisJCVJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORAorCQlDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUCisJCUFSRSBOT1QgTElNSVRFRCBUTyk6PC9wPgogCi08dWw+Ci0gICAgICAgPGxpPkVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sPC9hPik8L2xpPgotICAgICAgIDxsaT5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWw8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pPC9saT4KLSAgICAgICA8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+KTwvbGk+Ci0gICAgICAgPGxpPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvYT4pPC9saT4KLTwvdWw+CisJPHVsPgorCQk8bGk+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+RWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkNvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pCisJCTwvbGk+CisJCTxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+KQorCQk8L2xpPgorCQk8bGk+TW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvYT4pCisJCTwvbGk+CisJPC91bD4KIAotPHA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUTyBVU0UgT0YgVEhFIENPTlRFTlQuICBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UKLWNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgorCTxwPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5ECisJCUNPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLAorCQlvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UgY29udGFjdCB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybiB0aGF0CisJCXBhcnRpY3VsYXIgQ29udGVudC48L3A+CiAKIAotPGgzPlVzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neTwvaDM+CisJPGgzPlVzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neTwvaDM+CiAKLTxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2ggaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlCi0gICBVcGRhdGUgTWFuYWdlciAoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vcgotICAgb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoIHRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0bwotICAgaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sIj5odHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sPC9hPgotICAgKCJTcGVjaWZpY2F0aW9uIikuPC9wPgorCTxwPgorCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzCisJCW9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUKKwkJTWFuYWdlciAoJnF1b3Q7UHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kmcXVvdDspIGZvciB0aGUgcHVycG9zZSBvZgorCQlhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3IKKwkJb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgJnF1b3Q7SW5zdGFsbGFibGUgU29mdHdhcmUmcXVvdDspLiBUaGlzCisJCWNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8KKwkJaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24gYWJvdXQKKwkJcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KKwkJKCZxdW90O1NwZWNpZmljYXRpb24mcXVvdDspLgorCTwvcD4KIAotPHA+WW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLiBZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZQotICAgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5Ci0gICBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdCBhdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZQotICAgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91ciBhZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZSBmb2xsb3dpbmc6PC9wPgorCTxwPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8KKwkJaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZworCQl0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlCisJCXRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZworCQlUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nCisJCVRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGgKKwkJdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlCisJCWFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvcD4KIAotPG9sPgotICAgICAgIDxsaT5BIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgICAgIG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkCi0gICAgICAgcHJvZHVjdC48L2xpPgotICAgICAgIDxsaT5EdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCi0gICAgICAgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuPC9saT4KLSAgICAgICA8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCi0gICAgICAgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0Ci0gICAgICAgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybgotICAgICAgIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoCi0gICAgICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuPC9saT4KLTwvb2w+CisJPG9sPgorCQk8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCZxdW90O1Byb3Zpc2lvbmluZworCQkJUHJvY2VzcyZxdW90OykgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcKKwkJCVRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgmcXVvdDtUYXJnZXQgTWFjaGluZSZxdW90Oykgd2l0aCB0aGUgaW50ZW50CisJCQlvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4KKwkJCUVjbGlwc2UtYmFzZWQgcHJvZHVjdC48L2xpPgorCQk8bGk+RHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5CisJCQltYXkgY2F1c2UgdGhpcmQgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUKKwkJCWFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLjwvbGk+CisJCTxsaT5QdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlcgorCQkJdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZSAoJnF1b3Q7SW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50JnF1b3Q7KSBhbmQgc3VjaAorCQkJSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAorCQkJTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUKKwkJCVNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMKKwkJCXRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkKKwkJCXRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQkJQWdyZWVtZW50LiBVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZQorCQkJcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZS48L2xpPgorCTwvb2w+CiAKLTxoMz5DcnlwdG9ncmFwaHk8L2gzPgorCTxoMz5DcnlwdG9ncmFwaHk8L2gzPgogCi08cD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvCi0gICBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwKLSAgIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgorCTxwPkNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2gKKwkJeW91IGFyZSBjdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZAorCQl1c2UsIGFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLgorCQlCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsCisJCXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwKKwkJYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgogCi08cD48c21hbGw+SmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPjwvcD4KLQotCi08L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKwk8cD4KKwkJPHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YKKwkJCU9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLjwvc21hbGw+CisJPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC1mZWF0dXJlL3BvbS54bWwKaW5kZXggZTYxYjA1Ni4uZTI4ZDM4ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLWZlYXR1cmUvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwtZmVhdHVyZS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvYWJvdXQuaHRtbAppbmRleCAyYjliY2ZiLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5NYXkgMzAsIDIwMDc8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2VwbC12MTAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTA3M2EuLjAwMDAwMDAKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2VwbC12MTAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Ci08aHRtbCB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiCi14bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIgoteG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPgotCi08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotPGxpbmsgcmVsPUZpbGUtTGlzdAotaHJlZj0iLi9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+Ci08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTxzdHlsZT4KLTwhLS0KLSAvKiBGb250IERlZmluaXRpb25zICovCi1AZm9udC1mYWNlCi0JewotCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0OwotCW1zby1mb250LWNoYXJzZXQ6MDsKLQltc28tZm9udC1waXRjaDp2YXJpYWJsZTsKLQltc28tZm9udC1zaWduYXR1cmU6NTUzNjc5NDk1IC0yMTQ3NDgzNjQ4IDggMCA2NjA0NyAwO30KLSAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLwotcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbAotCXttc28tc3R5bGUtcGFyZW50OiIiOwotCW1hcmdpbjowaW47Ci0JbWFyZ2luLWJvdHRvbTouMDAwMXB0OwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAKLQl7bWFyZ2luLXJpZ2h0OjBpbjsKLQltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsKLQltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKLQltYXJnaW4tbGVmdDowaW47Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZToxMi4wcHQ7Ci0JfQotcC5CYWxsb29uVGV4dCwgbGkuQmFsbG9vblRleHQsIGRpdi5CYWxsb29uVGV4dAotCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjguMHB0OwotCQotCX0KLUBwYWdlIFNlY3Rpb24xCi0Je3NpemU6OC41aW4gMTEuMGluOwotCW1hcmdpbjoxLjBpbiAxLjI1aW4gMS4waW4gMS4yNWluOwotCW1zby1oZWFkZXItbWFyZ2luOi41aW47Ci0JbXNvLWZvb3Rlci1tYXJnaW46LjVpbjsKLQltc28tcGFwZXItc291cmNlOjA7fQotZGl2LlNlY3Rpb24xCi0Je3BhZ2U6U2VjdGlvbjE7fQotLS0+Ci08L3N0eWxlPgotPC9oZWFkPgotCi08Ym9keSBsYW5nPSJFTi1VUyIgc3R5bGU9J3RhYi1pbnRlcnZhbDouNWluJz4KLQotPGRpdiBjbGFzcz1TZWN0aW9uMT4KLQotPHAgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9iPgotPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSCi1USEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLAotUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0aW9uJnF1b3Q7IG1lYW5zOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kIGRvY3VtZW50YXRpb24KLWRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8YnIgY2xlYXI9bGVmdD4KLWIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1hZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+d2hlcmUKLXN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQKLWJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcgotaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24KLXN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlCi13b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IKLWVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQKLWNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlCi1vciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucwotZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8KLXJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjIuIEdSQU5UIE9GIFJJR0hUUzwvc3Bhbj48L2I+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50Ci1hIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvPHNwYW4KLXN0eWxlPSdjb2xvcjpyZWQnPiA8L3NwYW4+cmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5Ci1kaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlCi1mb3JtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCi1SZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz4gPC9zcGFuPnJveWFsdHktZnJlZQotcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydAotYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbgotb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQKLWJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uCi10byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvCi1hbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmMpCi1SZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzCi1Db250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvcgotdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eQotcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi1wcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kCi1saWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eQotdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwKLWlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKLXRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5kKQotRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudCBjb3B5cmlnaHQKLXJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4KLXRoaXMgQWdyZWVtZW50LiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+My4gUkVRVUlSRU1FTlRTPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3NwYW4+Ci08L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLWl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzIGFuZAotY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiB0aXRsZQotYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkKLWFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1lZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLAotaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaAotYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paWkpCi1zdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0Ci1Db250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aXYpCi1zdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaCBDb250cmlidXRvciwgYW5kCi1pbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhCi1tZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuPHNwYW4gc3R5bGU9J2NvbG9yOmJsdWUnPiA8L3NwYW4+PC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlCi1jb2RlIGZvcm06PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikgYQotY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueQotY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlCi1vcmlnaW5hdG9yIG9mIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cwotc3Vic2VxdWVudCBSZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heQotYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycwotYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2UKLW9mIHRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAotbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZxdW90O0NvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCi1Db250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQKLWNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIKLWxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvCi10aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluCi1jb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdAotb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIKLXRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLXRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kCi1hbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZQotaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi13YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4gVW5kZXIgdGhpcwotc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlCi1vdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhCi1jb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjUuIE5PIFdBUlJBTlRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmcXVvdDtBUyBJUyZxdW90OyBCQVNJUywgV0lUSE9VVAotV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLVdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLU1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQotUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcwotQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLAotY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRgotVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQKLW9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yCi1lbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQKLWZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlCi1taW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbgotYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQotYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aAotb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlCi1zdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci1zaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcgotY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncwotcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQotY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQKLVN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgotdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMKLXRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwKLUFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcgotZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdAotZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlCi1TdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mCi1BbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMKLUFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMKLWl0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsPjwvcD4KLQotPC9kaXY+Ci0KLTwvYm9keT4KLQotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9lcGwtdjIwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvZXBsLXYyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvZXBsLXYyMC5odG1sCkBAIC0wLDAgKzEsMzAwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8IS0tIHNhdmVkIGZyb20gdXJsPSgwMDU4KWh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLTIuMC9FUEwtMi4wLmh0bWwgLS0+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICAgIAorICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBib2R5IHsKKyAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07CisgICAgICB9CisgICAgICBoMXsKKyAgICAgICAgZm9udC1zaXplOjEuNWVtOworICAgICAgfQorICAgICAgaDJ7CisgICAgICAgIGZvbnQtc2l6ZToxZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07CisgICAgICAgIG1hcmdpbi10b3A6MWVtOworICAgICAgfQorICAgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CisgICAgICB9CisgICAgICB1bCwgb2x7CisgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+CisgICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKKyAgICAgIFBVQkxJQyBMSUNFTlNFICjigJxBR1JFRU1FTlTigJ0pLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCisgICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+CisgICAgPHA+4oCcQ29udHJpYnV0aW9u4oCdIG1lYW5zOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKKyAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KKyAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCisgICAgICAgIOKAnG9yaWdpbmF0ZXPigJ0gZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuCisgICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAorICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPuKAnENvbnRyaWJ1dG9y4oCdIG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgorICAgIDxwPuKAnExpY2Vuc2VkIFBhdGVudHPigJ0gbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorICAgIDwvcD4KKyAgICA8cD7igJxQcm9ncmFt4oCdIG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCisgICAgICBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxwPuKAnFJlY2lwaWVudOKAnSBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgorICAgIDwvcD4KKyAgICA8cD7igJxEZXJpdmF0aXZlIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgorICAgIDwvcD4KKyAgICA8cD7igJxNb2RpZmllZCBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAorICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCisgICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKKyAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCisgICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCisgICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQorICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAorICAgICAgV29ya3MgdGhlcmVvZi4KKyAgICA8L3A+CisgICAgPHA+4oCcRGlzdHJpYnV0ZeKAnSBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQorICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KKyAgICA8L3A+CisgICAgPHA+4oCcU291cmNlIENvZGXigJ0gbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCisgICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAorICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgIDwvcD4KKyAgICA8cD7igJxTZWNvbmRhcnkgTGljZW5zZeKAnSBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKKyAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCisgICAgICBDb250cmlidXRvci4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+CisgICAgPHVsPgorICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCisgICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50CisgICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCisgICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKKyAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCisgICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKKyAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKKyAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCisgICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQorICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKKyAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKKyAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKKyAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCisgICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCisgICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKKyAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKKyAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCisgICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQorICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAorICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCisgICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncworICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50CisgICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgorICAgICAgPC9saT4KKyAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKKyAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKKyAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50J3MgcmVjZWlwdCBvZiB0aGUKKyAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCisgICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgorICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgorICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKKyAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KKyAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bworICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5CisgICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKKyAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAorICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJyByaWdodHMgaW4gdGhlCisgICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKKyAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgorICAgICAgICAgIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKKyAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKKyAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KKyAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKKyAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCisgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5CisgICAgICAo4oCYbm90aWNlc+KAmSkgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCisgICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCisgICAgICBub3RpY2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+CisgICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKKyAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcworICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCisgICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCisgICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKKyAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKKyAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAo4oCcQ29tbWVyY2lhbCBDb250cmlidXRvcuKAnSkKKyAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKKyAgICAgICjigJxJbmRlbW5pZmllZCBDb250cmlidXRvcuKAnSkgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cworICAgICAgKGNvbGxlY3RpdmVseSDigJxMb3NzZXPigJ0pIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCisgICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAorICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgorICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgorICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKKyAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bworICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAorICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAorICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKKyAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCisgICAgPC9wPgorICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KKyAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQorICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCisgICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCisgICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcworICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAorICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcworICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4g4oCcQVMgSVPigJ0gQkFTSVMsIFdJVEhPVVQKKyAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCisgICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCisgICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCisgICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCisgICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKKyAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKKyAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCisgICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCisgICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCisgICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKKyAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKKyAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KKyAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgorICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQorICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCisgICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50CisgICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCisgICAgPC9wPgorICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCisgICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQorICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQKKyAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorICAgIDwvcD4KKyAgICA8cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bworICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAorICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCisgICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQorICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlcgorICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKKyAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCisgICAgPC9wPgorICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQorICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCisgICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50CisgICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKKyAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKKyAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKKyAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgorICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCisgICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgorICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldworICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKKyAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KKyAgICA8L3A+CisgICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50CisgICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKKyAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCisgICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCisgICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKKyAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCisgICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEg4oCTIEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+CisgICAgPHA+4oCcVGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAorICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAorICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCisgICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0u4oCdCisgICAgPC9wPgorICAgIDxibG9ja3F1b3RlPgorICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQorICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCisgICAgICA8L3A+CisgICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAorICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQorICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgorICAgICAgICBzdWNoIGEgbm90aWNlLgorICAgICAgPC9wPgorICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgorICAgIDwvYmxvY2txdW90ZT4KKyAgCis8ZGl2IGlkPSJlaWQtY2hyb21lLWV4dGVuc2lvbi1pcy1pbnN0YWxsZWQiPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKaW5kZXggN2I1NDkxMy4uZjY3YTllMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCkBAIC0zLDkgKzMsOSBAQAogIyAgKgogIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNSBBVExBUyBHcm91cCAoSU5SSUEgJiBMSU5BKS4KICMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICogCiAjICAqIENvbnRyaWJ1dG9yczogCiAjICAqICAgQVRMQVMgR3JvdXAgKElOUklBICYgTElOQSkKQEAgLTM3LDE0MyArMzcsMTY3IEBACiAjICJkZXNjcmlwdGlvbiIgcHJvcGVydHkgLSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVhdHVyZQogZGVzY3JpcHRpb249QVRMIERldmVsb3BtZW50IFRvb2xraXQKIAotIyAibGljZW5zZVVSTCIgcHJvcGVydHkgLSBVUkwgb2YgdGhlICJGZWF0dXJlIExpY2Vuc2UiCi0jIGRvIG5vdCB0cmFuc2xhdGUgdmFsdWUgLSBqdXN0IGNoYW5nZSB0byBwb2ludCB0byBhIGxvY2FsZS1zcGVjaWZpYyBIVE1MIHBhZ2UKLWxpY2Vuc2VVUkw9bGljZW5zZS5odG1sCisjICJ1cGRhdGVTaXRlTmFtZSIgcHJvcGVydHkgLSBsYWJlbCBmb3IgdGhlIHVwZGF0ZSBzaXRlCitNb2RlbGluZ1VwZGF0ZVNpdGVOYW1lPUVjbGlwc2UgTW9kZWxpbmcKIAogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICMgJSUlIEVORCBPRiBUUkFOU0xBVEVEIFBST1BFUlRJRVMgJSUlCiAjIFRoZSBhYm92ZSBwcm9wZXJ0aWVzIGhhdmUgYmVlbiBzaGlwcGVkIGZvciB0cmFuc2xhdGlvbi4KICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAKK2NvcHlyaWdodFVSTCA9IGNvcHlyaWdodC50eHQKK2NvcHlyaWdodCA9IENvcHlyaWdodCAoYykgMjAwNCwgMjAwOSBJTlJJQS4gXG5cCitBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIFxuXAorYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIFxuXAord2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQgXG5cCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyBcblwKKyBcblwKKyAgIAorIyAibGljZW5zZVVSTCIgcHJvcGVydHkgLSBVUkwgb2YgdGhlICJGZWF0dXJlIExpY2Vuc2UiCisjIGRvIG5vdCB0cmFuc2xhdGUgdmFsdWUgLSBqdXN0IGNoYW5nZSB0byBwb2ludCB0byBhIGxvY2FsZS1zcGVjaWZpYyBIVE1MIHBhZ2UKK2xpY2Vuc2VVUkw9bGljZW5zZS5odG1sCisKICMgImxpY2Vuc2UiIHByb3BlcnR5IC0gdGV4dCBvZiB0aGUgIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiCiAjIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKIGxpY2Vuc2U9XAogRWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50XG5cCi1GZWJydWFyeSAxLCAyMDExXG5cCitcblwKK05vdmVtYmVyIDIyLCAyMDE3XG5cCiBcblwKIFVzYWdlIE9mIENvbnRlbnRcblwKIFxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1VcblwKLUFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlRcblwKLUFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTXG5cCi1PUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlNcblwKLU9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCi1CRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT05cblwKK0FORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gVVNFIE9GXG5cCitUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKK0JFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORURcblwKK0JZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRVxuXAorQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTllcblwKK0FQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VXG5cCitNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKIFxuXAogQXBwbGljYWJsZSBMaWNlbnNlc1xuXAogXG5cCi1Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlXG5cCi1FY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZlxuXAotdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKLXByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC5cblwKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAorVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb25cblwKK2lzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2VcblwKK1ZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvXG5cCithdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCxcblwKKyJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCiBcblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCi1hcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKK0NvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uXG5cCithbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnlcblwKKygiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzXG5cCitkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKIFxuXAotICAgICAgIC0gQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZyxcblwKLSAgICAgICAgIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gVHlwaWNhbCBtb2R1bGVzIG1heSBpbmNsdWRlIHBsdWctaW5zICgiUGx1Zy1pbnMiKSxcblwKLSAgICAgICAgIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCi0gICAgICAgLSBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmEoVE0pIEFSY2hpdmUpXG5cCi0gICAgICAgICBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCi0gICAgICAgLSBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC5cblwKLSAgICAgICAgIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuXG5cCi0gICAgICAgICBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb25cblwKLSAgICAgICAgIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKLSAgICAgICAtIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlc1xuXAotICAgICAgICAgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuXG5cCistICAgQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGVcblwKKyAgICBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXlcblwKKyAgICBpbmNsdWRlIHBsdWctaW5zICgiUGx1Zy1pbnMiKSwgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kXG5cCisgICAgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLlxuXAorLSAgIEVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUlxuXAorICAgIChKYXZhXHUyMTIyIEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKKy0gICBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmRcblwKKyAgICBhc3NvY2lhdGVkIG1hdGVyaWFsLiBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhXG5cCisgICAgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5XG5cCisgICAgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vclxuXAorICAgIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLlxuXAorLSAgIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYVxuXAorICAgIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmRcblwKKyAgICB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuXG5cCiBcblwKLVRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmVcblwKLWNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZFxuXAotY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWRcblwKLWluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmVcblwKLUxpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGVcblwKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOlxuXAorVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZSBjb250YWluZWQgaW5cblwKK2ZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzXG5cCithbmQgSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIlxuXAorKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQgRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnlcblwKK2RpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nXG5cCitsb2NhdGlvbnM6XG5cCiBcblwKLSAgICAgICAtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotICAgICAgIC0gUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKLSAgICAgICAtIEluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnNcblwKLSAgICAgICAtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLSAgICAgICAtIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKKy0gICBUaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3RvcnlcblwKKy0gICBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAorLSAgIEluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnNcblwKKy0gICBTdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zXG5cCistICAgRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAogXG5cCi1Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlXG5cCi1Qcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgXG5cCi1VcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCi1JbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAotd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKLXlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKLXRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS5cblwKLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGVcblwKLXRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXRcblwKLWdvdmVybiB5b3VyIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAorTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nXG5cCit0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2VcblwKKygiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlXG5cCitjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAord2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91XG5cCit3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICJsaWNlbnNlIlxuXAorcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4gU3VjaFxuXAorQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mXG5cCit0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAogXG5cCi1USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSXG5cCi1UTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy5cblwKLVNPTUUgT0YgVEhFU0UgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKK1RIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTFxuXAorT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFXG5cCitPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAogXG5cCi0gICAgICAgLSBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAotICAgICAgIC0gQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCi0gICAgICAgLSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKLSAgICAgICAtIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKLSAgICAgICAtIE1ldHJvIExpbmsgUHVibGljIExpY2Vuc2UgMS4wMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vcGVubW90aWYvc3VwcG9ydGVycy9tZXRyb2xpbmsvbGljZW5zZS5odG1sKVxuXAotICAgICAgIC0gTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKKy0gICBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbClcblwKKy0gICBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCistICAgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFKVxuXAorLSAgIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAorLSAgIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKIFxuXAotSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUlxuXAotVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlXG5cCi1pcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9uc1xuXAotZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAorSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUT1xuXAorVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzXG5cCitwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmRcblwKK2NvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAogXG5cCi1cblxVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKK1VzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAogXG5cCi1UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsXG5cCi1idXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvclxuXAotdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yXG5cCi1vdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGhcblwKLXRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLlxuXAotSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAorVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaFxuXAoraW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyXG5cCisoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGxcblwKK3NvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHlcblwKKyJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nXG5cCitzdWNoIHVzZXJzIHRvIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uXG5cCithYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0XG5cCiBodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sICgiU3BlY2lmaWNhdGlvbiIpLlxuXAogXG5cCi1Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvIGluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCi1Zb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGVcblwKLUluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCi1pbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kXG5cCi1tYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAotYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOlxuXAorWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsXG5cCitJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZVxuXAorbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZFxuXAorYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuXAorU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0XG5cCithdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyXG5cCithZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZVxuXAorZm9sbG93aW5nOlxuXAogXG5cCi0gICAgICAgMS4gQSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZVxuXAotICAgICAgICAgIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLFxuXAotICAgICAgICAgIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuXG5cCi0gICAgICAgMi4gRHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG1heSBjYXVzZSB0aGlyZCBwYXJ0eVxuXAotICAgICAgICAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLlxuXAotICAgICAgIDMuIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0XG5cCi0gICAgICAgICAgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2hcblwKLSAgICAgICAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZVxuXAotICAgICAgICAgIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZVxuXAotICAgICAgICAgIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnlcblwKLSAgICAgICAgICB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2hcblwKLSAgICAgICAgICBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uXG5cCi0gICAgICAgICAgb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAorMS4gIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5XG5cCisgICAgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgiVGFyZ2V0IE1hY2hpbmUiKSB3aXRoIHRoZVxuXAorICAgIGludGVudCBvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW5cblwKKyAgICBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuXG5cCisyLiAgRHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG1heSBjYXVzZSB0aGlyZFxuXAorICAgIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG9cblwKKyAgICB0aGUgVGFyZ2V0IE1hY2hpbmUuXG5cCiszLiAgUHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZFxuXAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgKCJJbnN0YWxsYWJsZVxuXAorICAgIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZVxuXAorICAgIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldCBNYWNoaW5lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gU3VjaFxuXAorICAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kXG5cCisgICAgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlXG5cCisgICAgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlXG5cCisgICAgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZVxuXAorICAgIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uIG9mIHRoZVxuXAorICAgIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAogXG5cCiBDcnlwdG9ncmFwaHlcblwKIFxuXAotQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlXG5cCi1jdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsXG5cCi1hbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFXG5cCi11c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cyxcblwKLXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kXG5cCi1yZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLlxuXAorQ29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseVxuXAorbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsIGFuZC9vciByZS1leHBvcnQgdG9cblwKK2Fub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFIHVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLFxuXAorcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCxcblwKK3Bvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpc1xuXAorcGVybWl0dGVkLlxuXAogXG5cCi1KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIE9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuCitKYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIE9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGVcblwKK1VuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgogIyMjIyMjIyMjIyMgZW5kIG9mIGxpY2Vuc2UgcHJvcGVydHkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0KLQotIyAidXBkYXRlU2l0ZU5hbWUiIHByb3BlcnR5IC0gbGFiZWwgZm9yIHRoZSB1cGRhdGUgc2l0ZQotTW9kZWxpbmdVcGRhdGVTaXRlTmFtZT1FY2xpcHNlIE1vZGVsaW5nCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvZmVhdHVyZS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggZWJmMTBmNy4uMTk3ODQ5ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMTQsMjM0ICsxNCwxNCBAQAogCTxkaXNjb3ZlcnkgbGFiZWw9IiVNb2RlbGluZ1VwZGF0ZVNpdGVOYW1lIiB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kZWxpbmcvdXBkYXRlcy8iLz4KIDwvdXJsPgogCi0gICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPgotICAgICAgLyogIAotICogQ29weXJpZ2h0IChjKSAyMDA0LCBBVExBUyBHcm91cCAoSU5SSUEgYW5kIExJTkEpLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCi0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKLSAqIAotICovCisgICA8Y29weXJpZ2h0IHVybD0iJWNvcHlyaWdodFVSTCI+CisgICAgICAlY29weXJpZ2h0CiAgICA8L2NvcHlyaWdodD4KIAotICAgPGxpY2Vuc2UgdXJsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+Ci0gICAgICBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAxLjAKLVRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUwotRUNMSVBTRSBQVUJMSUMgTElDRU5TRSAoJnF1b3Q7QUdSRUVNRU5UJnF1b3Q7KS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJmFwb3M7UyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC4KLTEuIERFRklOSVRJT05TCi0mcXVvdDtDb250cmlidXRpb24mcXVvdDsgbWVhbnM6Ci1hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29kZSBhbmQKLWRvY3VtZW50YXRpb24gZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAotYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgotaSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kCi1paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOwotd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlCi1mcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgotJmFwb3M7b3JpZ2luYXRlcyZhcG9zOyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtCi1ieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3ImYXBvcztzCi1iZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtCi13aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkKLWFyZSBub3QgZGVyaXZhdGl2ZSB3b3JrcyBvZiB0aGUgUHJvZ3JhbS4KLSZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMgdGhlCi1Qcm9ncmFtLgotJnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvcgotd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbgotYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgotJnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBkaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGgKLXRoaXMgQWdyZWVtZW50LgotJnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcwotQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy4KLTIuIEdSQU5UIE9GIFJJR0hUUwotYSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci1ncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0Ci1saWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAotcHVibGljbHkgcGVyZm9ybSwgZGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uCi1vZiBzdWNoIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluIHNvdXJjZQotY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4KLWIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQotZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAotbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKLWltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKLWlmIGFueSwgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2UKLXNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbQotaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLAotc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvCi1iZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKLW5vdCBhcHBseSB0byBhbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4KLU5vIGhhcmR3YXJlIHBlciBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCi1jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cwotdGhlIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMKLWFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZQotdGhlIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlcgotZW50aXR5LiBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudAotZm9yIGNsYWltcyBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50Ci1vZiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24KLXRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2gKLVJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIKLWludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvciBleGFtcGxlLCBpZgotYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQgdG8KLWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCZhcG9zO3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZQotdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCi1kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50Ci1jb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAotbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCi0zLiBSRVFVSVJFTUVOVFMKLUEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGluIG9iamVjdAotY29kZSBmb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6Ci1hKSBpdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsKLWFuZAotYikgaXRzIGxpY2Vuc2UgYWdyZWVtZW50OgotaSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzCi1hbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IKLWNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKLW9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIKLXB1cnBvc2U7Ci1paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIGxpYWJpbGl0eQotZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCi1hbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKLWlpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQKLWFyZSBvZmZlcmVkIGJ5IHRoYXQgQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7Ci1hbmQKLWl2KSBzdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20KLXN1Y2ggQ29udHJpYnV0b3IsIGFuZCBpbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEKLXJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3IKLXNvZnR3YXJlIGV4Y2hhbmdlLgotV2hlbiB0aGUgUHJvZ3JhbSBpcyBtYWRlIGF2YWlsYWJsZSBpbiBzb3VyY2UgY29kZSBmb3JtOgotYSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kCi1iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZgotdGhlIFByb2dyYW0uCi1Db250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZAotd2l0aGluIHRoZSBQcm9ncmFtLgotRWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUgb3JpZ2luYXRvciBvZiBpdHMKLUNvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzIHN1YnNlcXVlbnQKLVJlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi4KLTQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OCi1Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcwotd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZQotdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mCi10aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZQotcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IKLWluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yCi0oJnF1b3Q7Q29tbWVyY2lhbCBDb250cmlidXRvciZxdW90OykgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeQotZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IgKCZxdW90O0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnF1b3Q7KSBhZ2FpbnN0IGFueQotbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICZxdW90O0xvc3NlcyZxdW90OykgYXJpc2luZyBmcm9tCi1jbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eQotYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlCi1hY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgotd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0Ci1vZmZlcmluZy4gVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55Ci1jbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwKLXByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8gcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IKLW11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nCi1vZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdG8gY29udHJvbCwKLWFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UKLWFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yCi1tYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgotRm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZQotY2xhaW1zIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3ImYXBvcztzIHJlc3BvbnNpYmlsaXR5Ci1hbG9uZS4gVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlCi10byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlCi1wZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueQotb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KLTUuIE5PIFdBUlJBTlRZCi1FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgVEhFIFBST0dSQU0KLUlTIFBST1ZJREVEIE9OIEFOICZxdW90O0FTIElTJnF1b3Q7IEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUwotT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sCi1BTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFkKLU9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGgKLWl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdAotbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlCi13aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgotNi4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFkKLUVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVAotTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULAotSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQKLU9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAotT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKLU9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UKLU9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkKLU9GIFNVQ0ggREFNQUdFUy4KLTcuIEdFTkVSQUwKLUlmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlCi11bmRlciBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkKLW9mIHRoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dAotZnVydGhlciBhY3Rpb24gYnkgdGhlIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZQotcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uCi12YWxpZCBhbmQgZW5mb3JjZWFibGUuCi1JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkKLShpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZwotdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0KLXdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCZhcG9zO3MgcGF0ZW50KHMpLAotdGhlbiBzdWNoIFJlY2lwaWVudCZhcG9zO3MgcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsCi10ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgotQWxsIFJlY2lwaWVudCZhcG9zO3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZgotaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zCi1vZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmCi1hbGwgUmVjaXBpZW50JmFwb3M7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQKLWFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzCi1yZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQmYXBvcztzIG9ibGlnYXRpb25zIHVuZGVyCi10aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nCi10byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KLUV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKLWJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQKLWFuZCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudAotU3Rld2FyZCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZwotcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyCi10aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4KLVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50IFN0ZXdhcmQuIFRoZQotRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCi10aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3Ci12ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24KLW51bWJlci4gVGhlIFByb2dyYW0gKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkCi1zdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLgotSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsCi1Db250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cwotQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZAotaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vIHJpZ2h0cwotb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIKLXRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yCi1vdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkIHVuZGVyCi10aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuCi1UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgTmV3IFlvcmsKLWFuZCB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYS4KLU5vIHBhcnR5IHRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcwotQWdyZWVtZW50IG1vcmUgdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLgotRWFjaCBwYXJ0eSB3YWl2ZXMgaXRzIHJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZwotbGl0aWdhdGlvbi4KKyAgIDxsaWNlbnNlIHVybD0iJWxpY2Vuc2VVUkwiPgorICAgICAgJWxpY2Vuc2UKICAgIDwvbGljZW5zZT4KIAotICAgPHJlcXVpcmVzPgotICAgICAgPGltcG9ydCBwbHVnaW49Im9yZy5lY2xpcHNlLnVpIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuZGVidWcuY29yZSIvPgotICAgICAgPGltcG9ydCBwbHVnaW49Im9yZy5lY2xpcHNlLmRlYnVnLnVpIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMiLz4KLSAgICAgIDxpbXBvcnQgcGx1Z2luPSJvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUiLz4KLSAgICAgIDxpbXBvcnQgcGx1Z2luPSJvcmcuZWNsaXBzZS5qZmFjZS50ZXh0Ii8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UudWkuZWRpdG9ycyIvPgotICAgICAgPGltcG9ydCBwbHVnaW49Im9yZy5lY2xpcHNlLnVpLmlkZSIvPgotICAgICAgPGltcG9ydCBwbHVnaW49Im9yZy5lY2xpcHNlLnVpLndvcmtiZW5jaC50ZXh0ZWRpdG9yIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUiLz4KLSAgICAgIDxpbXBvcnQgcGx1Z2luPSJvcmcuZWNsaXBzZS5tMm0uYXRsLm9jbC5jb3JlIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UudWkudmlld3MiLz4KLSAgICAgIDxpbXBvcnQgcGx1Z2luPSJvcmcuZWNsaXBzZS51aS5jb25zb2xlIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaSIvPgotICAgPC9yZXF1aXJlcz4KLQogICAgPHBsdWdpbgogICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnIgogICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCIKQEAgLTI1NiwyNSArMzYsNCBAQAogICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCiAgICAgICAgICB1bnBhY2s9ImZhbHNlIi8+CiAKLSAgIDxwbHVnaW4KLSAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5wZXJzcGVjdGl2ZSIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LndpemFyZCIKLSAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCi0gICAgICAgICBpbnN0YWxsLXNpemU9IjAiCi0gICAgICAgICB2ZXJzaW9uPSIwLjAuMCIKLSAgICAgICAgIHVucGFjaz0iZmFsc2UiLz4KLQotICAgPHBsdWdpbgotICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmJ1aWxkZXIiCi0gICAgICAgICBkb3dubG9hZC1zaXplPSIwIgotICAgICAgICAgaW5zdGFsbC1zaXplPSIwIgotICAgICAgICAgdmVyc2lvbj0iMC4wLjAiCi0gICAgICAgICB1bnBhY2s9ImZhbHNlIi8+Ci0KIDwvZmVhdHVyZT4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9saWNlbnNlLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvbGljZW5zZS5odG1sCmluZGV4IGYxOWM0ODMuLmMzNWQ4MzQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9saWNlbnNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL2xpY2Vuc2UuaHRtbApAQCAtMjEsOCArMjEsOCBAQAogCiA8aDM+QXBwbGljYWJsZSBMaWNlbnNlczwvaDM+CiAKLTxwPlVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAKLSAgICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCis8cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wCisgICAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjEwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MTAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IxMDczYS4uMDAwMDAwMAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MTAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Ci08aHRtbCB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiCi14bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIgoteG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPgotCi08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotPGxpbmsgcmVsPUZpbGUtTGlzdAotaHJlZj0iLi9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+Ci08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTxzdHlsZT4KLTwhLS0KLSAvKiBGb250IERlZmluaXRpb25zICovCi1AZm9udC1mYWNlCi0JewotCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0OwotCW1zby1mb250LWNoYXJzZXQ6MDsKLQltc28tZm9udC1waXRjaDp2YXJpYWJsZTsKLQltc28tZm9udC1zaWduYXR1cmU6NTUzNjc5NDk1IC0yMTQ3NDgzNjQ4IDggMCA2NjA0NyAwO30KLSAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLwotcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbAotCXttc28tc3R5bGUtcGFyZW50OiIiOwotCW1hcmdpbjowaW47Ci0JbWFyZ2luLWJvdHRvbTouMDAwMXB0OwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAKLQl7bWFyZ2luLXJpZ2h0OjBpbjsKLQltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsKLQltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKLQltYXJnaW4tbGVmdDowaW47Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZToxMi4wcHQ7Ci0JfQotcC5CYWxsb29uVGV4dCwgbGkuQmFsbG9vblRleHQsIGRpdi5CYWxsb29uVGV4dAotCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjguMHB0OwotCQotCX0KLUBwYWdlIFNlY3Rpb24xCi0Je3NpemU6OC41aW4gMTEuMGluOwotCW1hcmdpbjoxLjBpbiAxLjI1aW4gMS4waW4gMS4yNWluOwotCW1zby1oZWFkZXItbWFyZ2luOi41aW47Ci0JbXNvLWZvb3Rlci1tYXJnaW46LjVpbjsKLQltc28tcGFwZXItc291cmNlOjA7fQotZGl2LlNlY3Rpb24xCi0Je3BhZ2U6U2VjdGlvbjE7fQotLS0+Ci08L3N0eWxlPgotPC9oZWFkPgotCi08Ym9keSBsYW5nPSJFTi1VUyIgc3R5bGU9J3RhYi1pbnRlcnZhbDouNWluJz4KLQotPGRpdiBjbGFzcz1TZWN0aW9uMT4KLQotPHAgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9iPgotPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSCi1USEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLAotUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0aW9uJnF1b3Q7IG1lYW5zOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kIGRvY3VtZW50YXRpb24KLWRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8YnIgY2xlYXI9bGVmdD4KLWIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1hZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+d2hlcmUKLXN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQKLWJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcgotaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24KLXN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlCi13b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IKLWVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQKLWNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlCi1vciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucwotZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8KLXJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjIuIEdSQU5UIE9GIFJJR0hUUzwvc3Bhbj48L2I+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50Ci1hIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvPHNwYW4KLXN0eWxlPSdjb2xvcjpyZWQnPiA8L3NwYW4+cmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5Ci1kaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlCi1mb3JtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCi1SZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz4gPC9zcGFuPnJveWFsdHktZnJlZQotcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydAotYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbgotb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQKLWJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uCi10byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvCi1hbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmMpCi1SZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzCi1Db250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvcgotdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eQotcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi1wcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kCi1saWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eQotdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwKLWlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKLXRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5kKQotRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudCBjb3B5cmlnaHQKLXJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4KLXRoaXMgQWdyZWVtZW50LiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+My4gUkVRVUlSRU1FTlRTPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3NwYW4+Ci08L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLWl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzIGFuZAotY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiB0aXRsZQotYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkKLWFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1lZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLAotaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaAotYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paWkpCi1zdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0Ci1Db250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aXYpCi1zdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaCBDb250cmlidXRvciwgYW5kCi1pbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhCi1tZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuPHNwYW4gc3R5bGU9J2NvbG9yOmJsdWUnPiA8L3NwYW4+PC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlCi1jb2RlIGZvcm06PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikgYQotY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueQotY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlCi1vcmlnaW5hdG9yIG9mIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cwotc3Vic2VxdWVudCBSZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heQotYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycwotYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2UKLW9mIHRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAotbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZxdW90O0NvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCi1Db250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQKLWNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIKLWxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvCi10aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluCi1jb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdAotb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIKLXRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLXRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kCi1hbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZQotaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi13YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4gVW5kZXIgdGhpcwotc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlCi1vdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhCi1jb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjUuIE5PIFdBUlJBTlRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmcXVvdDtBUyBJUyZxdW90OyBCQVNJUywgV0lUSE9VVAotV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLVdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLU1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQotUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcwotQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLAotY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRgotVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQKLW9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yCi1lbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQKLWZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlCi1taW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbgotYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQotYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aAotb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlCi1zdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci1zaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcgotY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncwotcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQotY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQKLVN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgotdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMKLXRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwKLUFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcgotZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdAotZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlCi1TdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mCi1BbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMKLUFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMKLWl0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsPjwvcD4KLQotPC9kaXY+Ci0KLTwvYm9keT4KLQotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9yb290ZmlsZXMvZXBsLXYyMC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9yb290ZmlsZXMvZXBsLXYyMC5odG1sCkBAIC0wLDAgKzEsMzAwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8IS0tIHNhdmVkIGZyb20gdXJsPSgwMDU4KWh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLTIuMC9FUEwtMi4wLmh0bWwgLS0+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICAgIAorICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBib2R5IHsKKyAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07CisgICAgICB9CisgICAgICBoMXsKKyAgICAgICAgZm9udC1zaXplOjEuNWVtOworICAgICAgfQorICAgICAgaDJ7CisgICAgICAgIGZvbnQtc2l6ZToxZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07CisgICAgICAgIG1hcmdpbi10b3A6MWVtOworICAgICAgfQorICAgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CisgICAgICB9CisgICAgICB1bCwgb2x7CisgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+CisgICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKKyAgICAgIFBVQkxJQyBMSUNFTlNFICjigJxBR1JFRU1FTlTigJ0pLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCisgICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+CisgICAgPHA+4oCcQ29udHJpYnV0aW9u4oCdIG1lYW5zOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKKyAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KKyAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCisgICAgICAgIOKAnG9yaWdpbmF0ZXPigJ0gZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuCisgICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAorICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPuKAnENvbnRyaWJ1dG9y4oCdIG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgorICAgIDxwPuKAnExpY2Vuc2VkIFBhdGVudHPigJ0gbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorICAgIDwvcD4KKyAgICA8cD7igJxQcm9ncmFt4oCdIG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCisgICAgICBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxwPuKAnFJlY2lwaWVudOKAnSBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgorICAgIDwvcD4KKyAgICA8cD7igJxEZXJpdmF0aXZlIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgorICAgIDwvcD4KKyAgICA8cD7igJxNb2RpZmllZCBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAorICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCisgICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKKyAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCisgICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCisgICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQorICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAorICAgICAgV29ya3MgdGhlcmVvZi4KKyAgICA8L3A+CisgICAgPHA+4oCcRGlzdHJpYnV0ZeKAnSBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQorICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KKyAgICA8L3A+CisgICAgPHA+4oCcU291cmNlIENvZGXigJ0gbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCisgICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAorICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgIDwvcD4KKyAgICA8cD7igJxTZWNvbmRhcnkgTGljZW5zZeKAnSBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKKyAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCisgICAgICBDb250cmlidXRvci4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+CisgICAgPHVsPgorICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCisgICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50CisgICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCisgICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKKyAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCisgICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKKyAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKKyAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCisgICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQorICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKKyAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKKyAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKKyAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCisgICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCisgICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKKyAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKKyAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCisgICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQorICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAorICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCisgICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncworICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50CisgICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgorICAgICAgPC9saT4KKyAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKKyAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKKyAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50J3MgcmVjZWlwdCBvZiB0aGUKKyAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCisgICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgorICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgorICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKKyAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KKyAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bworICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5CisgICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKKyAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAorICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJyByaWdodHMgaW4gdGhlCisgICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKKyAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgorICAgICAgICAgIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKKyAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKKyAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KKyAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKKyAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCisgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5CisgICAgICAo4oCYbm90aWNlc+KAmSkgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCisgICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCisgICAgICBub3RpY2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+CisgICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKKyAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcworICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCisgICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCisgICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKKyAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKKyAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAo4oCcQ29tbWVyY2lhbCBDb250cmlidXRvcuKAnSkKKyAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKKyAgICAgICjigJxJbmRlbW5pZmllZCBDb250cmlidXRvcuKAnSkgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cworICAgICAgKGNvbGxlY3RpdmVseSDigJxMb3NzZXPigJ0pIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCisgICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAorICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgorICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgorICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKKyAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bworICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAorICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAorICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKKyAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCisgICAgPC9wPgorICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KKyAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQorICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCisgICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCisgICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcworICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAorICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcworICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4g4oCcQVMgSVPigJ0gQkFTSVMsIFdJVEhPVVQKKyAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCisgICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCisgICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCisgICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCisgICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKKyAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKKyAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCisgICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCisgICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCisgICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKKyAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKKyAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KKyAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgorICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQorICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCisgICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50CisgICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCisgICAgPC9wPgorICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCisgICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQorICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQKKyAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorICAgIDwvcD4KKyAgICA8cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bworICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAorICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCisgICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQorICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlcgorICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKKyAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCisgICAgPC9wPgorICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQorICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCisgICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50CisgICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKKyAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKKyAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKKyAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgorICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCisgICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgorICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldworICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKKyAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KKyAgICA8L3A+CisgICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50CisgICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKKyAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCisgICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCisgICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKKyAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCisgICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEg4oCTIEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+CisgICAgPHA+4oCcVGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAorICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAorICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCisgICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0u4oCdCisgICAgPC9wPgorICAgIDxibG9ja3F1b3RlPgorICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQorICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCisgICAgICA8L3A+CisgICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAorICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQorICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgorICAgICAgICBzdWNoIGEgbm90aWNlLgorICAgICAgPC9wPgorICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgorICAgIDwvYmxvY2txdW90ZT4KKyAgCis8ZGl2IGlkPSJlaWQtY2hyb21lLWV4dGVuc2lvbi1pcy1pbnN0YWxsZWQiPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL3Jvb3RmaWxlcy9ub3RpY2UuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwKaW5kZXggNzQxMjJiMi4uNmRkZTk1ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC1mZWF0dXJlL3Jvb3RmaWxlcy9ub3RpY2UuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LWZlYXR1cmUvcm9vdGZpbGVzL25vdGljZS5odG1sCkBAIC0yMCw4ICsyMCw4IEBACiAKIDxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KIAotPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAotICAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KKzxwPlVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAKKyAgICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiAgICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZS5vcmcgQ1ZTIHJlcG9zaXRvcnkgKCZxdW90O1JlcG9zaXRvcnkmcXVvdDspIGluIENWUwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgorb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBzXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL2Fib3V0Lmh0bWwKaW5kZXggOWQ5ZTVhNi4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciA1LCAyMDA0PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvcG9tLnhtbAppbmRleCA1YjhlNDgxLi4wOWFjMWFlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvQXRsRGVidWdQbHVnaW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL0F0bERlYnVnUGx1Z2luLmphdmEKaW5kZXggZTQyNmRlZi4uZDJiODNhNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvQXRsRGVidWdQbHVnaW4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy9BdGxEZWJ1Z1BsdWdpbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL01lc3NhZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy9NZXNzYWdlcy5qYXZhCmluZGV4IGYwMWYyY2EuLjNmOTU0NWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL01lc3NhZ2VzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvTWVzc2FnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvbWVzc2FnZXMucHJvcGVydGllcwppbmRleCAzNDFiOTQ1Li5iMjA1ZjI2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy9tZXNzYWdlcy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50QWRhcHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvdWkvQXRsQnJlYWtwb2ludEFkYXB0ZXIuamF2YQppbmRleCAxZTgxYWJhLi5jMjYzYTk3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50QWRhcHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0F0bEJyZWFrcG9pbnRBZGFwdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvdWkvQXRsQnJlYWtwb2ludEFkYXB0ZXJGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50QWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBlMWY5YTljLi4wZjExMzc0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50QWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50QWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50SW1hZ2VQcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvdWkvQXRsQnJlYWtwb2ludEltYWdlUHJvdmlkZXIuamF2YQppbmRleCA1ODhhMjNkLi5lYzMyYTU4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxCcmVha3BvaW50SW1hZ2VQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0F0bEJyZWFrcG9pbnRJbWFnZVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0F0bERlYnVnTW9kZWxQcmVzZW50YXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0F0bERlYnVnTW9kZWxQcmVzZW50YXRpb24uamF2YQppbmRleCA5YzU4ZDIyLi5jMDU3ZmIyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9BdGxEZWJ1Z01vZGVsUHJlc2VudGF0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5kZWJ1Zy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvZGVidWcvdWkvQXRsRGVidWdNb2RlbFByZXNlbnRhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9EaXNhc3NlbWJseURvY3VtZW50UHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0Rpc2Fzc2VtYmx5RG9jdW1lbnRQcm92aWRlci5qYXZhCmluZGV4IDEyYzM1MjEuLmY0YTM5YTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0Rpc2Fzc2VtYmx5RG9jdW1lbnRQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0Rpc2Fzc2VtYmx5RG9jdW1lbnRQcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmRlYnVnL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9kZWJ1Zy91aS9EaXNhc3NlbWJseU1vZGVBY3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0Rpc2Fzc2VtYmx5TW9kZUFjdGlvbi5qYXZhCmluZGV4IGQ4YmY0NGQuLmRmYzM5NDYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0Rpc2Fzc2VtYmx5TW9kZUFjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZGVidWcvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L2RlYnVnL3VpL0Rpc2Fzc2VtYmx5TW9kZUFjdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3IvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwppbmRleCBlMDNmNWU5Li5hYzQ3ZDkwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgorb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBzXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3IvYWJvdXQuaHRtbAppbmRleCA5ZDllNWE2Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+Tm92ZW1iZXIgNSwgMjAwNDwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3IvcG9tLnhtbAppbmRleCBiMjkwZmFiLi4wYzAzMzY1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvQXRsUHJlZmVyZW5jZUNvbnN0YW50cy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL0F0bFByZWZlcmVuY2VDb25zdGFudHMuamF2YQppbmRleCA0MjFmZmZhLi5iNmU3Y2M2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvQXRsUHJlZmVyZW5jZUNvbnN0YW50cy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9BdGxQcmVmZXJlbmNlQ29uc3RhbnRzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL0F0bFVJUGx1Z2luLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvQXRsVUlQbHVnaW4uamF2YQppbmRleCAyMDdjMmRlLi5iNDg3OWQxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvQXRsVUlQbHVnaW4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvQXRsVUlQbHVnaW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvSUF0bENvbnRleHRNZW51Q29uc3RhbnRzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvSUF0bENvbnRleHRNZW51Q29uc3RhbnRzLmphdmEKaW5kZXggYmE5Yjc3MS4uZjkwNGFmZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL0lBdGxDb250ZXh0TWVudUNvbnN0YW50cy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9JQXRsQ29udGV4dE1lbnVDb25zdGFudHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvSUF0bFN0YXR1c0NvbnN0YW50cy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL0lBdGxTdGF0dXNDb25zdGFudHMuamF2YQppbmRleCAyYTAxOTZhLi4zZTdhZDY4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvSUF0bFN0YXR1c0NvbnN0YW50cy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9JQXRsU3RhdHVzQ29uc3RhbnRzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvRm9ybWF0Q29kZUFjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvRm9ybWF0Q29kZUFjdGlvbi5qYXZhCmluZGV4IGE1N2FhNDMuLmQ0YWM3NDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL0Zvcm1hdENvZGVBY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9Gb3JtYXRDb2RlQWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvR290b01hdGNoaW5nQnJhY2tldEFjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvR290b01hdGNoaW5nQnJhY2tldEFjdGlvbi5qYXZhCmluZGV4IGYyZmQxMTguLmMxN2Q4ZWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL0dvdG9NYXRjaGluZ0JyYWNrZXRBY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9Hb3RvTWF0Y2hpbmdCcmFja2V0QWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvSUF0bEFjdGlvbkNvbnN0YW50cy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvSUF0bEFjdGlvbkNvbnN0YW50cy5qYXZhCmluZGV4IDM2NzY5MjAuLjY2ZGM0NzcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL0lBdGxBY3Rpb25Db25zdGFudHMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9JQXRsQWN0aW9uQ29uc3RhbnRzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvSW5kZW50QWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9JbmRlbnRBY3Rpb24uamF2YQppbmRleCAwNGJlOTc3Li43ZDU5Mzc3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9JbmRlbnRBY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9JbmRlbnRBY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9PcGVuRGVjbGFyYXRpb25BY3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL09wZW5EZWNsYXJhdGlvbkFjdGlvbi5qYXZhCmluZGV4IDVmY2Y2YTQuLmIxMTFhODUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL09wZW5EZWNsYXJhdGlvbkFjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL09wZW5EZWNsYXJhdGlvbkFjdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9Ub2dnbGVDb21tZW50QWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvYWN0aW9ucy9Ub2dnbGVDb21tZW50QWN0aW9uLmphdmEKaW5kZXggZGVkMjFkNi4uNGRlYWQ1MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2FjdGlvbnMvVG9nZ2xlQ29tbWVudEFjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9hY3Rpb25zL1RvZ2dsZUNvbW1lbnRBY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMDUgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb3JleHQvZG9jL1NpbmdsZUNoYXJSZWFkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb3JleHQvZG9jL1NpbmdsZUNoYXJSZWFkZXIuamF2YQppbmRleCBiNTFiODkxLi4yMzY0NDdjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvY29yZXh0L2RvYy9TaW5nbGVDaGFyUmVhZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvcmV4dC9kb2MvU2luZ2xlQ2hhclJlYWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvQXRsRWRpdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL0F0bEVkaXRvci5qYXZhCmluZGV4IDc4NzA2MTYuLmQ4NTY2MTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvQXRsRWRpdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9BdGxFZGl0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL0F0bE9jY3VycmVuY2VzRmluZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL0F0bE9jY3VycmVuY2VzRmluZGVyLmphdmEKaW5kZXggNDdkOWE5MS4uYmU2ZmEwZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9BdGxPY2N1cnJlbmNlc0ZpbmRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvQXRsT2NjdXJyZW5jZXNGaW5kZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL0lPY2N1cnJlbmNlc0ZpbmRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9JT2NjdXJyZW5jZXNGaW5kZXIuamF2YQppbmRleCBjNWVkNWRhLi4wNDRiNjc2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL0lPY2N1cnJlbmNlc0ZpbmRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvSU9jY3VycmVuY2VzRmluZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA4IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL01lc3NhZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL01lc3NhZ2VzLmphdmEKaW5kZXggODM3MjdhMy4uMDU4MTFhZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvTWVzc2FnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gTWVzc2FnZXMgZXh0ZXJuYWxpemF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9BdGxDb2RlRm9ybWF0dGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9BdGxDb2RlRm9ybWF0dGVyLmphdmEKaW5kZXggODU1MjA0ZS4uNDRiMzYxMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvQXRsQ29kZUZvcm1hdHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL0F0bENvZGVGb3JtYXR0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9BdGxDb2RlRm9ybWF0dGVyUHJlZmVyZW5jZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL0F0bENvZGVGb3JtYXR0ZXJQcmVmZXJlbmNlcy5qYXZhCmluZGV4IDZhOGUxZWYuLjYwNGNhMWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL0F0bENvZGVGb3JtYXR0ZXJQcmVmZXJlbmNlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL0F0bENvZGVGb3JtYXR0ZXJQcmVmZXJlbmNlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL0ludmFsaWRGcmFnbWVudEV4Y2VwdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvSW52YWxpZEZyYWdtZW50RXhjZXB0aW9uLmphdmEKaW5kZXggMWRkNjVjZS4uMmYwNGZjNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvSW52YWxpZEZyYWdtZW50RXhjZXB0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvSW52YWxpZEZyYWdtZW50RXhjZXB0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvb2JqZWN0cy9Db2RlRnJhZ21lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL29iamVjdHMvQ29kZUZyYWdtZW50LmphdmEKaW5kZXggZjA4ODNiYy4uZjc4NzZiMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvb2JqZWN0cy9Db2RlRnJhZ21lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9vYmplY3RzL0NvZGVGcmFnbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL29iamVjdHMvRm9ybWF0dGVkT2JqZWN0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9vYmplY3RzL0Zvcm1hdHRlZE9iamVjdC5qYXZhCmluZGV4IGNlYTViY2YuLjk2OGI5NmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL29iamVjdHMvRm9ybWF0dGVkT2JqZWN0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvb2JqZWN0cy9Gb3JtYXR0ZWRPYmplY3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9vYmplY3RzL1NwZWNpYWxGb3JtYXR0ZXJTcGFjZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2VkaXRvci9mb3JtYXR0ZXIvb2JqZWN0cy9TcGVjaWFsRm9ybWF0dGVyU3BhY2UuamF2YQppbmRleCBlNDQzNWIzLi4wZmFlMzg2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvZWRpdG9yL2Zvcm1hdHRlci9vYmplY3RzL1NwZWNpYWxGb3JtYXR0ZXJTcGFjZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9lZGl0b3IvZm9ybWF0dGVyL29iamVjdHMvU3BlY2lhbEZvcm1hdHRlclNwYWNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQWxwaGFiZXRpY2FsU29ydGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BbHBoYWJldGljYWxTb3J0ZXIuamF2YQppbmRleCA0ZWViOWUwLi42MGZlYzU2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BbHBoYWJldGljYWxTb3J0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BbHBoYWJldGljYWxTb3J0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsQWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxBY3Rpb24uamF2YQppbmRleCA1YjE5MzMwLi42MWRiZTA1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxBY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxBY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsQ29udGVudE91dGxpbmVQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxDb250ZW50T3V0bGluZVBhZ2UuamF2YQppbmRleCAwMTJmOTY2Li5kY2Y4NzAyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxDb250ZW50T3V0bGluZVBhZ2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxDb250ZW50T3V0bGluZVBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsQ29udGVudFByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxDb250ZW50UHJvdmlkZXIuamF2YQppbmRleCA3YzRhMmNmLi4zZGQwNmZjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxDb250ZW50UHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxDb250ZW50UHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsRU1GQ29uc3RhbnRzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxFTUZDb25zdGFudHMuamF2YQppbmRleCBlMzVmOTA5Li40MjEyNzMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxFTUZDb25zdGFudHMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxFTUZDb25zdGFudHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsTGFiZWxQcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsTGFiZWxQcm92aWRlci5qYXZhCmluZGV4IGNjMmZjNjkuLmVjNDZiMDMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0F0bExhYmVsUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxMYWJlbFByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0F0bE91dGxpbmVQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9BdGxPdXRsaW5lUGFnZS5qYXZhCmluZGV4IGYzOWM1MGYuLmIwOGExMGYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0F0bE91dGxpbmVQYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvQXRsT3V0bGluZVBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvRGVmYXVsdEZpbHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvRGVmYXVsdEZpbHRlci5qYXZhCmluZGV4IDRhOGZlZDAuLmY1NTA0NmMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0RlZmF1bHRGaWx0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9EZWZhdWx0RmlsdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0RlZmF1bHRTb3J0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0RlZmF1bHRTb3J0ZXIuamF2YQppbmRleCA4ZjI3YzUxLi43ZWRlMzI2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9EZWZhdWx0U29ydGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvRGVmYXVsdFNvcnRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9FdmVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvRXZlbnQuamF2YQppbmRleCBmODhlZjQ4Li41YjNmY2ZjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9FdmVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0V2ZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0V2ZW50TGlzdGVuZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0V2ZW50TGlzdGVuZXIuamF2YQppbmRleCAzNTVlZmRkLi40YmY4ODMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9FdmVudExpc3RlbmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvRXZlbnRMaXN0ZW5lci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0hpZGVIZWxwZXJGaWx0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0hpZGVIZWxwZXJGaWx0ZXIuamF2YQppbmRleCBhZGM4ZjVkLi4wMmE5Yzk3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9IaWRlSGVscGVyRmlsdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvSGlkZUhlbHBlckZpbHRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9IaWRlUnVsZUZpbHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvSGlkZVJ1bGVGaWx0ZXIuamF2YQppbmRleCBkMjBlMmYyLi42OWQ5NzM5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9IaWRlUnVsZUZpbHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL0hpZGVSdWxlRmlsdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL051bGxFdmVudExpc3RlbmVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9OdWxsRXZlbnRMaXN0ZW5lci5qYXZhCmluZGV4IDIwMjU0OTkuLjY2NTBiMTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL051bGxFdmVudExpc3RlbmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvTnVsbEV2ZW50TGlzdGVuZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9SZW5hbWVBY3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL1JlbmFtZUFjdGlvbi5qYXZhCmluZGV4IDY4MmE4NjMuLjkzNjljZTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL1JlbmFtZUFjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL1JlbmFtZUFjdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9SZW5hbWVGcmFtZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvUmVuYW1lRnJhbWUuamF2YQppbmRleCAwYjJjNjU5Li43NWQxNDZmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9SZW5hbWVGcmFtZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL1JlbmFtZUZyYW1lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvUm9vdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL291dGxpbmUvUm9vdC5qYXZhCmluZGV4IGM1MDYxNWUuLjlmZjdhMDQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9vdXRsaW5lL1Jvb3QuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvb3V0bGluZS9Sb290LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BYnN0cmFjdFByb3BlcnR5QW5kUHJlZmVyZW5jZVBhZ2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BYnN0cmFjdFByb3BlcnR5QW5kUHJlZmVyZW5jZVBhZ2UuamF2YQppbmRleCA0NWExYTI2Li45YjNmOTgzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQWJzdHJhY3RQcm9wZXJ0eUFuZFByZWZlcmVuY2VQYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0Fic3RyYWN0UHJvcGVydHlBbmRQcmVmZXJlbmNlUGFnZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BbHJlYWR5RXhpc3RzRGlhbG9nLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQWxyZWFkeUV4aXN0c0RpYWxvZy5qYXZhCmluZGV4IGI4MzA4MTQuLjJmZWI2NGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BbHJlYWR5RXhpc3RzRGlhbG9nLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0FscmVhZHlFeGlzdHNEaWFsb2cuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMTAgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlQXNzaXN0UHJlZmVyZW5jZVBhZ2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlQXNzaXN0UHJlZmVyZW5jZVBhZ2UuamF2YQppbmRleCBmMTY1NmIzLi4yOTkxNWI1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUFzc2lzdFByZWZlcmVuY2VQYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bENvZGVBc3Npc3RQcmVmZXJlbmNlUGFnZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlRm9ybWF0dGVyUHJvZmlsZU1hbmFnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlRm9ybWF0dGVyUHJvZmlsZU1hbmFnZXIuamF2YQppbmRleCBhZDZkYWM5Li4wNjRlMzlmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUZvcm1hdHRlclByb2ZpbGVNYW5hZ2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bENvZGVGb3JtYXR0ZXJQcm9maWxlTWFuYWdlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlRm9ybWF0dGVyUHJvZmlsZXNUYWJQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUZvcm1hdHRlclByb2ZpbGVzVGFiUGFnZS5qYXZhCmluZGV4IDRlOWQwM2QuLmM5YTIyNTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlRm9ybWF0dGVyUHJvZmlsZXNUYWJQYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bENvZGVGb3JtYXR0ZXJQcm9maWxlc1RhYlBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUZvcm1hdHRlclByb3BlcnRpZXNUYWJQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUZvcm1hdHRlclByb3BlcnRpZXNUYWJQYWdlLmphdmEKaW5kZXggOTVkMjUzNS4uNTcyNmJmNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bENvZGVGb3JtYXR0ZXJQcm9wZXJ0aWVzVGFiUGFnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlRm9ybWF0dGVyUHJvcGVydGllc1RhYlBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUZvcm1hdHRlclByb3BlcnR5UGFnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bENvZGVGb3JtYXR0ZXJQcm9wZXJ0eVBhZ2UuamF2YQppbmRleCBmN2RlMWE4Li5iMzMxN2FhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsQ29kZUZvcm1hdHRlclByb3BlcnR5UGFnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxDb2RlRm9ybWF0dGVyUHJvcGVydHlQYWdlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bEVkaXRvclByZWZlcmVuY2VQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsRWRpdG9yUHJlZmVyZW5jZVBhZ2UuamF2YQppbmRleCA3MGFkNzlkLi43YjA1ZWQwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsRWRpdG9yUHJlZmVyZW5jZVBhZ2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsRWRpdG9yUHJlZmVyZW5jZVBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsRWRpdG9yUHJvcGVydHlQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsRWRpdG9yUHJvcGVydHlQYWdlLmphdmEKaW5kZXggNTAzMWJiYy4uOWI0MzkxMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bEVkaXRvclByb3BlcnR5UGFnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxFZGl0b3JQcm9wZXJ0eVBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsTWFpblByZWZlcmVuY2VQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsTWFpblByZWZlcmVuY2VQYWdlLmphdmEKaW5kZXggOTY1M2VmYi4uMzlkMWQ0MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bE1haW5QcmVmZXJlbmNlUGFnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxNYWluUHJlZmVyZW5jZVBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsTWFpblByb3BlcnR5UGFnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bE1haW5Qcm9wZXJ0eVBhZ2UuamF2YQppbmRleCBjOTlmMmU0Li4zNjVhYTJhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsTWFpblByb3BlcnR5UGFnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxNYWluUHJvcGVydHlQYWdlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFByZWZlcmVuY2VTdG9yZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFByZWZlcmVuY2VTdG9yZS5qYXZhCmluZGV4IDc1NDA0MzIuLjY3NTkwNzQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxQcmVmZXJlbmNlU3RvcmUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsUHJlZmVyZW5jZVN0b3JlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFByZWZlcmVuY2VzTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxQcmVmZXJlbmNlc01lc3NhZ2VzLmphdmEKaW5kZXggMWE2ZGE0NC4uMWNmMzQ3NiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFByZWZlcmVuY2VzTWVzc2FnZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsUHJlZmVyZW5jZXNNZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxQcmV2aWV3LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsUHJldmlldy5qYXZhCmluZGV4IGNjZTljNzEuLmJiZGUwMDAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxQcmV2aWV3LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFByZXZpZXcuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQXRsU3ludGF4UHJlZmVyZW5jZVBhZ2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxTeW50YXhQcmVmZXJlbmNlUGFnZS5qYXZhCmluZGV4IDBlMjI4MjAuLjAxMWM0MTMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxTeW50YXhQcmVmZXJlbmNlUGFnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxTeW50YXhQcmVmZXJlbmNlUGFnZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9BdGxUeXBpbmdQcmVmZXJlbmNlUGFnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFR5cGluZ1ByZWZlcmVuY2VQYWdlLmphdmEKaW5kZXggMjMzMzNhOC4uNjY4MmQ4ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFR5cGluZ1ByZWZlcmVuY2VQYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0F0bFR5cGluZ1ByZWZlcmVuY2VQYWdlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0NyZWF0ZVByb2ZpbGVEaWFsb2cuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9DcmVhdGVQcm9maWxlRGlhbG9nLmphdmEKaW5kZXggOTlhNDUyNS4uOTNkM2ZkOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0NyZWF0ZVByb2ZpbGVEaWFsb2cuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvQ3JlYXRlUHJvZmlsZURpYWxvZy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwMCwgMjAxMCBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL0lNb2RpZnlEaWFsb2dUYWJQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvSU1vZGlmeURpYWxvZ1RhYlBhZ2UuamF2YQppbmRleCBmZjNhZjg5Li4zOGM4OTVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvSU1vZGlmeURpYWxvZ1RhYlBhZ2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvSU1vZGlmeURpYWxvZ1RhYlBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9Nb2RpZnlEaWFsb2dUYWJQYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvTW9kaWZ5RGlhbG9nVGFiUGFnZS5qYXZhCmluZGV4IDFlMDBlZDEuLjRmMTRhN2QgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9Nb2RpZnlEaWFsb2dUYWJQYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL01vZGlmeURpYWxvZ1RhYlBhZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDAsIDIwMTAgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJQk0gQ29ycG9yYXRpb24gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9QcmVmZXJlbmNlc0FjY2Vzcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL1ByZWZlcmVuY2VzQWNjZXNzLmphdmEKaW5kZXggZjI3OGFkNS4uNzcxNmQ5ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL1ByZWZlcmVuY2VzQWNjZXNzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL1ByZWZlcmVuY2VzQWNjZXNzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA4IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvUHJvZmlsZU1hbmFnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9Qcm9maWxlTWFuYWdlci5qYXZhCmluZGV4IDFmMjg3NjguLjhlOWNmZjggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9Qcm9maWxlTWFuYWdlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9Qcm9maWxlTWFuYWdlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwMCwgMjAwOCBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIElCTSBDb3Jwb3JhdGlvbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL1Byb2ZpbGVTdG9yZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL1Byb2ZpbGVTdG9yZS5qYXZhCmluZGV4IDZhZThhZjkuLmQ3YjM4NjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9Qcm9maWxlU3RvcmUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvUHJvZmlsZVN0b3JlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDA4IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvUmVuYW1lUHJvZmlsZURpYWxvZy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ByZWZlcmVuY2VzL1JlbmFtZVByb2ZpbGVEaWFsb2cuamF2YQppbmRleCA3NGUzYzU3Li5hMWI4ODY2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJlZmVyZW5jZXMvUmVuYW1lUHJvZmlsZURpYWxvZy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcmVmZXJlbmNlcy9SZW5hbWVQcm9maWxlRGlhbG9nLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDAwLCAyMDEwIElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSUJNIENvcnBvcmF0aW9uIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJvcGVydGllcy9BdGxFbGVtZW50UHJvcGVydGllcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3Byb3BlcnRpZXMvQXRsRWxlbWVudFByb3BlcnRpZXMuamF2YQppbmRleCA1YjMxZjg0Li4zNTJhY2JlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJvcGVydGllcy9BdGxFbGVtZW50UHJvcGVydGllcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcm9wZXJ0aWVzL0F0bEVsZW1lbnRQcm9wZXJ0aWVzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcm9wZXJ0aWVzL0F0bFByb3BlcnR5U291cmNlUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wcm9wZXJ0aWVzL0F0bFByb3BlcnR5U291cmNlUHJvdmlkZXIuamF2YQppbmRleCA0N2YwYTBhLi5hYzJkMDdiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcHJvcGVydGllcy9BdGxQcm9wZXJ0eVNvdXJjZVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3Byb3BlcnRpZXMvQXRsUHJvcGVydHlTb3VyY2VQcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BYnN0cmFjdFNjYW5uZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0Fic3RyYWN0U2Nhbm5lci5qYXZhCmluZGV4IDRjYjA1MGUuLmFhZTA1OTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0Fic3RyYWN0U2Nhbm5lci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0Fic3RyYWN0U2Nhbm5lci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bEFubm90YXRpb25Ib3Zlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQW5ub3RhdGlvbkhvdmVyLmphdmEKaW5kZXggOTU0ZWFkMS4uODI2MWNhOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQW5ub3RhdGlvbkhvdmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQW5ub3RhdGlvbkhvdmVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bENvZGVSZWFkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bENvZGVSZWFkZXIuamF2YQppbmRleCA4MTA5NmZhLi4xMjRkZmYwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxDb2RlUmVhZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQ29kZVJlYWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bENvbG9yTWFuYWdlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQ29sb3JNYW5hZ2VyLmphdmEKaW5kZXggY2JkMWZhNC4uZjNiMWM0MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQ29sb3JNYW5hZ2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQ29sb3JNYW5hZ2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQ29udGVudEFzc2lzdFByZWZlcmVuY2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bENvbnRlbnRBc3Npc3RQcmVmZXJlbmNlLmphdmEKaW5kZXggY2NmMTZkMC4uNjdjOWU2MyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsQ29udGVudEFzc2lzdFByZWZlcmVuY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxDb250ZW50QXNzaXN0UHJlZmVyZW5jZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bEVsZW1lbnRIeXBlcmxpbmtEZXRlY3Rvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsRWxlbWVudEh5cGVybGlua0RldGVjdG9yLmphdmEKaW5kZXggZDA3MThlMi4uOWZhZGZjYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsRWxlbWVudEh5cGVybGlua0RldGVjdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsRWxlbWVudEh5cGVybGlua0RldGVjdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsSGV1cmlzdGljU2Nhbm5lci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsSGV1cmlzdGljU2Nhbm5lci5qYXZhCmluZGV4IDFhZjJkOGMuLjZlZjVhMmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bEhldXJpc3RpY1NjYW5uZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxIZXVyaXN0aWNTY2FubmVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsSW5kZW50ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bEluZGVudGVyLmphdmEKaW5kZXggYWU4YjU4NC4uZDM2NDIzNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsSW5kZW50ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxJbmRlbnRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFBhaXJNYXRjaGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxQYWlyTWF0Y2hlci5qYXZhCmluZGV4IDkwZjc0OTMuLjljNzQ1NGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFBhaXJNYXRjaGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsUGFpck1hdGNoZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxSZWNvbmNpbGluZ1N0cmF0ZWd5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxSZWNvbmNpbGluZ1N0cmF0ZWd5LmphdmEKaW5kZXggNGRkMjIxYS4uYzNkNzExNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsUmVjb25jaWxpbmdTdHJhdGVneS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFJlY29uY2lsaW5nU3RyYXRlZ3kuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxTb3VyY2VWaWV3ZXJDb25maWd1cmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxTb3VyY2VWaWV3ZXJDb25maWd1cmF0aW9uLmphdmEKaW5kZXggZDlhMTdkNC4uYjkwYmZiYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsU291cmNlVmlld2VyQ29uZmlndXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFNvdXJjZVZpZXdlckNvbmZpZ3VyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxUZXh0RG91YmxlQ2xpY2tTdHJhdGVneS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsVGV4dERvdWJsZUNsaWNrU3RyYXRlZ3kuamF2YQppbmRleCBiZjlhYjA2Li45ZjkwODM0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxUZXh0RG91YmxlQ2xpY2tTdHJhdGVneS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFRleHREb3VibGVDbGlja1N0cmF0ZWd5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9BdGxUZXh0VG9vbHMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFRleHRUb29scy5qYXZhCmluZGV4IGEzNDFjY2YuLjhlYzlmYWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFRleHRUb29scy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFRleHRUb29scy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0F0bFdvcmREZXRlY3Rvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsV29yZERldGVjdG9yLmphdmEKaW5kZXggNGNkMTcwOS4uY2JmZGMzOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsV29yZERldGVjdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvQXRsV29yZERldGVjdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvSUF0bERlZmF1bHRWYWx1ZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0lBdGxEZWZhdWx0VmFsdWVzLmphdmEKaW5kZXggNGI1ZDVhMS4uZjNkMDM5YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvSUF0bERlZmF1bHRWYWx1ZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9JQXRsRGVmYXVsdFZhbHVlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0lBdGxQYXJ0aXRpb25zLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9JQXRsUGFydGl0aW9ucy5qYXZhCmluZGV4IGRjNTg1ZGMuLjY4NTE5ZTMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L0lBdGxQYXJ0aXRpb25zLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvSUF0bFBhcnRpdGlvbnMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9TeW1ib2xzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9TeW1ib2xzLmphdmEKaW5kZXggZGNkNjUzMi4uOGRkYjlhMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvU3ltYm9scy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L1N5bWJvbHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQXV0b0luZGVudFN0cmF0ZWd5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQXV0b0luZGVudFN0cmF0ZWd5LmphdmEKaW5kZXggMTBhNGRkYi4uZTc0NjJhNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bEF1dG9JbmRlbnRTdHJhdGVneS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxBdXRvSW5kZW50U3RyYXRlZ3kuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQ29kZVNjYW5uZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb2RlU2Nhbm5lci5qYXZhCmluZGV4IDE0NDQxMTcuLmVlNWRhYjcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb2RlU2Nhbm5lci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb2RlU2Nhbm5lci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uRGF0YVNvdXJjZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25EYXRhU291cmNlLmphdmEKaW5kZXggMjllOTIwNC4uYzVhZmE5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25EYXRhU291cmNlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25EYXRhU291cmNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8gYW5kIG90aGVycy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uSGVscGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQ29tcGxldGlvbkhlbHBlci5qYXZhCmluZGV4IDAzMGJlNjQuLjE3NjU2ZmMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uSGVscGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25IZWxwZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uUHJvY2Vzc29yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQ29tcGxldGlvblByb2Nlc3Nvci5qYXZhCmluZGV4IDI3ZTJmNmQuLjJhMzc2NmIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uUHJvY2Vzc29yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25Qcm9jZXNzb3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2JlbyBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25Qcm9wb3NhbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25Qcm9wb3NhbC5qYXZhCmluZGV4IDU2MzAxMTcuLmY5MTUxNjIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uUHJvcG9zYWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQ29tcGxldGlvblByb3Bvc2FsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25Qcm9wb3NhbENvbXBhcmF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb21wbGV0aW9uUHJvcG9zYWxDb21wYXJhdG9yLmphdmEKaW5kZXggNDhmMmMyZC4uMDE1MmUxOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbXBsZXRpb25Qcm9wb3NhbENvbXBhcmF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsQ29tcGxldGlvblByb3Bvc2FsQ29tcGFyYXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxDb250ZXh0VHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbnRleHRUeXBlLmphdmEKaW5kZXggZmQyN2E2YS4uNWY4YmYxYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbnRleHRUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bENvbnRleHRUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsRWRpdG9yVUkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxFZGl0b3JVSS5qYXZhCmluZGV4IDE5YWY0MGQuLmU2MTk4ZGEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxFZGl0b3JVSS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxFZGl0b3JVSS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bEluc3RhbGxlZFRlbXBsYXRlUHJvcG9zYWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxJbnN0YWxsZWRUZW1wbGF0ZVByb3Bvc2FsLmphdmEKaW5kZXggZjMwOTA0Ni4uMGFhZjhhMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bEluc3RhbGxlZFRlbXBsYXRlUHJvcG9zYWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsSW5zdGFsbGVkVGVtcGxhdGVQcm9wb3NhbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bE1vZGVsQW5hbHlzZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxNb2RlbEFuYWx5c2VyLmphdmEKaW5kZXggZmMwZWQ4OC4uNGFmZjQ5NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bE1vZGVsQW5hbHlzZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsTW9kZWxBbmFseXNlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bFBhcmFtZXRlckxpc3RWYWxpZGF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxQYXJhbWV0ZXJMaXN0VmFsaWRhdG9yLmphdmEKaW5kZXggYzhhMzJmMi4uMTliMWIxNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bFBhcmFtZXRlckxpc3RWYWxpZGF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsUGFyYW1ldGVyTGlzdFZhbGlkYXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxTdHJpbmdBdXRvSW5kZW50U3RyYXRlZ3kuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxTdHJpbmdBdXRvSW5kZW50U3RyYXRlZ3kuamF2YQppbmRleCBhNWQ5MmZmLi4zYTU0MTk4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsU3RyaW5nQXV0b0luZGVudFN0cmF0ZWd5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bFN0cmluZ0F1dG9JbmRlbnRTdHJhdGVneS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxUZW1wbGF0ZVByb3Bvc2FsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvQXRsVGVtcGxhdGVQcm9wb3NhbC5qYXZhCmluZGV4IGRmMGRlNmYuLmM1ODNiMjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9BdGxUZW1wbGF0ZVByb3Bvc2FsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0F0bFRlbXBsYXRlUHJvcG9zYWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9MYXN0U2F2ZUNvbXBhcmF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9MYXN0U2F2ZUNvbXBhcmF0b3IuamF2YQppbmRleCA1MzQ5YTk1Li4wNzc1MjA5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvTGFzdFNhdmVDb21wYXJhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL0xhc3RTYXZlQ29tcGFyYXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC9PcGVuRGVjbGFyYXRpb25VdGlscy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL09wZW5EZWNsYXJhdGlvblV0aWxzLmphdmEKaW5kZXggYmI3ZTQyOS4uM2M1YmViMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL09wZW5EZWNsYXJhdGlvblV0aWxzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL09wZW5EZWNsYXJhdGlvblV0aWxzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0F0bFR5cGVzUHJvY2Vzc29yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvQXRsVHlwZXNQcm9jZXNzb3IuamF2YQppbmRleCA2YTM5ZjMxLi5jOGFlMjk1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvQXRsVHlwZXNQcm9jZXNzb3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvQXRsVHlwZXNQcm9jZXNzb3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9CYWdUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvQmFnVHlwZS5qYXZhCmluZGV4IGFiOWE4MzMuLjZiZWM4ZDkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9CYWdUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0JhZ1R5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9Cb29sZWFuVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0Jvb2xlYW5UeXBlLmphdmEKaW5kZXggNGNmNjUzMC4uYTAyMTk2ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0Jvb2xlYW5UeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0Jvb2xlYW5UeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvQ29sbGVjdGlvblR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9Db2xsZWN0aW9uVHlwZS5qYXZhCmluZGV4IDY4YzUzYjYuLmNiMjQzN2QgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9Db2xsZWN0aW9uVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9Db2xsZWN0aW9uVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0ZlYXR1cmUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9GZWF0dXJlLmphdmEKaW5kZXggNDVhM2FlZC4uNmNjZDY5OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0ZlYXR1cmUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvRmVhdHVyZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0ludGVnZXJUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvSW50ZWdlclR5cGUuamF2YQppbmRleCA4ODRmM2ZkLi4xNWYxM2RjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvSW50ZWdlclR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvSW50ZWdlclR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9MaWJyYXJ5VHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0xpYnJhcnlUeXBlLmphdmEKaW5kZXggOGFhZWRlMi4uYTBiYTBjMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0xpYnJhcnlUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL0xpYnJhcnlUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvTWFwVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL01hcFR5cGUuamF2YQppbmRleCA3ZmFlNDU2Li45YjQ2ZmY3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvTWFwVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9NYXBUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvTW9kZWxFbGVtZW50VHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL01vZGVsRWxlbWVudFR5cGUuamF2YQppbmRleCAzODkxYjM4Li45N2I5Y2JmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvTW9kZWxFbGVtZW50VHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9Nb2RlbEVsZW1lbnRUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvTW9kdWxlVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL01vZHVsZVR5cGUuamF2YQppbmRleCA0Zjc1OTljLi5iMjQ5NjVlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvTW9kdWxlVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9Nb2R1bGVUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvT2NsQW55VHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL09jbEFueVR5cGUuamF2YQppbmRleCBkNmNlNzg4Li44ODA5NzljIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvT2NsQW55VHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9PY2xBbnlUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvT2NsVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL09jbFR5cGUuamF2YQppbmRleCBjM2E4YTU0Li4xZjg5NTk1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvT2NsVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9PY2xUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvT3BlcmF0aW9uLmphdmEKaW5kZXggM2Y5NjBjOS4uYjgwYzQ2NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL09wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9PcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9PcmRlcmVkU2V0VHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL09yZGVyZWRTZXRUeXBlLmphdmEKaW5kZXggZDg1ODM3Ni4uZGUwMzFjNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL09yZGVyZWRTZXRUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL09yZGVyZWRTZXRUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvUXVlcnlUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvUXVlcnlUeXBlLmphdmEKaW5kZXggMzJjYTViYy4uODA4ZmVkNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1F1ZXJ5VHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9RdWVyeVR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9SZWFsVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1JlYWxUeXBlLmphdmEKaW5kZXggOTVmMzJkYS4uNDNjMmFmNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1JlYWxUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1JlYWxUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGNvbXBsZXRpb24gc3lzdGVtCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvU2VxdWVuY2VUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvU2VxdWVuY2VUeXBlLmphdmEKaW5kZXggMWM4ZDc0NS4uOTcwYzcxZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1NlcXVlbmNlVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9TZXF1ZW5jZVR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9TZXRUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvU2V0VHlwZS5qYXZhCmluZGV4IGQ5NDFiN2EuLjMxY2IwYWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9TZXRUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1NldFR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9TdHJpbmdUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvU3RyaW5nVHlwZS5qYXZhCmluZGV4IDZkYTcxMWMuLjdiYzY4NTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9TdHJpbmdUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1N0cmluZ1R5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9UdXBsZVR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2F0bC90eXBlcy9UdXBsZVR5cGUuamF2YQppbmRleCBlMzFkNWU1Li4zNTJkZGUzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvVHVwbGVUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1R1cGxlVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBjb21wbGV0aW9uIHN5c3RlbQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvYXRsL3R5cGVzL1VuaXRUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvVW5pdFR5cGUuamF2YQppbmRleCAzM2UxNzdjLi4xNzNkNGY4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvVW5pdFR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdGV4dC9hdGwvdHlwZXMvVW5pdFR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gY29tcGxldGlvbiBzeXN0ZW0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS90ZXh0L2hvdmVyL0F0bFRleHRIb3Zlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvaG92ZXIvQXRsVGV4dEhvdmVyLmphdmEKaW5kZXggMWFmMTQ3OC4uYTdhMTIxZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvaG92ZXIvQXRsVGV4dEhvdmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3RleHQvaG92ZXIvQXRsVGV4dEhvdmVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ZpZXdzdXBwb3J0L0F0bEVkaXRvclRpY2tFcnJvclVwZGF0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9BdGxFZGl0b3JUaWNrRXJyb3JVcGRhdGVyLmphdmEKaW5kZXggN2M2MGI3ZC4uZDBlZTdiZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3ZpZXdzdXBwb3J0L0F0bEVkaXRvclRpY2tFcnJvclVwZGF0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdmlld3N1cHBvcnQvQXRsRWRpdG9yVGlja0Vycm9yVXBkYXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdmlld3N1cHBvcnQvSVByb2JsZW1DaGFuZ2VkTGlzdGVuZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9JUHJvYmxlbUNoYW5nZWRMaXN0ZW5lci5qYXZhCmluZGV4IDQwYjJhZDYuLmMwNzBiYjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9JUHJvYmxlbUNoYW5nZWRMaXN0ZW5lci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9JUHJvYmxlbUNoYW5nZWRMaXN0ZW5lci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvdmlld3N1cHBvcnQvUHJvYmxlbU1hcmtlck1hbmFnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9Qcm9ibGVtTWFya2VyTWFuYWdlci5qYXZhCmluZGV4IDg4OWE0YTYuLjBmNmVhNTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9Qcm9ibGVtTWFya2VyTWFuYWdlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS92aWV3c3VwcG9ydC9Qcm9ibGVtTWFya2VyTWFuYWdlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci90ZW1wbGF0ZXMvaXRlcmF0b3JzLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci90ZW1wbGF0ZXMvaXRlcmF0b3JzLnByb3BlcnRpZXMKaW5kZXggMjFiYTAzZC4uYmI4ZWI2NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3IvdGVtcGxhdGVzL2l0ZXJhdG9ycy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3RlbXBsYXRlcy9pdGVyYXRvcnMucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIEFUTCB0ZW1wbGF0ZXMgZGVzY3JpcHRpb25zCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci90ZW1wbGF0ZXMvcGF0dGVybnMucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3RlbXBsYXRlcy9wYXR0ZXJucy5wcm9wZXJ0aWVzCmluZGV4IDNhOTlmNTYuLmMzZmYxODkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3RlbXBsYXRlcy9wYXR0ZXJucy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3RlbXBsYXRlcy9wYXR0ZXJucy5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gQVRMIHRlbXBsYXRlcyBkZXNjcmlwdGlvbnMKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3RlbXBsYXRlcy9zdHJ1Y3R1cmUucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQuZWRpdG9yL3RlbXBsYXRlcy9zdHJ1Y3R1cmUucHJvcGVydGllcwppbmRleCAwN2ZjMTliLi44MjY5ZmFjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LmVkaXRvci90ZW1wbGF0ZXMvc3RydWN0dXJlLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC5lZGl0b3IvdGVtcGxhdGVzL3N0cnVjdHVyZS5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gQVRMIHRlbXBsYXRlcyBkZXNjcmlwdGlvbnMKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwppbmRleCBlMDNmNWU5Li5hYzQ3ZDkwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9hYm91dC5odG1sCmluZGV4IDJmMGRjZDcuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+SnVuZSAyNCwgMjAwODwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3BvbS54bWwKaW5kZXggYmU3MTQ3OS4uOGJlZTgwMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL0F0bFVJUGx1Z2luLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9BdGxVSVBsdWdpbi5qYXZhCmluZGV4IGRjNzc2ODIuLjE4MzViMjcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL0F0bFVJUGx1Z2luLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvQXRsVUlQbHVnaW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9NZXNzYWdlcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvTWVzc2FnZXMuamF2YQppbmRleCBiODFlOGMyLi41NTgwNjQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL01lc3NhZ2VzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIE1lc3NhZ2VzIGV4dGVybmFsaXphdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvY29tbW9uL0Fic3RyYWN0QXRsU2VsZWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQWJzdHJhY3RBdGxTZWxlY3Rpb24uamF2YQppbmRleCAyZDI3YzZhLi5iZTA2NmZmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQWJzdHJhY3RBdGxTZWxlY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQWJzdHJhY3RBdGxTZWxlY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQXRsTGlicmFyeVNlbGVjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvY29tbW9uL0F0bExpYnJhcnlTZWxlY3Rpb24uamF2YQppbmRleCBlYzBjOWRmLi43OTI2NmQ1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQXRsTGlicmFyeVNlbGVjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9BdGxMaWJyYXJ5U2VsZWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvY29tbW9uL0F0bE1vZGVsU2VsZWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQXRsTW9kZWxTZWxlY3Rpb24uamF2YQppbmRleCBhNzdhMDQwLi42YWQ1MGJmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQXRsTW9kZWxTZWxlY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQXRsTW9kZWxTZWxlY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vQXRsUmVzb3VyY2VTZWxlY3Rpb25Cb3guamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9BdGxSZXNvdXJjZVNlbGVjdGlvbkJveC5qYXZhCmluZGV4IGU1Y2QxZmMuLjdkNTg0YjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9BdGxSZXNvdXJjZVNlbGVjdGlvbkJveC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9BdGxSZXNvdXJjZVNlbGVjdGlvbkJveC5qYXZhCkBAIC0zLDkgKzMsOSBAQAogICoKICAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA3IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vUmVnaXN0ZXJlZFBhY2thZ2VEaWFsb2cuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9SZWdpc3RlcmVkUGFja2FnZURpYWxvZy5qYXZhCmluZGV4IDRhZTZkYjguLmM4YWZiZjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9SZWdpc3RlcmVkUGFja2FnZURpYWxvZy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9SZWdpc3RlcmVkUGFja2FnZURpYWxvZy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9Xb3Jrc3BhY2VGaWxlRGlhbG9nLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9jb21tb24vV29ya3NwYWNlRmlsZURpYWxvZy5qYXZhCmluZGV4IDE2NTE4YTAuLjdlNzVmZmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2NvbW1vbi9Xb3Jrc3BhY2VGaWxlRGlhbG9nLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvY29tbW9uL1dvcmtzcGFjZUZpbGVEaWFsb2cuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9oYW5kbGVycy9SZWdpc3Rlck1ldGFtb2RlbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvaGFuZGxlcnMvUmVnaXN0ZXJNZXRhbW9kZWwuamF2YQppbmRleCA1N2EwMzdmLi43NTRmMTdkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9oYW5kbGVycy9SZWdpc3Rlck1ldGFtb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL2hhbmRsZXJzL1JlZ2lzdGVyTWV0YW1vZGVsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvaGFuZGxlcnMvVG9nZ2xlQVRMTmF0dXJlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9oYW5kbGVycy9Ub2dnbGVBVExOYXR1cmUuamF2YQppbmRleCBlOWZmZDRiLi40OTg1ZjFiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9oYW5kbGVycy9Ub2dnbGVBVExOYXR1cmUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9oYW5kbGVycy9Ub2dnbGVBVExOYXR1cmUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvbWVzc2FnZXMucHJvcGVydGllcwppbmRleCA3NjdmODdjLi42MGYxYjZiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9tZXNzYWdlcy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wZXJzcGVjdGl2ZS9BdGxQZXJzcGVjdGl2ZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvcGVyc3BlY3RpdmUvQXRsUGVyc3BlY3RpdmUuamF2YQppbmRleCA2YzZlNDRhLi5lMjAxZTcyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9wZXJzcGVjdGl2ZS9BdGxQZXJzcGVjdGl2ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3BlcnNwZWN0aXZlL0F0bFBlcnNwZWN0aXZlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3N0YXJ0dXAvUmVzb3VyY2VDaGFuZ2VMaXN0ZW5lci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvc3RhcnR1cC9SZXNvdXJjZUNoYW5nZUxpc3RlbmVyLmphdmEKaW5kZXggZDYyOGFmNC4uNjU0Mzc0NiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvc3RhcnR1cC9SZXNvdXJjZUNoYW5nZUxpc3RlbmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvc3RhcnR1cC9SZXNvdXJjZUNoYW5nZUxpc3RlbmVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3N0YXJ0dXAvUmVzb3VyY2VEZWx0YVZpc2l0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3N0YXJ0dXAvUmVzb3VyY2VEZWx0YVZpc2l0b3IuamF2YQppbmRleCA0MDY2MmRjLi5hMDQ0OTNlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9zdGFydHVwL1Jlc291cmNlRGVsdGFWaXNpdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvc3RhcnR1cC9SZXNvdXJjZURlbHRhVmlzaXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS9zdGFydHVwL1N0YXJ0dXAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3N0YXJ0dXAvU3RhcnR1cC5qYXZhCmluZGV4IGFiY2ExYjAuLmRmNGZiMzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3N0YXJ0dXAvU3RhcnR1cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3N0YXJ0dXAvU3RhcnR1cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS93aXphcmQvYXRsZmlsZS9BdGxGaWxlU2NyZWVuLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS93aXphcmQvYXRsZmlsZS9BdGxGaWxlU2NyZWVuLmphdmEKaW5kZXggY2RmODIzZi4uZDRiZTlmYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bGZpbGUvQXRsRmlsZVNjcmVlbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3dpemFyZC9hdGxmaWxlL0F0bEZpbGVTY3JlZW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bGZpbGUvQXRsRmlsZVdpemFyZC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bGZpbGUvQXRsRmlsZVdpemFyZC5qYXZhCmluZGV4IGRkZGNhMTcuLjE4MWMxNDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3dpemFyZC9hdGxmaWxlL0F0bEZpbGVXaXphcmQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS93aXphcmQvYXRsZmlsZS9BdGxGaWxlV2l6YXJkLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3dpemFyZC9hdGxwbHVnaW4vQXRsUGx1Z2luQ3JlYXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bHBsdWdpbi9BdGxQbHVnaW5DcmVhdG9yLmphdmEKaW5kZXggMTg0ZTAyNy4uNTQ2N2Y2NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bHBsdWdpbi9BdGxQbHVnaW5DcmVhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bHBsdWdpbi9BdGxQbHVnaW5DcmVhdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bHBsdWdpbi9BdGxQbHVnaW5TY3JlZW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3dpemFyZC9hdGxwbHVnaW4vQXRsUGx1Z2luU2NyZWVuLmphdmEKaW5kZXggMGUxODc1OS4uYTE5M2Q1YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bHBsdWdpbi9BdGxQbHVnaW5TY3JlZW4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS93aXphcmQvYXRscGx1Z2luL0F0bFBsdWdpblNjcmVlbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3dpemFyZC9hdGxwcm9qZWN0L0F0bFByb2plY3RDcmVhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0LnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC91aS93aXphcmQvYXRscHJvamVjdC9BdGxQcm9qZWN0Q3JlYXRvci5qYXZhCmluZGV4IDZkYTcyMzkuLjdlY2M0NWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3VpL3dpemFyZC9hdGxwcm9qZWN0L0F0bFByb2plY3RDcmVhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvdWkvd2l6YXJkL2F0bHByb2plY3QvQXRsUHJvamVjdENyZWF0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0Ly5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgorb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBzXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L2Fib3V0Lmh0bWwKaW5kZXggOWQ5ZTVhNi4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciA1LCAyMDA0PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvcG9tLnhtbAppbmRleCAzOGUzYTA0Li43NjlmMmQyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVNb2R1bGVBY3RpdmF0b3JXcml0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjLWdlbi9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlTW9kdWxlQWN0aXZhdG9yV3JpdGVyLmphdmEKaW5kZXggYzk4Y2Q3ZS4uMWUwMWFhOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVNb2R1bGVBY3RpdmF0b3JXcml0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy1nZW4vb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvcnVubmVyL0NyZWF0ZU1vZHVsZUFjdGl2YXRvcldyaXRlci5qYXZhCkBAIC0xMiw3ICsxMiw3IEBACiAgIH0KIAogICBwdWJsaWMgZmluYWwgU3RyaW5nIE5MID0gbmwgPT0gbnVsbCA/IChTeXN0ZW0uZ2V0UHJvcGVydGllcygpLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpKSA6IG5sOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMSA9ICIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIgKyBOTCArICIgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTIgT2Jlby4iICsgTkwgKyAiICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyIgKyBOTCArICIgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAiICsgTkwgKyAiICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQiICsgTkwgKyAiICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiICsgTkwgKyAiICogIiArIE5MICsgIiAqIENvbnRyaWJ1dG9yczoiICsgTkwgKyAiICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24iICsgTkwgKyAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovIiArIE5MICsgInBhY2thZ2UgIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEgPSAiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiICsgTkwgKyAiICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uIiArIE5MICsgIiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMiICsgTkwgKyAiICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIiArIE5MICsgIiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0IiArIE5MICsgIiAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIiArIE5MICsgIiAqICIgKyBOTCArICIgKiBDb250cmlidXRvcnM6IiArIE5MICsgIiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIiArIE5MICsgIiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyIgKyBOTCArICJwYWNrYWdlICI7CiAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8yID0gIjsiICsgTkwgKyAiIiArIE5MICsgImltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGx1Z2luOyIgKyBOTCArICJpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7IiArIE5MICsgIiIgKyBOTCArICIvKioiICsgTkwgKyAiICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlLiIgKyBOTCArICIgKi8iICsgTkwgKyAicHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7IiArIE5MICsgIiIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIFRoZSBwbHVnLWluIElELiIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBMVUdJTl9JRCA9IFwiIjsKICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzMgPSAiXCI7IiArIE5MICsgIiIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIFRoZSBzaGFyZWQgaW5zdGFuY2UuIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHJpdmF0ZSBzdGF0aWMgQWN0aXZhdG9yIHBsdWdpbjsiICsgTkwgKyAiXHQiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBUaGUgY29uc3RydWN0b3IuIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHVibGljIEFjdGl2YXRvcigpIHsiICsgTkwgKyAiXHR9IiArIE5MICsgIiIgKyBOTCArICJcdC8qKntAaW5oZXJpdERvY30iICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBzZWUgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBsdWdpbiNzdGFydChvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dCkiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgdm9pZCBzdGFydChCdW5kbGVDb250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24geyIgKyBOTCArICJcdFx0c3VwZXIuc3RhcnQoY29udGV4dCk7IiArIE5MICsgIlx0XHRwbHVnaW4gPSB0aGlzOyIgKyBOTCArICJcdH0iICsgTkwgKyAiIiArIE5MICsgIlx0Lyoqe0Bpbmhlcml0RG9jfSIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQHNlZSBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGx1Z2luI3N0b3Aob3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQpIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHVibGljIHZvaWQgc3RvcChCdW5kbGVDb250ZXh0IGNvbnRleHQpIHRocm93cyBFeGNlcHRpb24geyIgKyBOTCArICJcdFx0cGx1Z2luID0gbnVsbDsiICsgTkwgKyAiXHRcdHN1cGVyLnN0b3AoY29udGV4dCk7IiArIE5MICsgIlx0fSIgKyBOTCArICIiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBSZXR1cm5zIHRoZSBzaGFyZWQgaW5zdGFuY2UuIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAcmV0dXJuIHRoZSBzaGFyZWQgaW5zdGFuY2UiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgc3RhdGljIEFjdGl2YXRvciBnZXREZWZhdWx0KCkgeyIgKyBOTCArICJcdFx0cmV0dXJuIHBsdWdpbjsiICsgTkwgKyAiXHR9IiArIE5MICsgIiIgKyBOTCArICJ9IjsKICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQgPSBOTDsKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjLWdlbi9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlTW9kdWxlUHJvcGVydGllc1dyaXRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVNb2R1bGVQcm9wZXJ0aWVzV3JpdGVyLmphdmEKaW5kZXggMGE2ZmViNy4uYTVjZTVlZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVNb2R1bGVQcm9wZXJ0aWVzV3JpdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVNb2R1bGVQcm9wZXJ0aWVzV3JpdGVyLmphdmEKQEAgLTIxLDE5ICsyMSwxMiBAQAogICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNCA9ICIubW9kdWxlcyA9ICI7CiAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF81ID0gIiwiOwogICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNiA9IE5MICsgTkwgKyAiIyBNZXRhbW9kZWxzIHBhdGhzIG9yIG5zVXJpcyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83ID0gTkw7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84ID0gIi5tZXRhbW9kZWxzLiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF85ID0gIiA9ICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMCA9IE5MICsgTkwgKyAiIyBMaWJyYXJpZXMgcGF0aHMiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTEgPSBOTDsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEyID0gIi5saWJyYXJpZXMuIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEzID0gIiA9ICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xNCA9IE5MICsgTkwgKyAiIyBBVEwgTGF1bmNoaW5nIG9wdGlvbnMiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTUgPSBOTDsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzE2ID0gIi5vcHRpb25zLiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xNyA9ICIgPSAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTggPSBOTDsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzE5ID0gTkw7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83ID0gIi5tZXRhbW9kZWxzLiI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84ID0gIiA9ICI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF85ID0gTkwgKyBOTCArICIjIExpYnJhcmllcyBwYXRocyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMCA9ICIubGlicmFyaWVzLiI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMSA9IE5MICsgTkwgKyAiIyBBVEwgTGF1bmNoaW5nIG9wdGlvbnMiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTIgPSAiLm9wdGlvbnMuIjsKIAogICBwdWJsaWMgU3RyaW5nIGdlbmVyYXRlKE9iamVjdCBhcmd1bWVudCkKICAgewpAQCAtNTUsMzcgKzQ4LDM3IEBACiAgICAgfQogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82KTsKICAgICBmb3IgKFN0cmluZyBtZXRhbW9kZWxOYW1lIDogY29udGVudC5nZXRBbGxNZXRhbW9kZWxzTmFtZXMoKSkgeyBTdHJpbmcgbG9jYXRpb24gPSBjb250ZW50LmdldE1ldGFtb2RlbExvY2F0aW9ucygpLmdldChtZXRhbW9kZWxOYW1lKTsgCi0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzcpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0Q2xhc3NTaG9ydE5hbWUoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzgpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83KTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1ldGFtb2RlbE5hbWUpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF85KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfOCk7CiAgICAgaWYgKGxvY2F0aW9uICE9IG51bGwpIHsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGxvY2F0aW9uKTsKICAgICB9CiAgICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzkpOwogICAgIGZvciAoU3RyaW5nIGxpYnJhcnlOYW1lIDogY29udGVudC5nZXRBbGxMaWJyYXJpZXNOYW1lcygpKSB7IFN0cmluZyBsb2NhdGlvbiA9IGNvbnRlbnQuZ2V0TGlicmFyeUxvY2F0aW9ucygpLmdldChsaWJyYXJ5TmFtZSk7IAotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzMpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTIpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMCk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChsaWJyYXJ5TmFtZSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzEzKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfOCk7CiAgICAgaWYgKGxvY2F0aW9uICE9IG51bGwpIHsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG5ldyBQYXRoKGxvY2F0aW9uKS5sYXN0U2VnbWVudCgpKTsKICAgICB9CiAgICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xNCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzExKTsKICAgICBmb3IgKEVudHJ5PFN0cmluZywgU3RyaW5nPiBlbnRyeSA6IGNvbnRlbnQuZ2V0T3B0aW9ucygpLmVudHJ5U2V0KCkpIHsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTUpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0Q2xhc3NTaG9ydE5hbWUoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzE2KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTIpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoZW50cnkuZ2V0S2V5KCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xNyk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzgpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoZW50cnkuZ2V0VmFsdWUoKSk7CiAgICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xOCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzE5KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMyk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzMpOwogICAgIHJldHVybiBzdHJpbmdCdWZmZXIudG9TdHJpbmcoKTsKICAgfQogfQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVSdW5uYWJsZUphdmFXcml0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjLWdlbi9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUnVubmFibGVKYXZhV3JpdGVyLmphdmEKaW5kZXggMzcyOGRjYi4uZGRmOGJjMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMtZ2VuL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVSdW5uYWJsZUphdmFXcml0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy1nZW4vb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvcnVubmVyL0NyZWF0ZVJ1bm5hYmxlSmF2YVdyaXRlci5qYXZhCkBAIC0xNCw3ICsxNCw3IEBACiAgIH0KIAogICBwdWJsaWMgZmluYWwgU3RyaW5nIE5MID0gbmwgPT0gbnVsbCA/IChTeXN0ZW0uZ2V0UHJvcGVydGllcygpLmdldFByb3BlcnR5KCJsaW5lLnNlcGFyYXRvciIpKSA6IG5sOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMSA9ICIvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiIgKyBOTCArICIgKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTIgT2Jlby4iICsgTkwgKyAiICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyIgKyBOTCArICIgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAiICsgTkwgKyAiICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQiICsgTkwgKyAiICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiICsgTkwgKyAiICogIiArIE5MICsgIiAqIENvbnRyaWJ1dG9yczoiICsgTkwgKyAiICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24iICsgTkwgKyAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovIiArIE5MICsgInBhY2thZ2UgIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEgPSAiLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioiICsgTkwgKyAiICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uIiArIE5MICsgIiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMiICsgTkwgKyAiICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIiArIE5MICsgIiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0IiArIE5MICsgIiAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIiArIE5MICsgIiAqICIgKyBOTCArICIgKiBDb250cmlidXRvcnM6IiArIE5MICsgIiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIiArIE5MICsgIiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyIgKyBOTCArICJwYWNrYWdlICI7CiAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8yID0gIjsiICsgTkwgKyAiIiArIE5MICsgImltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOyIgKyBOTCArICJpbXBvcnQgamF2YS5pby5JbnB1dFN0cmVhbTsiICsgTkwgKyAiaW1wb3J0IGphdmEubmV0LlVSTDsiICsgTkwgKyAiaW1wb3J0IGphdmEudXRpbC5IYXNoTWFwOyIgKyBOTCArICJpbXBvcnQgamF2YS51dGlsLk1hcDsiICsgTkwgKyAiaW1wb3J0IGphdmEudXRpbC5Qcm9wZXJ0aWVzOyIgKyBOTCArICJpbXBvcnQgamF2YS51dGlsLk1hcC5FbnRyeTsiICsgTkwgKyAiIiArIE5MICsgImltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuRmlsZUxvY2F0b3I7IiArIE5MICsgImltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsiICsgTkwgKyAiaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5OdWxsUHJvZ3Jlc3NNb25pdG9yOyIgKyBOTCArICJpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBhdGg7IiArIE5MICsgImltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGxhdGZvcm07IjsKICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzMgPSBOTCArICJpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOyI7CiAgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80ID0gTkwgKyAiaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsiICsgTkwgKyAiaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWkuaW1wbC5FY29yZVJlc291cmNlRmFjdG9yeUltcGw7IjsKQEAgLTQxLDk5ICs0MSw2OCBAQAogICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMjUgPSAiKCk7IiArIE5MICsgIlx0XHRcdFx0cnVubmVyLmxvYWRNb2RlbHMoIjsKICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzI2ID0gImFyZ3NbIjsKICAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzI3ID0gIl0iOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMjggPSAiLCAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMjkgPSAiKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzAgPSBOTCArICJcdFx0XHRcdFN5c3RlbS5vdXQucHJpbnRsbihydW5uZXIuZG8iOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzEgPSAiKG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzIgPSBOTCArICJcdFx0XHRcdHJ1bm5lci5kbyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zMyA9ICIobmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzM0ID0gTkwgKyAiXHRcdFx0XHRydW5uZXIuc2F2ZU1vZGVscygiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzUgPSAiYXJnc1siOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzYgPSAiXSI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zNyA9ICIsICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zOCA9ICIpOyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zOSA9IE5MICsgIlx0XHRcdH0iOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNDAgPSBOTCArICJcdFx0XHRTeXN0ZW0ub3V0LnByaW50bG4obmV3ICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80MSA9ICIoKS5kbyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80MiA9ICIobmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSkpOyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80MyA9IE5MICsgIlx0XHR9IGNhdGNoIChBVExDb3JlRXhjZXB0aW9uIGUpIHsiICsgTkwgKyAiXHRcdFx0ZS5wcmludFN0YWNrVHJhY2UoKTsiICsgTkwgKyAiXHRcdH0gY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsiICsgTkwgKyAiXHRcdFx0ZS5wcmludFN0YWNrVHJhY2UoKTsiICsgTkwgKyAiXHRcdH0gY2F0Y2ggKEFUTEV4ZWN1dGlvbkV4Y2VwdGlvbiBlKSB7IiArIE5MICsgIlx0XHRcdGUucHJpbnRTdGFja1RyYWNlKCk7IiArIE5MICsgIlx0XHR9IiArIE5MICsgIlx0fSIgKyBOTCArICIiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBDb25zdHJ1Y3Rvci4iICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBnZW5lcmF0ZWQiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQ0ID0gIigpIHRocm93cyBJT0V4Y2VwdGlvbiB7IiArIE5MICsgIlx0XHRwcm9wZXJ0aWVzID0gbmV3IFByb3BlcnRpZXMoKTsiICsgTkwgKyAiXHRcdHByb3BlcnRpZXMubG9hZChnZXRGaWxlVVJMKFwiIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQ1ID0gIi5wcm9wZXJ0aWVzXCIpLm9wZW5TdHJlYW0oKSk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQ2ID0gTkwgKyAiXHRcdEVQYWNrYWdlLlJlZ2lzdHJ5LklOU1RBTkNFLnB1dChnZXRNZXRhbW9kZWxVcmkoXCIiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNDcgPSAiXCIpLCAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNDggPSAiLmVJTlNUQU5DRSk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQ5ID0gTkwgKyAiXHRcdFJlc291cmNlLkZhY3RvcnkuUmVnaXN0cnkuSU5TVEFOQ0UuZ2V0RXh0ZW5zaW9uVG9GYWN0b3J5TWFwKCkucHV0KFwiZWNvcmVcIiwgbmV3IEVjb3JlUmVzb3VyY2VGYWN0b3J5SW1wbCgpKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTAgPSBOTCArICJcdH0iOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTEgPSBOTCArICJcdCIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIExvYWQgdGhlIGlucHV0IGFuZCBpbnB1dC9vdXRwdXQgbW9kZWxzLCBpbml0aWFsaXplIG91dHB1dCBtb2RlbHMuIiArIE5MICsgIlx0ICogIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzUyID0gTkwgKyAiXHQgKiBAcGFyYW0gIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzUzID0gIk1vZGVsUGF0aCIgKyBOTCArICJcdCAqICAgICAgICAgICAgdGhlICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF81NCA9ICIgbW9kZWwgcGF0aCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF81NSA9IE5MICsgIlx0ICogQHRocm93cyBBVExDb3JlRXhjZXB0aW9uIiArIE5MICsgIlx0ICogICAgICAgICAgICAgaWYgYSBwcm9ibGVtIG9jY3VycyB3aGlsZSBsb2FkaW5nIG1vZGVscyIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHB1YmxpYyB2b2lkIGxvYWRNb2RlbHMoIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzU2ID0gIlN0cmluZyAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTcgPSAiTW9kZWxQYXRoIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzU4ID0gIiwgIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzU5ID0gIikgdGhyb3dzIEFUTENvcmVFeGNlcHRpb24geyIgKyBOTCArICJcdFx0TW9kZWxGYWN0b3J5IGZhY3RvcnkgPSBuZXcgRU1GTW9kZWxGYWN0b3J5KCk7IiArIE5MICsgIlx0XHRJSW5qZWN0b3IgaW5qZWN0b3IgPSBuZXcgRU1GSW5qZWN0b3IoKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNjAgPSBOTCArICJcdFx0SVJlZmVyZW5jZU1vZGVsICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82MSA9ICJNZXRhbW9kZWwgPSBmYWN0b3J5LmdldE1ldGFtZXRhbW9kZWwoKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNjIgPSBOTCArICJcdCBcdElSZWZlcmVuY2VNb2RlbCAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNjMgPSAiTWV0YW1vZGVsID0gZmFjdG9yeS5uZXdSZWZlcmVuY2VNb2RlbCgpOyIgKyBOTCArICJcdFx0aW5qZWN0b3IuaW5qZWN0KCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82NCA9ICJNZXRhbW9kZWwsIGdldE1ldGFtb2RlbFVyaShcIiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82NSA9ICJcIikpOyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82NiA9IE5MICsgIlx0XHR0aGlzLiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82NyA9ICJNb2RlbCA9IGZhY3RvcnkubmV3TW9kZWwoIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzY4ID0gIk1ldGFtb2RlbCk7IiArIE5MICsgIlx0XHRpbmplY3Rvci5pbmplY3QoIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzY5ID0gIk1vZGVsLCAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzAgPSAiTW9kZWxQYXRoKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzEgPSBOTCArICJcdFx0dGhpcy4iOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzIgPSAiTW9kZWwgPSBmYWN0b3J5Lm5ld01vZGVsKCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83MyA9ICJNZXRhbW9kZWwpOyIgKyBOTCArICJcdFx0aW5qZWN0b3IuaW5qZWN0KCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83NCA9ICJNb2RlbCwgIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzc1ID0gIk1vZGVsUGF0aCk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzc2ID0gTkwgKyAiXHRcdHRoaXMuIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzc3ID0gIk1vZGVsID0gZmFjdG9yeS5uZXdNb2RlbCgiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzggPSAiTWV0YW1vZGVsKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzkgPSBOTCArICJcdFx0SVJlZmVyZW5jZU1vZGVsIHJlZmluaW5nVHJhY2VNZXRhbW9kZWwgPSBmYWN0b3J5LmdldEJ1aWx0SW5SZXNvdXJjZShcIlJlZmluaW5nVHJhY2UuZWNvcmVcIik7IiArIE5MICsgIlx0XHRyZWZpbmluZ1RyYWNlTW9kZWwgPSBmYWN0b3J5Lm5ld01vZGVsKHJlZmluaW5nVHJhY2VNZXRhbW9kZWwpOyI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84MCA9IE5MICsgIlx0fSI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84MSA9IE5MICsgIlx0IiArIE5MICsgIlx0LyoqIiArIE5MICsgIlx0ICogU2F2ZSB0aGUgb3V0cHV0IGFuZCBpbnB1dC9vdXRwdXQgbW9kZWxzLiIgKyBOTCArICJcdCAqICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84MiA9IE5MICsgIlx0ICogQHBhcmFtICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84MyA9ICJNb2RlbFBhdGgiICsgTkwgKyAiXHQgKiAgICAgICAgICAgIHRoZSAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODQgPSAiIG1vZGVsIHBhdGgiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODUgPSBOTCArICJcdCAqIEB0aHJvd3MgQVRMQ29yZUV4Y2VwdGlvbiIgKyBOTCArICJcdCAqICAgICAgICAgICAgIGlmIGEgcHJvYmxlbSBvY2N1cnMgd2hpbGUgc2F2aW5nIG1vZGVscyIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHB1YmxpYyB2b2lkIHNhdmVNb2RlbHMoIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzg2ID0gIlN0cmluZyAiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODcgPSAiTW9kZWxQYXRoIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzg4ID0gIiwgIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzg5ID0gIikgdGhyb3dzIEFUTENvcmVFeGNlcHRpb24geyIgKyBOTCArICJcdFx0SUV4dHJhY3RvciBleHRyYWN0b3IgPSBuZXcgRU1GRXh0cmFjdG9yKCk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzkwID0gTkwgKyAiXHRcdGV4dHJhY3Rvci5leHRyYWN0KCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF85MSA9ICJNb2RlbCwgIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzkyID0gIk1vZGVsUGF0aCk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzkzID0gTkwgKyAiXHR9IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzk0ID0gTkwgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIFRyYW5zZm9ybSB0aGUgbW9kZWxzLiIgKyBOTCArICJcdCAqICIgKyBOTCArICJcdCAqIEBwYXJhbSBtb25pdG9yIiArIE5MICsgIlx0ICogICAgICAgICAgICB0aGUgcHJvZ3Jlc3MgbW9uaXRvciIgKyBOTCArICJcdCAqIEB0aHJvd3MgQVRMQ29yZUV4Y2VwdGlvbiIgKyBOTCArICJcdCAqICAgICAgICAgICAgIGlmIGFuIGVycm9yIG9jY3VycyBkdXJpbmcgbW9kZWxzIGhhbmRsaW5nIiArIE5MICsgIlx0ICogQHRocm93cyBJT0V4Y2VwdGlvbiIgKyBOTCArICJcdCAqICAgICAgICAgICAgIGlmIGEgbW9kdWxlIGNhbm5vdCBiZSByZWFkIiArIE5MICsgIlx0ICogQHRocm93cyBBVExFeGVjdXRpb25FeGNlcHRpb24iICsgTkwgKyAiXHQgKiAgICAgICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIHRoZSBleGVjdXRpb24iICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBnZW5lcmF0ZWQiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgT2JqZWN0IGRvIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzk1ID0gIihJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpIHRocm93cyBBVExDb3JlRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiwgQVRMRXhlY3V0aW9uRXhjZXB0aW9uIHsiICsgTkwgKyAiXHRcdElMYXVuY2hlciBsYXVuY2hlciA9IG5ldyBFTUZWTUxhdW5jaGVyKCk7IiArIE5MICsgIlx0XHRNYXA8U3RyaW5nLCBPYmplY3Q+IGxhdW5jaGVyT3B0aW9ucyA9IGdldE9wdGlvbnMoKTsiICsgTkwgKyAiXHRcdGxhdW5jaGVyLmluaXRpYWxpemUobGF1bmNoZXJPcHRpb25zKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfOTYgPSBOTCArICJcdFx0bGF1bmNoZXIuYWRkSW5Nb2RlbCgiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfOTcgPSAiTW9kZWwsIFwiIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzk4ID0gIlwiLCBcIiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF85OSA9ICJcIik7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEwMCA9IE5MICsgIlx0XHRsYXVuY2hlci5hZGRJbk91dE1vZGVsKCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMDEgPSAiTW9kZWwsIFwiIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEwMiA9ICJcIiwgXCIiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTAzID0gIlwiKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTA0ID0gTkwgKyAiXHRcdGxhdW5jaGVyLmFkZE91dE1vZGVsKCI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMDUgPSAiTW9kZWwsIFwiIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEwNiA9ICJcIiwgXCIiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTA3ID0gIlwiKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTA4ID0gTkwgKyAiXHRcdGxhdW5jaGVyLmFkZE91dE1vZGVsKHJlZmluaW5nVHJhY2VNb2RlbCwgXCJyZWZpbmluZ1RyYWNlXCIsIFwiUmVmaW5pbmdUcmFjZVwiKTsiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTA5ID0gTkwgKyAiXHRcdGxhdW5jaGVyLmFkZExpYnJhcnkoXCIiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTEwID0gIlwiLCBnZXRMaWJyYXJ5QXNTdHJlYW0oXCIiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTExID0gIlwiKSk7IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzExMiA9IE5MICsgIlx0XHRyZXR1cm4gbGF1bmNoZXIubGF1bmNoKFwicnVuXCIsIG1vbml0b3IsIGxhdW5jaGVyT3B0aW9ucywgKE9iamVjdFtdKSBnZXRNb2R1bGVzTGlzdCgpKTsiICsgTkwgKyAiXHR9IiArIE5MICsgIlx0IiArIE5MICsgIlx0LyoqIiArIE5MICsgIlx0ICogUmV0dXJucyBhbiBBcnJheSBvZiB0aGUgbW9kdWxlIGlucHV0IHN0cmVhbXMsIHBhcmFtZXRlcml6ZWQgYnkgdGhlIiArIE5MICsgIlx0ICogcHJvcGVydHkgZmlsZS4iICsgTkwgKyAiXHQgKiAiICsgTkwgKyAiXHQgKiBAcmV0dXJuIGFuIEFycmF5IG9mIHRoZSBtb2R1bGUgaW5wdXQgc3RyZWFtcyIgKyBOTCArICJcdCAqIEB0aHJvd3MgSU9FeGNlcHRpb24iICsgTkwgKyAiXHQgKiAgICAgICAgICAgICBpZiBhIG1vZHVsZSBjYW5ub3QgYmUgcmVhZCIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHByb3RlY3RlZCBJbnB1dFN0cmVhbVtdIGdldE1vZHVsZXNMaXN0KCkgdGhyb3dzIElPRXhjZXB0aW9uIHsiICsgTkwgKyAiXHRcdElucHV0U3RyZWFtW10gbW9kdWxlcyA9IG51bGw7IiArIE5MICsgIlx0XHRTdHJpbmcgbW9kdWxlc0xpc3QgPSBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KFwiIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzExMyA9ICIubW9kdWxlc1wiKTsiICsgTkwgKyAiXHRcdGlmIChtb2R1bGVzTGlzdCAhPSBudWxsKSB7IiArIE5MICsgIlx0XHRcdFN0cmluZ1tdIG1vZHVsZU5hbWVzID0gbW9kdWxlc0xpc3Quc3BsaXQoXCIsXCIpOyIgKyBOTCArICJcdFx0XHRtb2R1bGVzID0gbmV3IElucHV0U3RyZWFtW21vZHVsZU5hbWVzLmxlbmd0aF07IiArIE5MICsgIlx0XHRcdGZvciAoaW50IGkgPSAwOyBpIDwgbW9kdWxlTmFtZXMubGVuZ3RoOyBpKyspIHsiICsgTkwgKyAiXHRcdFx0XHRTdHJpbmcgYXNtTW9kdWxlUGF0aCA9IG5ldyBQYXRoKG1vZHVsZU5hbWVzW2ldLnRyaW0oKSkucmVtb3ZlRmlsZUV4dGVuc2lvbigpLmFkZEZpbGVFeHRlbnNpb24oXCJhc21cIikudG9TdHJpbmcoKTsiICsgTkwgKyAiXHRcdFx0XHRtb2R1bGVzW2ldID0gZ2V0RmlsZVVSTChhc21Nb2R1bGVQYXRoKS5vcGVuU3RyZWFtKCk7IiArIE5MICsgIlx0XHRcdH0iICsgTkwgKyAiXHRcdH0iICsgTkwgKyAiXHRcdHJldHVybiBtb2R1bGVzOyIgKyBOTCArICJcdH0iICsgTkwgKyAiXHQiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIGdpdmVuIG1ldGFtb2RlbCwgcGFyYW1ldGVyaXplZCBmcm9tIHRoZSBwcm9wZXJ0eSBmaWxlLiIgKyBOTCArICJcdCAqICIgKyBOTCArICJcdCAqIEBwYXJhbSBtZXRhbW9kZWxOYW1lIiArIE5MICsgIlx0ICogICAgICAgICAgICB0aGUgbWV0YW1vZGVsIG5hbWUiICsgTkwgKyAiXHQgKiBAcmV0dXJuIHRoZSBtZXRhbW9kZWwgVVJJIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHJvdGVjdGVkIFN0cmluZyBnZXRNZXRhbW9kZWxVcmkoU3RyaW5nIG1ldGFtb2RlbE5hbWUpIHsiICsgTkwgKyAiXHRcdHJldHVybiBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KFwiIjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzExNCA9ICIubWV0YW1vZGVscy5cIiArIG1ldGFtb2RlbE5hbWUpOyIgKyBOTCArICJcdH0iICsgTkwgKyAiXHQiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBSZXR1cm5zIHRoZSBmaWxlIG5hbWUgb2YgdGhlIGdpdmVuIGxpYnJhcnksIHBhcmFtZXRlcml6ZWQgZnJvbSB0aGUgcHJvcGVydHkgZmlsZS4iICsgTkwgKyAiXHQgKiAiICsgTkwgKyAiXHQgKiBAcGFyYW0gbGlicmFyeU5hbWUiICsgTkwgKyAiXHQgKiAgICAgICAgICAgIHRoZSBsaWJyYXJ5IG5hbWUiICsgTkwgKyAiXHQgKiBAcmV0dXJuIHRoZSBsaWJyYXJ5IGZpbGUgbmFtZSIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHByb3RlY3RlZCBJbnB1dFN0cmVhbSBnZXRMaWJyYXJ5QXNTdHJlYW0oU3RyaW5nIGxpYnJhcnlOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geyIgKyBOTCArICJcdFx0cmV0dXJuIGdldEZpbGVVUkwocHJvcGVydGllcy5nZXRQcm9wZXJ0eShcIiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMTUgPSAiLmxpYnJhcmllcy5cIiArIGxpYnJhcnlOYW1lKSkub3BlblN0cmVhbSgpOyIgKyBOTCArICJcdH0iICsgTkwgKyAiXHQiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBSZXR1cm5zIHRoZSBvcHRpb25zIG1hcCwgcGFyYW1ldGVyaXplZCBmcm9tIHRoZSBwcm9wZXJ0eSBmaWxlLiIgKyBOTCArICJcdCAqICIgKyBOTCArICJcdCAqIEByZXR1cm4gdGhlIG9wdGlvbnMgbWFwIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHJvdGVjdGVkIE1hcDxTdHJpbmcsIE9iamVjdD4gZ2V0T3B0aW9ucygpIHsiICsgTkwgKyAiXHRcdE1hcDxTdHJpbmcsIE9iamVjdD4gb3B0aW9ucyA9IG5ldyBIYXNoTWFwPFN0cmluZywgT2JqZWN0PigpOyIgKyBOTCArICJcdFx0Zm9yIChFbnRyeTxPYmplY3QsIE9iamVjdD4gZW50cnkgOiBwcm9wZXJ0aWVzLmVudHJ5U2V0KCkpIHsiICsgTkwgKyAiXHRcdFx0aWYgKGVudHJ5LmdldEtleSgpLnRvU3RyaW5nKCkuc3RhcnRzV2l0aChcIiI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMTYgPSAiLm9wdGlvbnMuXCIpKSB7IiArIE5MICsgIlx0XHRcdFx0b3B0aW9ucy5wdXQoZW50cnkuZ2V0S2V5KCkudG9TdHJpbmcoKS5yZXBsYWNlRmlyc3QoXCIiOwotICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMTE3ID0gIi5vcHRpb25zLlwiLCBcIlwiKSwgIiArIE5MICsgIlx0XHRcdFx0ZW50cnkuZ2V0VmFsdWUoKS50b1N0cmluZygpKTsiICsgTkwgKyAiXHRcdFx0fSIgKyBOTCArICJcdFx0fSIgKyBOTCArICJcdFx0cmV0dXJuIG9wdGlvbnM7IiArIE5MICsgIlx0fSIgKyBOTCArICJcdCIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIEZpbmRzIHRoZSBmaWxlIGluIHRoZSBwbHVnLWluLiBSZXR1cm5zIHRoZSBmaWxlIFVSTC4iICsgTkwgKyAiXHQgKiAiICsgTkwgKyAiXHQgKiBAcGFyYW0gZmlsZU5hbWUiICsgTkwgKyAiXHQgKiAgICAgICAgICAgIHRoZSBmaWxlIG5hbWUiICsgTkwgKyAiXHQgKiBAcmV0dXJuIHRoZSBmaWxlIFVSTCIgKyBOTCArICJcdCAqIEB0aHJvd3MgSU9FeGNlcHRpb24iICsgTkwgKyAiXHQgKiAgICAgICAgICAgICBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0IiArIE5MICsgIlx0ICogIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHByb3RlY3RlZCBzdGF0aWMgVVJMIGdldEZpbGVVUkwoU3RyaW5nIGZpbGVOYW1lKSB0aHJvd3MgSU9FeGNlcHRpb24geyIgKyBOTCArICJcdFx0ZmluYWwgVVJMIGZpbGVVUkw7IiArIE5MICsgIlx0XHRpZiAoaXNFY2xpcHNlUnVubmluZygpKSB7IiArIE5MICsgIlx0XHRcdFVSTCByZXNvdXJjZVVSTCA9ICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMTggPSAiLmNsYXNzLmdldFJlc291cmNlKGZpbGVOYW1lKTsiICsgTkwgKyAiXHRcdFx0aWYgKHJlc291cmNlVVJMICE9IG51bGwpIHsiICsgTkwgKyAiXHRcdFx0XHRmaWxlVVJMID0gRmlsZUxvY2F0b3IudG9GaWxlVVJMKHJlc291cmNlVVJMKTsiICsgTkwgKyAiXHRcdFx0fSBlbHNlIHsiICsgTkwgKyAiXHRcdFx0XHRmaWxlVVJMID0gbnVsbDsiICsgTkwgKyAiXHRcdFx0fSIgKyBOTCArICJcdFx0fSBlbHNlIHsiICsgTkwgKyAiXHRcdFx0ZmlsZVVSTCA9ICI7Ci0gIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8xMTkgPSAiLmNsYXNzLmdldFJlc291cmNlKGZpbGVOYW1lKTsiICsgTkwgKyAiXHRcdH0iICsgTkwgKyAiXHRcdGlmIChmaWxlVVJMID09IG51bGwpIHsiICsgTkwgKyAiXHRcdFx0dGhyb3cgbmV3IElPRXhjZXB0aW9uKFwiJ1wiICsgZmlsZU5hbWUgKyBcIicgbm90IGZvdW5kXCIpOyIgKyBOTCArICJcdFx0fSBlbHNlIHsiICsgTkwgKyAiXHRcdFx0cmV0dXJuIGZpbGVVUkw7IiArIE5MICsgIlx0XHR9IiArIE5MICsgIlx0fSIgKyBOTCArICIiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBUZXN0cyBpZiBlY2xpcHNlIGlzIHJ1bm5pbmcuIiArIE5MICsgIlx0ICogIiArIE5MICsgIlx0ICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBlY2xpcHNlIGlzIHJ1bm5pbmciICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBnZW5lcmF0ZWQiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNFY2xpcHNlUnVubmluZygpIHsiICsgTkwgKyAiXHRcdHRyeSB7IiArIE5MICsgIlx0XHRcdHJldHVybiBQbGF0Zm9ybS5pc1J1bm5pbmcoKTsiICsgTkwgKyAiXHRcdH0gY2F0Y2ggKFRocm93YWJsZSBleGNlcHRpb24pIHsiICsgTkwgKyAiXHRcdFx0Ly8gQXNzdW1lIHRoYXQgd2UgYXJlbid0IHJ1bm5pbmcuIiArIE5MICsgIlx0XHR9IiArIE5MICsgIlx0XHRyZXR1cm4gZmFsc2U7IiArIE5MICsgIlx0fSIgKyBOTCArICJ9IjsKLSAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzEyMCA9IE5MOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMjggPSAiKTsiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMjkgPSBOTCArICJcdFx0XHRcdFN5c3RlbS5vdXQucHJpbnRsbihydW5uZXIuZG8iOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzAgPSAiKG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpKTsiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzEgPSBOTCArICJcdFx0XHRcdHJ1bm5lci5kbyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zMiA9ICIobmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzMzID0gTkwgKyAiXHRcdFx0XHRydW5uZXIuc2F2ZU1vZGVscygiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzQgPSBOTCArICJcdFx0XHR9IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzM1ID0gTkwgKyAiXHRcdFx0U3lzdGVtLm91dC5wcmludGxuKG5ldyAiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzYgPSAiKCkuZG8iOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfMzcgPSBOTCArICJcdFx0fSBjYXRjaCAoQVRMQ29yZUV4Y2VwdGlvbiBlKSB7IiArIE5MICsgIlx0XHRcdGUucHJpbnRTdGFja1RyYWNlKCk7IiArIE5MICsgIlx0XHR9IGNhdGNoIChJT0V4Y2VwdGlvbiBlKSB7IiArIE5MICsgIlx0XHRcdGUucHJpbnRTdGFja1RyYWNlKCk7IiArIE5MICsgIlx0XHR9IGNhdGNoIChBVExFeGVjdXRpb25FeGNlcHRpb24gZSkgeyIgKyBOTCArICJcdFx0XHRlLnByaW50U3RhY2tUcmFjZSgpOyIgKyBOTCArICJcdFx0fSIgKyBOTCArICJcdH0iICsgTkwgKyAiIiArIE5MICsgIlx0LyoqIiArIE5MICsgIlx0ICogQ29uc3RydWN0b3IuIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHVibGljICI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zOCA9ICIoKSB0aHJvd3MgSU9FeGNlcHRpb24geyIgKyBOTCArICJcdFx0cHJvcGVydGllcyA9IG5ldyBQcm9wZXJ0aWVzKCk7IiArIE5MICsgIlx0XHRwcm9wZXJ0aWVzLmxvYWQoZ2V0RmlsZVVSTChcIiI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF8zOSA9ICIucHJvcGVydGllc1wiKS5vcGVuU3RyZWFtKCkpOyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80MCA9IE5MICsgIlx0XHRFUGFja2FnZS5SZWdpc3RyeS5JTlNUQU5DRS5wdXQoZ2V0TWV0YW1vZGVsVXJpKFwiIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQxID0gIlwiKSwgIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQyID0gIi5lSU5TVEFOQ0UpOyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80MyA9IE5MICsgIlx0XHRSZXNvdXJjZS5GYWN0b3J5LlJlZ2lzdHJ5LklOU1RBTkNFLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dChcImVjb3JlXCIsIG5ldyBFY29yZVJlc291cmNlRmFjdG9yeUltcGwoKSk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQ0ID0gTkwgKyAiXHR9IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzQ1ID0gTkwgKyAiXHQiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBMb2FkIHRoZSBpbnB1dCBhbmQgaW5wdXQvb3V0cHV0IG1vZGVscywgaW5pdGlhbGl6ZSBvdXRwdXQgbW9kZWxzLiIgKyBOTCArICJcdCAqICI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80NiA9IE5MICsgIlx0ICogQHBhcmFtICI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF80NyA9ICJNb2RlbFBhdGgiICsgTkwgKyAiXHQgKiAgICAgICAgICAgIHRoZSAiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNDggPSAiIG1vZGVsIHBhdGgiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNDkgPSBOTCArICJcdCAqIEB0aHJvd3MgQVRMQ29yZUV4Y2VwdGlvbiIgKyBOTCArICJcdCAqICAgICAgICAgICAgIGlmIGEgcHJvYmxlbSBvY2N1cnMgd2hpbGUgbG9hZGluZyBtb2RlbHMiICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBnZW5lcmF0ZWQiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgdm9pZCBsb2FkTW9kZWxzKCI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF81MCA9ICJTdHJpbmcgIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzUxID0gIk1vZGVsUGF0aCI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF81MiA9ICIpIHRocm93cyBBVExDb3JlRXhjZXB0aW9uIHsiICsgTkwgKyAiXHRcdE1vZGVsRmFjdG9yeSBmYWN0b3J5ID0gbmV3IEVNRk1vZGVsRmFjdG9yeSgpOyIgKyBOTCArICJcdFx0SUluamVjdG9yIGluamVjdG9yID0gbmV3IEVNRkluamVjdG9yKCk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzUzID0gTkwgKyAiXHRcdElSZWZlcmVuY2VNb2RlbCAiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTQgPSAiTWV0YW1vZGVsID0gZmFjdG9yeS5nZXRNZXRhbWV0YW1vZGVsKCk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzU1ID0gTkwgKyAiXHQgXHRJUmVmZXJlbmNlTW9kZWwgIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzU2ID0gIk1ldGFtb2RlbCA9IGZhY3RvcnkubmV3UmVmZXJlbmNlTW9kZWwoKTsiICsgTkwgKyAiXHRcdGluamVjdG9yLmluamVjdCgiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTcgPSAiTWV0YW1vZGVsLCBnZXRNZXRhbW9kZWxVcmkoXCIiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTggPSAiXCIpKTsiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNTkgPSBOTCArICJcdFx0dGhpcy4iOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNjAgPSAiTW9kZWwgPSBmYWN0b3J5Lm5ld01vZGVsKCI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82MSA9ICJNZXRhbW9kZWwpOyIgKyBOTCArICJcdFx0aW5qZWN0b3IuaW5qZWN0KCI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF82MiA9ICJNb2RlbCwgIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzYzID0gIk1vZGVsUGF0aCk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzY0ID0gIk1ldGFtb2RlbCk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzY1ID0gTkwgKyAiXHRcdElSZWZlcmVuY2VNb2RlbCByZWZpbmluZ1RyYWNlTWV0YW1vZGVsID0gZmFjdG9yeS5nZXRCdWlsdEluUmVzb3VyY2UoXCJSZWZpbmluZ1RyYWNlLmVjb3JlXCIpOyIgKyBOTCArICJcdFx0cmVmaW5pbmdUcmFjZU1vZGVsID0gZmFjdG9yeS5uZXdNb2RlbChyZWZpbmluZ1RyYWNlTWV0YW1vZGVsKTsiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNjYgPSBOTCArICJcdCIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIFNhdmUgdGhlIG91dHB1dCBhbmQgaW5wdXQvb3V0cHV0IG1vZGVscy4iICsgTkwgKyAiXHQgKiAiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNjcgPSBOTCArICJcdCAqIEB0aHJvd3MgQVRMQ29yZUV4Y2VwdGlvbiIgKyBOTCArICJcdCAqICAgICAgICAgICAgIGlmIGEgcHJvYmxlbSBvY2N1cnMgd2hpbGUgc2F2aW5nIG1vZGVscyIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHB1YmxpYyB2b2lkIHNhdmVNb2RlbHMoIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzY4ID0gIikgdGhyb3dzIEFUTENvcmVFeGNlcHRpb24geyIgKyBOTCArICJcdFx0SUV4dHJhY3RvciBleHRyYWN0b3IgPSBuZXcgRU1GRXh0cmFjdG9yKCk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzY5ID0gTkwgKyAiXHRcdGV4dHJhY3Rvci5leHRyYWN0KCI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83MCA9IE5MICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBUcmFuc2Zvcm0gdGhlIG1vZGVscy4iICsgTkwgKyAiXHQgKiAiICsgTkwgKyAiXHQgKiBAcGFyYW0gbW9uaXRvciIgKyBOTCArICJcdCAqICAgICAgICAgICAgdGhlIHByb2dyZXNzIG1vbml0b3IiICsgTkwgKyAiXHQgKiBAdGhyb3dzIEFUTENvcmVFeGNlcHRpb24iICsgTkwgKyAiXHQgKiAgICAgICAgICAgICBpZiBhbiBlcnJvciBvY2N1cnMgZHVyaW5nIG1vZGVscyBoYW5kbGluZyIgKyBOTCArICJcdCAqIEB0aHJvd3MgSU9FeGNlcHRpb24iICsgTkwgKyAiXHQgKiAgICAgICAgICAgICBpZiBhIG1vZHVsZSBjYW5ub3QgYmUgcmVhZCIgKyBOTCArICJcdCAqIEB0aHJvd3MgQVRMRXhlY3V0aW9uRXhjZXB0aW9uIiArIE5MICsgIlx0ICogICAgICAgICAgICAgaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgZXhlY3V0aW9uIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHVibGljIE9iamVjdCBkbyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83MSA9ICIoSVByb2dyZXNzTW9uaXRvciBtb25pdG9yKSB0aHJvd3MgQVRMQ29yZUV4Y2VwdGlvbiwgSU9FeGNlcHRpb24sIEFUTEV4ZWN1dGlvbkV4Y2VwdGlvbiB7IiArIE5MICsgIlx0XHRJTGF1bmNoZXIgbGF1bmNoZXIgPSBuZXcgRU1GVk1MYXVuY2hlcigpOyIgKyBOTCArICJcdFx0TWFwPFN0cmluZywgT2JqZWN0PiBsYXVuY2hlck9wdGlvbnMgPSBnZXRPcHRpb25zKCk7IiArIE5MICsgIlx0XHRsYXVuY2hlci5pbml0aWFsaXplKGxhdW5jaGVyT3B0aW9ucyk7IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzcyID0gTkwgKyAiXHRcdGxhdW5jaGVyLmFkZEluTW9kZWwoIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzczID0gIk1vZGVsLCBcIiI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83NCA9ICJcIiwgXCIiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzUgPSAiXCIpOyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83NiA9IE5MICsgIlx0XHRsYXVuY2hlci5hZGRJbk91dE1vZGVsKCI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83NyA9IE5MICsgIlx0XHRsYXVuY2hlci5hZGRPdXRNb2RlbCgiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfNzggPSBOTCArICJcdFx0bGF1bmNoZXIuYWRkT3V0TW9kZWwocmVmaW5pbmdUcmFjZU1vZGVsLCBcInJlZmluaW5nVHJhY2VcIiwgXCJSZWZpbmluZ1RyYWNlXCIpOyI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF83OSA9IE5MICsgIlx0XHRsYXVuY2hlci5hZGRMaWJyYXJ5KFwiIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzgwID0gIlwiLCBnZXRMaWJyYXJ5QXNTdHJlYW0oXCIiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODEgPSBOTCArICJcdFx0cmV0dXJuIGxhdW5jaGVyLmxhdW5jaChcInJ1blwiLCBtb25pdG9yLCBsYXVuY2hlck9wdGlvbnMsIChPYmplY3RbXSkgZ2V0TW9kdWxlc0xpc3QoKSk7IiArIE5MICsgIlx0fSIgKyBOTCArICJcdCIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIFJldHVybnMgYW4gQXJyYXkgb2YgdGhlIG1vZHVsZSBpbnB1dCBzdHJlYW1zLCBwYXJhbWV0ZXJpemVkIGJ5IHRoZSIgKyBOTCArICJcdCAqIHByb3BlcnR5IGZpbGUuIiArIE5MICsgIlx0ICogIiArIE5MICsgIlx0ICogQHJldHVybiBhbiBBcnJheSBvZiB0aGUgbW9kdWxlIGlucHV0IHN0cmVhbXMiICsgTkwgKyAiXHQgKiBAdGhyb3dzIElPRXhjZXB0aW9uIiArIE5MICsgIlx0ICogICAgICAgICAgICAgaWYgYSBtb2R1bGUgY2Fubm90IGJlIHJlYWQiICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBnZW5lcmF0ZWQiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwcm90ZWN0ZWQgSW5wdXRTdHJlYW1bXSBnZXRNb2R1bGVzTGlzdCgpIHRocm93cyBJT0V4Y2VwdGlvbiB7IiArIE5MICsgIlx0XHRJbnB1dFN0cmVhbVtdIG1vZHVsZXMgPSBudWxsOyIgKyBOTCArICJcdFx0U3RyaW5nIG1vZHVsZXNMaXN0ID0gcHJvcGVydGllcy5nZXRQcm9wZXJ0eShcIiI7CisgIHByb3RlY3RlZCBmaW5hbCBTdHJpbmcgVEVYVF84MiA9ICIubW9kdWxlc1wiKTsiICsgTkwgKyAiXHRcdGlmIChtb2R1bGVzTGlzdCAhPSBudWxsKSB7IiArIE5MICsgIlx0XHRcdFN0cmluZ1tdIG1vZHVsZU5hbWVzID0gbW9kdWxlc0xpc3Quc3BsaXQoXCIsXCIpOyIgKyBOTCArICJcdFx0XHRtb2R1bGVzID0gbmV3IElucHV0U3RyZWFtW21vZHVsZU5hbWVzLmxlbmd0aF07IiArIE5MICsgIlx0XHRcdGZvciAoaW50IGkgPSAwOyBpIDwgbW9kdWxlTmFtZXMubGVuZ3RoOyBpKyspIHsiICsgTkwgKyAiXHRcdFx0XHRTdHJpbmcgYXNtTW9kdWxlUGF0aCA9IG5ldyBQYXRoKG1vZHVsZU5hbWVzW2ldLnRyaW0oKSkucmVtb3ZlRmlsZUV4dGVuc2lvbigpLmFkZEZpbGVFeHRlbnNpb24oXCJhc21cIikudG9TdHJpbmcoKTsiICsgTkwgKyAiXHRcdFx0XHRtb2R1bGVzW2ldID0gZ2V0RmlsZVVSTChhc21Nb2R1bGVQYXRoKS5vcGVuU3RyZWFtKCk7IiArIE5MICsgIlx0XHRcdH0iICsgTkwgKyAiXHRcdH0iICsgTkwgKyAiXHRcdHJldHVybiBtb2R1bGVzOyIgKyBOTCArICJcdH0iICsgTkwgKyAiXHQiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBSZXR1cm5zIHRoZSBVUkkgb2YgdGhlIGdpdmVuIG1ldGFtb2RlbCwgcGFyYW1ldGVyaXplZCBmcm9tIHRoZSBwcm9wZXJ0eSBmaWxlLiIgKyBOTCArICJcdCAqICIgKyBOTCArICJcdCAqIEBwYXJhbSBtZXRhbW9kZWxOYW1lIiArIE5MICsgIlx0ICogICAgICAgICAgICB0aGUgbWV0YW1vZGVsIG5hbWUiICsgTkwgKyAiXHQgKiBAcmV0dXJuIHRoZSBtZXRhbW9kZWwgVVJJIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHJvdGVjdGVkIFN0cmluZyBnZXRNZXRhbW9kZWxVcmkoU3RyaW5nIG1ldGFtb2RlbE5hbWUpIHsiICsgTkwgKyAiXHRcdHJldHVybiBwcm9wZXJ0aWVzLmdldFByb3BlcnR5KFwiIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzgzID0gIi5tZXRhbW9kZWxzLlwiICsgbWV0YW1vZGVsTmFtZSk7IiArIE5MICsgIlx0fSIgKyBOTCArICJcdCIgKyBOTCArICJcdC8qKiIgKyBOTCArICJcdCAqIFJldHVybnMgdGhlIGZpbGUgbmFtZSBvZiB0aGUgZ2l2ZW4gbGlicmFyeSwgcGFyYW1ldGVyaXplZCBmcm9tIHRoZSBwcm9wZXJ0eSBmaWxlLiIgKyBOTCArICJcdCAqICIgKyBOTCArICJcdCAqIEBwYXJhbSBsaWJyYXJ5TmFtZSIgKyBOTCArICJcdCAqICAgICAgICAgICAgdGhlIGxpYnJhcnkgbmFtZSIgKyBOTCArICJcdCAqIEByZXR1cm4gdGhlIGxpYnJhcnkgZmlsZSBuYW1lIiArIE5MICsgIlx0ICoiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHJvdGVjdGVkIElucHV0U3RyZWFtIGdldExpYnJhcnlBc1N0cmVhbShTdHJpbmcgbGlicmFyeU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7IiArIE5MICsgIlx0XHRyZXR1cm4gZ2V0RmlsZVVSTChwcm9wZXJ0aWVzLmdldFByb3BlcnR5KFwiIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzg0ID0gIi5saWJyYXJpZXMuXCIgKyBsaWJyYXJ5TmFtZSkpLm9wZW5TdHJlYW0oKTsiICsgTkwgKyAiXHR9IiArIE5MICsgIlx0IiArIE5MICsgIlx0LyoqIiArIE5MICsgIlx0ICogUmV0dXJucyB0aGUgb3B0aW9ucyBtYXAsIHBhcmFtZXRlcml6ZWQgZnJvbSB0aGUgcHJvcGVydHkgZmlsZS4iICsgTkwgKyAiXHQgKiAiICsgTkwgKyAiXHQgKiBAcmV0dXJuIHRoZSBvcHRpb25zIG1hcCIgKyBOTCArICJcdCAqIiArIE5MICsgIlx0ICogQGdlbmVyYXRlZCIgKyBOTCArICJcdCAqLyIgKyBOTCArICJcdHByb3RlY3RlZCBNYXA8U3RyaW5nLCBPYmplY3Q+IGdldE9wdGlvbnMoKSB7IiArIE5MICsgIlx0XHRNYXA8U3RyaW5nLCBPYmplY3Q+IG9wdGlvbnMgPSBuZXcgSGFzaE1hcDxTdHJpbmcsIE9iamVjdD4oKTsiICsgTkwgKyAiXHRcdGZvciAoRW50cnk8T2JqZWN0LCBPYmplY3Q+IGVudHJ5IDogcHJvcGVydGllcy5lbnRyeVNldCgpKSB7IiArIE5MICsgIlx0XHRcdGlmIChlbnRyeS5nZXRLZXkoKS50b1N0cmluZygpLnN0YXJ0c1dpdGgoXCIiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODUgPSAiLm9wdGlvbnMuXCIpKSB7IiArIE5MICsgIlx0XHRcdFx0b3B0aW9ucy5wdXQoZW50cnkuZ2V0S2V5KCkudG9TdHJpbmcoKS5yZXBsYWNlRmlyc3QoXCIiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODYgPSAiLm9wdGlvbnMuXCIsIFwiXCIpLCAiICsgTkwgKyAiXHRcdFx0XHRlbnRyeS5nZXRWYWx1ZSgpLnRvU3RyaW5nKCkpOyIgKyBOTCArICJcdFx0XHR9IiArIE5MICsgIlx0XHR9IiArIE5MICsgIlx0XHRyZXR1cm4gb3B0aW9uczsiICsgTkwgKyAiXHR9IiArIE5MICsgIlx0IiArIE5MICsgIlx0LyoqIiArIE5MICsgIlx0ICogRmluZHMgdGhlIGZpbGUgaW4gdGhlIHBsdWctaW4uIFJldHVybnMgdGhlIGZpbGUgVVJMLiIgKyBOTCArICJcdCAqICIgKyBOTCArICJcdCAqIEBwYXJhbSBmaWxlTmFtZSIgKyBOTCArICJcdCAqICAgICAgICAgICAgdGhlIGZpbGUgbmFtZSIgKyBOTCArICJcdCAqIEByZXR1cm4gdGhlIGZpbGUgVVJMIiArIE5MICsgIlx0ICogQHRocm93cyBJT0V4Y2VwdGlvbiIgKyBOTCArICJcdCAqICAgICAgICAgICAgIGlmIHRoZSBmaWxlIGRvZXNuJ3QgZXhpc3QiICsgTkwgKyAiXHQgKiAiICsgTkwgKyAiXHQgKiBAZ2VuZXJhdGVkIiArIE5MICsgIlx0ICovIiArIE5MICsgIlx0cHJvdGVjdGVkIHN0YXRpYyBVUkwgZ2V0RmlsZVVSTChTdHJpbmcgZmlsZU5hbWUpIHRocm93cyBJT0V4Y2VwdGlvbiB7IiArIE5MICsgIlx0XHRmaW5hbCBVUkwgZmlsZVVSTDsiICsgTkwgKyAiXHRcdGlmIChpc0VjbGlwc2VSdW5uaW5nKCkpIHsiICsgTkwgKyAiXHRcdFx0VVJMIHJlc291cmNlVVJMID0gIjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzg3ID0gIi5jbGFzcy5nZXRSZXNvdXJjZShmaWxlTmFtZSk7IiArIE5MICsgIlx0XHRcdGlmIChyZXNvdXJjZVVSTCAhPSBudWxsKSB7IiArIE5MICsgIlx0XHRcdFx0ZmlsZVVSTCA9IEZpbGVMb2NhdG9yLnRvRmlsZVVSTChyZXNvdXJjZVVSTCk7IiArIE5MICsgIlx0XHRcdH0gZWxzZSB7IiArIE5MICsgIlx0XHRcdFx0ZmlsZVVSTCA9IG51bGw7IiArIE5MICsgIlx0XHRcdH0iICsgTkwgKyAiXHRcdH0gZWxzZSB7IiArIE5MICsgIlx0XHRcdGZpbGVVUkwgPSAiOworICBwcm90ZWN0ZWQgZmluYWwgU3RyaW5nIFRFWFRfODggPSAiLmNsYXNzLmdldFJlc291cmNlKGZpbGVOYW1lKTsiICsgTkwgKyAiXHRcdH0iICsgTkwgKyAiXHRcdGlmIChmaWxlVVJMID09IG51bGwpIHsiICsgTkwgKyAiXHRcdFx0dGhyb3cgbmV3IElPRXhjZXB0aW9uKFwiJ1wiICsgZmlsZU5hbWUgKyBcIicgbm90IGZvdW5kXCIpOyIgKyBOTCArICJcdFx0fSBlbHNlIHsiICsgTkwgKyAiXHRcdFx0cmV0dXJuIGZpbGVVUkw7IiArIE5MICsgIlx0XHR9IiArIE5MICsgIlx0fSIgKyBOTCArICIiICsgTkwgKyAiXHQvKioiICsgTkwgKyAiXHQgKiBUZXN0cyBpZiBlY2xpcHNlIGlzIHJ1bm5pbmcuIiArIE5MICsgIlx0ICogIiArIE5MICsgIlx0ICogQHJldHVybiA8Y29kZT50cnVlPC9jb2RlPiBpZiBlY2xpcHNlIGlzIHJ1bm5pbmciICsgTkwgKyAiXHQgKiIgKyBOTCArICJcdCAqIEBnZW5lcmF0ZWQiICsgTkwgKyAiXHQgKi8iICsgTkwgKyAiXHRwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNFY2xpcHNlUnVubmluZygpIHsiICsgTkwgKyAiXHRcdHRyeSB7IiArIE5MICsgIlx0XHRcdHJldHVybiBQbGF0Zm9ybS5pc1J1bm5pbmcoKTsiICsgTkwgKyAiXHRcdH0gY2F0Y2ggKFRocm93YWJsZSBleGNlcHRpb24pIHsiICsgTkwgKyAiXHRcdFx0Ly8gQXNzdW1lIHRoYXQgd2UgYXJlbid0IHJ1bm5pbmcuIiArIE5MICsgIlx0XHR9IiArIE5MICsgIlx0XHRyZXR1cm4gZmFsc2U7IiArIE5MICsgIlx0fSIgKyBOTCArICJ9IjsKKyAgcHJvdGVjdGVkIGZpbmFsIFN0cmluZyBURVhUXzg5ID0gTkw7CiAKICAgcHVibGljIFN0cmluZyBnZW5lcmF0ZShPYmplY3QgYXJndW1lbnQpCiAgIHsKQEAgLTIwMSwyMTAgKzE3MCwyMTAgQEAKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0QWxsTW9kZWxzTmFtZXMoKS5pbmRleE9mKG1vZGVsTmFtZSkpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8yNyk7CiAgICAgaWYgKGkuaGFzTmV4dCgpKSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzIxKTsKKyAgICB9CisgICAgfQogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8yOCk7CiAgICAgfQotICAgIH0KLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMjkpOwotICAgIH0KICAgICBpZiAoY29udGVudC5pc1F1ZXJ5KCkpIHsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMjkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzApOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzEpOwogICAgIH0gZWxzZSB7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzMyKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzEpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzMpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zMik7CiAgICAgfQogICAgIGlmICghY29udGVudC5nZXRNb2RlbHNUb1NhdmVOYW1lcygpLmlzRW1wdHkoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zNCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzMzKTsKICAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0TW9kZWxzVG9TYXZlTmFtZXMoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKSB7IFN0cmluZyBtb2RlbE5hbWUgPSBpLm5leHQoKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzUpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8yNik7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChjb250ZW50LmdldEFsbE1vZGVsc05hbWVzKCkuaW5kZXhPZihtb2RlbE5hbWUpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzYpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8yNyk7CiAgICAgaWYgKGkuaGFzTmV4dCgpKSB7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzM3KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMjEpOwogICAgIH0KICAgICB9Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzM4KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMjgpOwogICAgIH0KLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zNCk7CiAgICAgfSBlbHNlIHsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNDApOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zNSk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChjb250ZW50LmdldENsYXNzU2hvcnROYW1lKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80MSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzM2KTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0Q2xhc3NTaG9ydE5hbWUoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQyKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzApOwogICAgIH0KLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNDMpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8zNyk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChjb250ZW50LmdldENsYXNzU2hvcnROYW1lKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80NCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzM4KTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0Q2xhc3NTaG9ydE5hbWUoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ1KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMzkpOwogICAgIGZvciAoU3RyaW5nIG1ldGFtb2RlbE5hbWUgOiBjb250ZW50LmdldEFsbE1ldGFtb2RlbHNOYW1lcygpKSB7CiAgICAgU3RyaW5nIHBhY2thZ2VDbGFzc05hbWUgPSBwbHVnaW5Db250ZW50LmdldFBhY2thZ2VDbGFzc05hbWVzKCkuZ2V0KG1ldGFtb2RlbE5hbWUpOyBpZiAoIWNvbnRlbnQuaXNNZXRhbWV0YW1vZGVsKG1ldGFtb2RlbE5hbWUpICYmIHBhY2thZ2VDbGFzc05hbWUgIT0gbnVsbCkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80Nik7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQwKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1ldGFtb2RlbE5hbWUpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80Nyk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQxKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKHBhY2thZ2VDbGFzc05hbWUpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80OCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQyKTsKICAgICB9CiAgICAgfQogICAgIGlmICghY29udGVudC5nZXRBbGxNb2RlbHNOYW1lcygpLmlzRW1wdHkoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80OSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQzKTsKICAgICB9Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzUwKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNDQpOwogICAgIGlmICghY29udGVudC5nZXRNb2RlbHNUb0xvYWROYW1lcygpLmlzRW1wdHkoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81MSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ1KTsKICAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0TW9kZWxzVG9Mb2FkTmFtZXMoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsgU3RyaW5nIG1vZGVsTmFtZSA9IGkubmV4dCgpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81Mik7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ2KTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTMpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80Nyk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81NCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ4KTsKICAgICB9Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzU1KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNDkpOwogICAgIGZvciAoSXRlcmF0b3I8U3RyaW5nPiBpID0gY29udGVudC5nZXRNb2RlbHNUb0xvYWROYW1lcygpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTYpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81MCk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChpLm5leHQoKS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTcpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81MSk7CiAgICAgaWYgKGkuaGFzTmV4dCgpKSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzIxKTsKKyAgICB9CisgICAgfQorICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81Mik7CisgICAgZm9yIChTdHJpbmcgbWV0YW1vZGVsTmFtZSA6IGNvbnRlbnQuZ2V0QWxsTWV0YW1vZGVsc05hbWVzKCkpIHsKKyAgICBpZiAoY29udGVudC5pc01ldGFtZXRhbW9kZWwobWV0YW1vZGVsTmFtZSkpIHsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTMpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobWV0YW1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTQpOworICAgIH0gZWxzZSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzU1KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1ldGFtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzU2KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1ldGFtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzU3KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1ldGFtb2RlbE5hbWUpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81OCk7CiAgICAgfQogICAgIH0KLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTkpOwotICAgIGZvciAoU3RyaW5nIG1ldGFtb2RlbE5hbWUgOiBjb250ZW50LmdldEFsbE1ldGFtb2RlbHNOYW1lcygpKSB7Ci0gICAgaWYgKGNvbnRlbnQuaXNNZXRhbWV0YW1vZGVsKG1ldGFtb2RlbE5hbWUpKSB7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYwKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1ldGFtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYxKTsKLSAgICB9IGVsc2UgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82Mik7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtZXRhbW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82Myk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtZXRhbW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82NCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtZXRhbW9kZWxOYW1lKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNjUpOwotICAgIH0KLSAgICB9CiAgICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldEluTW9kZWxzKCkua2V5U2V0KCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkgeyBTdHJpbmcgbW9kZWxOYW1lID0gaS5uZXh0KCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzY2KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTkpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82Nyk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYwKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0SW5Nb2RlbHMoKS5nZXQobW9kZWxOYW1lKS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNjgpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82MSk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzY5KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNjIpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83MCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYzKTsKICAgICB9CiAgICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldEluT3V0TW9kZWxzKCkua2V5U2V0KCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkgeyBTdHJpbmcgbW9kZWxOYW1lID0gaS5uZXh0KCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzcxKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTkpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83Mik7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYwKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0SW5PdXRNb2RlbHMoKS5nZXQobW9kZWxOYW1lKS50b0xvd2VyQ2FzZSgpKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNjEpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82Mik7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYzKTsKKyAgICB9CisgICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldE91dE1vZGVscygpLmtleVNldCgpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsgU3RyaW5nIG1vZGVsTmFtZSA9IGkubmV4dCgpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81OSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYwKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0T3V0TW9kZWxzKCkuZ2V0KG1vZGVsTmFtZSkudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzY0KTsKKyAgICB9CisgICAgaWYgKGNvbnRlbnQuaXNSZWZpbmluZygpKSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzY1KTsKKyAgICB9CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ0KTsKKyAgICB9CisgICAgaWYgKCFjb250ZW50LmdldE1vZGVsc1RvU2F2ZU5hbWVzKCkuaXNFbXB0eSgpKSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzY2KTsKKyAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0TW9kZWxzVG9TYXZlTmFtZXMoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTspIHsgU3RyaW5nIG1vZGVsTmFtZSA9IGkubmV4dCgpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF80Nik7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ3KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ4KTsKKyAgICB9CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzY3KTsKKyAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0TW9kZWxzVG9TYXZlTmFtZXMoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzUwKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGkubmV4dCgpLnRvTG93ZXJDYXNlKCkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF81MSk7CisgICAgaWYgKGkuaGFzTmV4dCgpKSB7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzIxKTsKKyAgICB9CisgICAgfQorICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82OCk7CisgICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldE1vZGVsc1RvU2F2ZU5hbWVzKCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7KSB7IFN0cmluZyBtb2RlbE5hbWUgPSBpLm5leHQoKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNjkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF82Mik7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzYzKTsKKyAgICB9CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzQ0KTsKKyAgICB9CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzcwKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0Q2xhc3NTaG9ydE5hbWUoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzcxKTsKKyAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0SW5Nb2RlbHMoKS5rZXlTZXQoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKSB7IFN0cmluZyBtb2RlbE5hbWUgPSBpLm5leHQoKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNzIpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83Myk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83NCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChjb250ZW50LmdldEluTW9kZWxzKCkuZ2V0KG1vZGVsTmFtZSkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83NSk7CisgICAgfQorICAgIGZvciAoSXRlcmF0b3I8U3RyaW5nPiBpID0gY29udGVudC5nZXRJbk91dE1vZGVscygpLmtleVNldCgpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsgU3RyaW5nIG1vZGVsTmFtZSA9IGkubmV4dCgpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83Nik7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzczKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzc0KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0SW5PdXRNb2RlbHMoKS5nZXQobW9kZWxOYW1lKSk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzc1KTsKICAgICB9CiAgICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldE91dE1vZGVscygpLmtleVNldCgpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOyApIHsgU3RyaW5nIG1vZGVsTmFtZSA9IGkubmV4dCgpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83Nik7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzc3KTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0T3V0TW9kZWxzKCkuZ2V0KG1vZGVsTmFtZSkudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzczKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZSk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzc0KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGNvbnRlbnQuZ2V0T3V0TW9kZWxzKCkuZ2V0KG1vZGVsTmFtZSkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83NSk7CisgICAgfQorICAgIGlmIChjb250ZW50LmlzUmVmaW5pbmcoKSkgewogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83OCk7CiAgICAgfQotICAgIGlmIChjb250ZW50LmlzUmVmaW5pbmcoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83OSk7Ci0gICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84MCk7Ci0gICAgfQotICAgIGlmICghY29udGVudC5nZXRNb2RlbHNUb1NhdmVOYW1lcygpLmlzRW1wdHkoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84MSk7Ci0gICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldE1vZGVsc1RvU2F2ZU5hbWVzKCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7KSB7IFN0cmluZyBtb2RlbE5hbWUgPSBpLm5leHQoKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODIpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84Myk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84NCk7Ci0gICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84NSk7Ci0gICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldE1vZGVsc1RvU2F2ZU5hbWVzKCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84Nik7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChpLm5leHQoKS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODcpOwotICAgIGlmIChpLmhhc05leHQoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84OCk7Ci0gICAgfQotICAgIH0KLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODkpOwotICAgIGZvciAoSXRlcmF0b3I8U3RyaW5nPiBpID0gY29udGVudC5nZXRNb2RlbHNUb1NhdmVOYW1lcygpLml0ZXJhdG9yKCk7IGkuaGFzTmV4dCgpOykgeyBTdHJpbmcgbW9kZWxOYW1lID0gaS5uZXh0KCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzkwKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfOTEpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lLnRvTG93ZXJDYXNlKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF85Mik7Ci0gICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF85Myk7Ci0gICAgfQotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF85NCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChjb250ZW50LmdldENsYXNzU2hvcnROYW1lKCkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF85NSk7Ci0gICAgZm9yIChJdGVyYXRvcjxTdHJpbmc+IGkgPSBjb250ZW50LmdldEluTW9kZWxzKCkua2V5U2V0KCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkgeyBTdHJpbmcgbW9kZWxOYW1lID0gaS5uZXh0KCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzk2KTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfOTcpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQobW9kZWxOYW1lKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfOTgpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRJbk1vZGVscygpLmdldChtb2RlbE5hbWUpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfOTkpOwotICAgIH0KLSAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0SW5PdXRNb2RlbHMoKS5rZXlTZXQoKS5pdGVyYXRvcigpOyBpLmhhc05leHQoKTsgKSB7IFN0cmluZyBtb2RlbE5hbWUgPSBpLm5leHQoKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTAwKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTAxKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKG1vZGVsTmFtZSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzEwMik7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChjb250ZW50LmdldEluT3V0TW9kZWxzKCkuZ2V0KG1vZGVsTmFtZSkpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMDMpOwotICAgIH0KLSAgICBmb3IgKEl0ZXJhdG9yPFN0cmluZz4gaSA9IGNvbnRlbnQuZ2V0T3V0TW9kZWxzKCkua2V5U2V0KCkuaXRlcmF0b3IoKTsgaS5oYXNOZXh0KCk7ICkgeyBTdHJpbmcgbW9kZWxOYW1lID0gaS5uZXh0KCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzEwNCk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUudG9Mb3dlckNhc2UoKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzEwNSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChtb2RlbE5hbWUpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMDYpOwotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRPdXRNb2RlbHMoKS5nZXQobW9kZWxOYW1lKSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzEwNyk7Ci0gICAgfQotICAgIGlmIChjb250ZW50LmlzUmVmaW5pbmcoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMDgpOwotICAgIH0KICAgICBmb3IgKFN0cmluZyBsaWJyYXJ5TmFtZSA6IGNvbnRlbnQuZ2V0QWxsTGlicmFyaWVzTmFtZXMoKSkgewotICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF8xMDkpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF83OSk7CiAgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChsaWJyYXJ5TmFtZSk7Ci0gICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzExMCk7CisgICAgc3RyaW5nQnVmZmVyLmFwcGVuZChURVhUXzgwKTsKICAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKGxpYnJhcnlOYW1lKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTExKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfNTgpOwogICAgIH0KLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTEyKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODEpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTEzKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODIpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTE0KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODMpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTE1KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODQpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTE2KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODUpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTE3KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODYpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTE4KTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODcpOwogICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoY29udGVudC5nZXRDbGFzc1Nob3J0TmFtZSgpKTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTE5KTsKLSAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfMTIwKTsKKyAgICBzdHJpbmdCdWZmZXIuYXBwZW5kKFRFWFRfODgpOworICAgIHN0cmluZ0J1ZmZlci5hcHBlbmQoVEVYVF84OSk7CiAgICAgcmV0dXJuIHN0cmluZ0J1ZmZlci50b1N0cmluZygpOwogICB9CiB9CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9BZHRQbHVnaW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0FkdFBsdWdpbi5qYXZhCmluZGV4IDBiMmJjNjIuLjUzMjc3ZDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0FkdFBsdWdpbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0FkdFBsdWdpbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bEJ1aWxkVmlzaXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsQnVpbGRWaXNpdG9yLmphdmEKaW5kZXggOTRmNTIyOS4uMDFhMjdkYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsQnVpbGRWaXNpdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsQnVpbGRWaXNpdG9yLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBUYXJpayBJZHJpc3NpIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bEJ1aWxkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bEJ1aWxkZXIuamF2YQppbmRleCAxYTk0NTNmLi5lMTkxMzhhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9BdGxCdWlsZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsQnVpbGRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9BdGxDbGVhblZpc2l0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bENsZWFuVmlzaXRvci5qYXZhCmluZGV4IDU1ZWM5MjMuLjgwYjkzZDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bENsZWFuVmlzaXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bENsZWFuVmlzaXRvci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQ29weXJpZ2h0IChjKSAyMDE3IERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L0F0bE5hdHVyZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsTmF0dXJlLmphdmEKaW5kZXggYWM0MTY1MC4uMDA2OTRiZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsTmF0dXJlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsTmF0dXJlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvQXRsUmVzb3VyY2VWaXNpdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9BdGxSZXNvdXJjZVZpc2l0b3IuamF2YQppbmRleCBiM2UwMTE4Li41YWU4OTRhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9BdGxSZXNvdXJjZVZpc2l0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9BdGxSZXNvdXJjZVZpc2l0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIENvcHlyaWdodCAoYykgMjAxNyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIFRhcmlrIElkcmlzc2kgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L01lc3NhZ2VzLmphdmEKaW5kZXggOWMzYjg1Yi4uNzc2ZGYyYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvTWVzc2FnZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9NZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBNZXNzYWdlcyBleHRlcm5hbGl6YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L21lc3NhZ2VzLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9tZXNzYWdlcy5wcm9wZXJ0aWVzCmluZGV4IGMwYTk5NzguLjgxN2ZmMTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L21lc3NhZ2VzLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvbWVzc2FnZXMucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9BVExQcm9wZXJ0aWVzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQVRMUHJvcGVydGllcy5qYXZhCmluZGV4IDYxZWI2ZjIuLjNkZGIyZTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9BVExQcm9wZXJ0aWVzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvcnVubmVyL0FUTFByb3BlcnRpZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUGx1Z2luRGF0YS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvcnVubmVyL0NyZWF0ZVBsdWdpbkRhdGEuamF2YQppbmRleCBmNTE2YTdlLi45MTc0NWZlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUGx1Z2luRGF0YS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVQbHVnaW5EYXRhLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvcnVubmVyL0NyZWF0ZVJ1bm5hYmxlQXRsT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUnVubmFibGVBdGxPcGVyYXRpb24uamF2YQppbmRleCBlZWIxMjliLi44ODJiNGNiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUnVubmFibGVBdGxPcGVyYXRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUnVubmFibGVBdGxPcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUnVubmFibGVEYXRhLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2FkdC9ydW5uZXIvQ3JlYXRlUnVubmFibGVEYXRhLmphdmEKaW5kZXggNmZiNjE4OC4uNWJkOGIyZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9hZHQvcnVubmVyL0NyZWF0ZVJ1bm5hYmxlRGF0YS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvYWR0L3J1bm5lci9DcmVhdGVSdW5uYWJsZURhdGEuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3RlbXBsYXRlcy9jcmVhdGVNb2R1bGVBY3RpdmF0b3JXcml0ZXIuamV0IGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC90ZW1wbGF0ZXMvY3JlYXRlTW9kdWxlQWN0aXZhdG9yV3JpdGVyLmpldAppbmRleCBiNDM1MzRjLi4wYzFhNDA2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3RlbXBsYXRlcy9jcmVhdGVNb2R1bGVBY3RpdmF0b3JXcml0ZXIuamV0CisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvdGVtcGxhdGVzL2NyZWF0ZU1vZHVsZUFjdGl2YXRvcldyaXRlci5qZXQKQEAgLTksOSArOSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC90ZW1wbGF0ZXMvY3JlYXRlUnVubmFibGVKYXZhV3JpdGVyLmpldCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5hZHQvdGVtcGxhdGVzL2NyZWF0ZVJ1bm5hYmxlSmF2YVdyaXRlci5qZXQKaW5kZXggZGY2MjE2MC4uZDE4NGEzZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmFkdC90ZW1wbGF0ZXMvY3JlYXRlUnVubmFibGVKYXZhV3JpdGVyLmpldAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuYWR0L3RlbXBsYXRlcy9jcmVhdGVSdW5uYWJsZUphdmFXcml0ZXIuamV0CkBAIC0xMCw5ICsxMCw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IDQ2ZDA1MzUuLjM4MTFhMWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xyXG4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CitvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cHNcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cclxuJHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9hYm91dC5odG1sCmluZGV4IGM5MTQzZDIuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+RGVjZW1iZXIgNywgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL2J1aWxkLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL2J1aWxkLnByb3BlcnRpZXMKaW5kZXggM2IzZjYwMC4uNjdkNDMzNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9idWlsZC5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vYnVpbGQucHJvcGVydGllcwpAQCAtMSw4ICsxLDggQEAKICMgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9tb2RlbC9BVEwuZ2VubW9kZWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL21vZGVsL0FUTC5nZW5tb2RlbAppbmRleCBjMjFmZjQwLi5lZDE5ZDYxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL21vZGVsL0FUTC5nZW5tb2RlbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL21vZGVsL0FUTC5nZW5tb2RlbApAQCAtMSw2ICsxLDYgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CiA8Z2VubW9kZWw6R2VuTW9kZWwgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIKLSAgICB4bWxuczpnZW5tb2RlbD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9HZW5Nb2RlbCIgY29weXJpZ2h0VGV4dD0iQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uJiN4QTtBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzJiN4QTthcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAmI3hBO3doaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0JiN4QTtodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCYjeEE7JiN4QTtDb250cmlidXRvcnM6JiN4QTsgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiYjeEE7ICAgIERlbm5pcyBXYWdlbGFhciAoVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwpIgorICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBjb3B5cmlnaHRUZXh0PSJDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4mI3hBO0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMmI3hBO2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCYjeEE7d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQmI3hBO2h0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvJiN4QTsmI3hBO0NvbnRyaWJ1dG9yczomI3hBOyAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uJiN4QTsgICAgRGVubmlzIFdhZ2VsYWFyIChWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCkiCiAgICAgbW9kZWxEaXJlY3Rvcnk9Ii9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMiIG1vZGVsUGx1Z2luSUQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uIgogICAgIG1vZGVsTmFtZT0iQVRMIiByb290RXh0ZW5kc0NsYXNzPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5NaW5pbWFsRU9iamVjdEltcGwkQ29udGFpbmVyIgogICAgIHN1cHByZXNzSW50ZXJmYWNlcz0idHJ1ZSIgaW1wb3J0ZXJJRD0ib3JnLmVjbGlwc2UuZW1mLmltcG9ydGVyLmVjb3JlIiBjb21wbGlhbmNlTGV2ZWw9IjUuMCIKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vbW9kZWwvUHJvYmxlbS5nZW5tb2RlbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vbW9kZWwvUHJvYmxlbS5nZW5tb2RlbAppbmRleCA2Y2Y4ZmRiLi4xZGU1MDFhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL21vZGVsL1Byb2JsZW0uZ2VubW9kZWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9tb2RlbC9Qcm9ibGVtLmdlbm1vZGVsCkBAIC0xLDYgKzEsNiBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KIDxnZW5tb2RlbDpHZW5Nb2RlbCB4bWk6dmVyc2lvbj0iMi4wIiB4bWxuczp4bWk9Imh0dHA6Ly93d3cub21nLm9yZy9YTUkiIHhtbG5zOmVjb3JlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIgotICAgIHhtbG5zOmdlbm1vZGVsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0dlbk1vZGVsIiBjb3B5cmlnaHRUZXh0PSJDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4mI3hBO0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMmI3hBO2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCYjeEE7d2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQmI3hBO2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sJiN4QTsmI3hBO0NvbnRyaWJ1dG9yczomI3hBOyAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uJiN4QTsgICAgRGVubmlzIFdhZ2VsYWFyIChWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCkiCisgICAgeG1sbnM6Z2VubW9kZWw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvR2VuTW9kZWwiIGNvcHlyaWdodFRleHQ9IkNvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLiYjeEE7QWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyYjeEE7YXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wJiN4QTt3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCYjeEE7aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8mI3hBOyYjeEE7Q29udHJpYnV0b3JzOiYjeEE7ICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24mI3hBOyAgICBEZW5uaXMgV2FnZWxhYXIgKFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsKSIKICAgICBtb2RlbERpcmVjdG9yeT0iL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYyIgbW9kZWxQbHVnaW5JRD0ib3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24iCiAgICAgbW9kZWxOYW1lPSJQcm9ibGVtIiByb290RXh0ZW5kc0NsYXNzPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5NaW5pbWFsRU9iamVjdEltcGwkQ29udGFpbmVyIgogICAgIHN1cHByZXNzSW50ZXJmYWNlcz0idHJ1ZSIgaW1wb3J0ZXJJRD0ib3JnLmVjbGlwc2UuZW1mLmltcG9ydGVyLmVjb3JlIiBjb21wbGlhbmNlTGV2ZWw9IjUuMCIKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vcGx1Z2luLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vcGx1Z2luLnhtbAppbmRleCBkM2I1NDZkLi41MDc0Y2ZjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3BsdWdpbi54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9wbHVnaW4ueG1sCkBAIC00LDkgKzQsOSBAQAogPCEtLQogIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAKICBDb250cmlidXRvcnM6CiAgICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vcG9tLnhtbAppbmRleCA3MTZkOWY1Li41ZTMyMTJlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0FUTEZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9BVExGYWN0b3J5LmphdmEKaW5kZXggOWQ2YTIzNS4uODU0MjhlNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0FUTEZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQVRMRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQVRMUGFja2FnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0FUTFBhY2thZ2UuamF2YQppbmRleCAwNTNmZTFjLi5kMDA2ZjNjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQVRMUGFja2FnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9BVExQYWNrYWdlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9BY3Rpb25CbG9jay5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0FjdGlvbkJsb2NrLmphdmEKaW5kZXggNjIzMzNmZS4uMjgwYTk4OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0FjdGlvbkJsb2NrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0FjdGlvbkJsb2NrLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9CaW5kaW5nLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQmluZGluZy5qYXZhCmluZGV4IDA2Mzg4YmUuLjc2M2Q3YzQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9CaW5kaW5nLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0JpbmRpbmcuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0JpbmRpbmdTdGF0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQmluZGluZ1N0YXQuamF2YQppbmRleCBjNjkyYTc5Li43MWIzZmM0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQmluZGluZ1N0YXQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQmluZGluZ1N0YXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0NhbGxlZFJ1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9DYWxsZWRSdWxlLmphdmEKaW5kZXggNDI2ODM3OS4uYTY0ZTIzNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0NhbGxlZFJ1bGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvQ2FsbGVkUnVsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvRHJvcFBhdHRlcm4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Ecm9wUGF0dGVybi5qYXZhCmluZGV4IDIxMWE2NzcuLmNlMmU1ODkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Ecm9wUGF0dGVybi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Ecm9wUGF0dGVybi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvRXhwcmVzc2lvblN0YXQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9FeHByZXNzaW9uU3RhdC5qYXZhCmluZGV4IDI1YWYyNmYuLjdjM2YyYmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9FeHByZXNzaW9uU3RhdC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9FeHByZXNzaW9uU3RhdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvRm9yRWFjaE91dFBhdHRlcm5FbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvRm9yRWFjaE91dFBhdHRlcm5FbGVtZW50LmphdmEKaW5kZXggOWZjMWJkYi4uNDg2MDMwMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0ZvckVhY2hPdXRQYXR0ZXJuRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Gb3JFYWNoT3V0UGF0dGVybkVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0ZvclN0YXQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Gb3JTdGF0LmphdmEKaW5kZXggN2YwZTcwYy4uZmEzNjEyYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0ZvclN0YXQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvRm9yU3RhdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvSGVscGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvSGVscGVyLmphdmEKaW5kZXggZTZkMDk4Mi4uNjUzMmEwZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0hlbHBlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9IZWxwZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0lmU3RhdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0lmU3RhdC5qYXZhCmluZGV4IDg3YzQ1OTcuLjdjN2QyZDkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9JZlN0YXQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvSWZTdGF0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9JblBhdHRlcm4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9JblBhdHRlcm4uamF2YQppbmRleCAxYTQzZWE1Li5kODNkNzhhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvSW5QYXR0ZXJuLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0luUGF0dGVybi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvSW5QYXR0ZXJuRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0luUGF0dGVybkVsZW1lbnQuamF2YQppbmRleCA1NjRhMmMwLi44MTJlODJjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvSW5QYXR0ZXJuRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9JblBhdHRlcm5FbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9MYXp5TWF0Y2hlZFJ1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9MYXp5TWF0Y2hlZFJ1bGUuamF2YQppbmRleCA2ZDEwNmVjLi5kN2FiNGQxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTGF6eU1hdGNoZWRSdWxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0xhenlNYXRjaGVkUnVsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTGlicmFyeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0xpYnJhcnkuamF2YQppbmRleCBjNmI2MjIyLi5hNTNkMDhkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTGlicmFyeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9MaWJyYXJ5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9MaWJyYXJ5UmVmLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTGlicmFyeVJlZi5qYXZhCmluZGV4IDJkYjg1YjIuLmVjNTRiZjIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9MaWJyYXJ5UmVmLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0xpYnJhcnlSZWYuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML0xvY2F0ZWRFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTG9jYXRlZEVsZW1lbnQuamF2YQppbmRleCA3YTdiMjJkLi5lNjAyYjIxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTG9jYXRlZEVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTG9jYXRlZEVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML01hdGNoZWRSdWxlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTWF0Y2hlZFJ1bGUuamF2YQppbmRleCA4ZWU2YjNiLi43YTlkNjA5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTWF0Y2hlZFJ1bGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTWF0Y2hlZFJ1bGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML01vZHVsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML01vZHVsZS5qYXZhCmluZGV4IGM2NTdjMTEuLjk0MWIwYjAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Nb2R1bGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTW9kdWxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Nb2R1bGVFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvTW9kdWxlRWxlbWVudC5qYXZhCmluZGV4IGFmMGZkZDQuLjRhODk0NWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Nb2R1bGVFbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML01vZHVsZUVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML091dFBhdHRlcm4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9PdXRQYXR0ZXJuLmphdmEKaW5kZXggNmM3MDkwNC4uN2YxMmJjYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML091dFBhdHRlcm4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvT3V0UGF0dGVybi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvT3V0UGF0dGVybkVsZW1lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9PdXRQYXR0ZXJuRWxlbWVudC5qYXZhCmluZGV4IDJjOWM5ZjUuLjY1M2RkOTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9PdXRQYXR0ZXJuRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9PdXRQYXR0ZXJuRWxlbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvUGF0dGVybkVsZW1lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9QYXR0ZXJuRWxlbWVudC5qYXZhCmluZGV4IGU1NWFlNjguLmRjMDlkNzQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9QYXR0ZXJuRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9QYXR0ZXJuRWxlbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvUXVlcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9RdWVyeS5qYXZhCmluZGV4IDEyZjU0NzkuLjc0N2QyZjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9RdWVyeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9RdWVyeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvUnVsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1J1bGUuamF2YQppbmRleCA3MDNiODM1Li5mYTEzNTM3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvUnVsZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9SdWxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9SdWxlVmFyaWFibGVEZWNsYXJhdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1J1bGVWYXJpYWJsZURlY2xhcmF0aW9uLmphdmEKaW5kZXggODhlYzY4OS4uMTQwYWFiZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1J1bGVWYXJpYWJsZURlY2xhcmF0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1J1bGVWYXJpYWJsZURlY2xhcmF0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9TaW1wbGVJblBhdHRlcm5FbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvU2ltcGxlSW5QYXR0ZXJuRWxlbWVudC5qYXZhCmluZGV4IDg5MjhjZjAuLmIzOWI1YTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9TaW1wbGVJblBhdHRlcm5FbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1NpbXBsZUluUGF0dGVybkVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1NpbXBsZU91dFBhdHRlcm5FbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvU2ltcGxlT3V0UGF0dGVybkVsZW1lbnQuamF2YQppbmRleCBiMzcyOWJkLi4xZDg5Mzk2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvU2ltcGxlT3V0UGF0dGVybkVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvU2ltcGxlT3V0UGF0dGVybkVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1N0YXRlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1N0YXRlbWVudC5qYXZhCmluZGV4IDQ0ODk1MWEuLmE0NDljNDAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9TdGF0ZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvU3RhdGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Vbml0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvVW5pdC5qYXZhCmluZGV4IDIzODFkZGYuLjNkZmUwMzkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC9Vbml0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML1VuaXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML3V0aWwvQVRMQWRhcHRlckZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC91dGlsL0FUTEFkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggMmIxNzU2My4uMzIxZTlhNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRML3V0aWwvQVRMQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvdXRpbC9BVExBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVEwvdXRpbC9BVExTd2l0Y2guamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC91dGlsL0FUTFN3aXRjaC5qYXZhCmluZGV4IGZkN2Y0MDEuLjFkNGE0MmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC91dGlsL0FUTFN3aXRjaC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTC91dGlsL0FUTFN3aXRjaC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExFeGVjdXRpb25FeGNlcHRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTEV4ZWN1dGlvbkV4Y2VwdGlvbi5qYXZhCmluZGV4IGIzNzc2OTUuLjY2ZGE3ZjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTEV4ZWN1dGlvbkV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTEV4ZWN1dGlvbkV4Y2VwdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTExhdW5jaENvbnN0YW50cy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRMTGF1bmNoQ29uc3RhbnRzLmphdmEKaW5kZXggYTE4MjZjNy4uOGM5MmY1YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRMTGF1bmNoQ29uc3RhbnRzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRMTGF1bmNoQ29uc3RhbnRzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRMTG9nRm9ybWF0dGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExMb2dGb3JtYXR0ZXIuamF2YQppbmRleCBhNTYzZjE0Li4xMGQzNTA3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExMb2dGb3JtYXR0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExMb2dGb3JtYXR0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBEZW5uaXMgV2FnZWxhYXIgKFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRMTG9nZ2VyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExMb2dnZXIuamF2YQppbmRleCA2YzViNzM4Li5iNWU4OGE2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExMb2dnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExMb2dnZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExSZXNvdXJjZVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BVExSZXNvdXJjZVByb3ZpZGVyLmphdmEKaW5kZXggMjE4NDBhZi4uMWUzYzVhMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQVRMUmVzb3VyY2VQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0FUTFJlc291cmNlUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BdGxOYkNoYXJGaWxlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9BdGxOYkNoYXJGaWxlLmphdmEKaW5kZXggMTJiNGJlYS4uM2ZlOWMwMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQXRsTmJDaGFyRmlsZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0F0bE5iQ2hhckZpbGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0NvbnNvbGVTdHJlYW1IYW5kbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Db25zb2xlU3RyZWFtSGFuZGxlci5qYXZhCmluZGV4IDFjNWZlMGIuLmEyMjA2MTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0NvbnNvbGVTdHJlYW1IYW5kbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vQ29uc29sZVN0cmVhbUhhbmRsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIERlbm5pcyBXYWdlbGFhciAoVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9JQXRsTGV4ZW1zLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9JQXRsTGV4ZW1zLmphdmEKaW5kZXggMmY2NGNhMi4uMjFjZmFjMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vSUF0bExleGVtcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL0lBdGxMZXhlbXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQXR0cmlidXRlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQXR0cmlidXRlLmphdmEKaW5kZXggZDQxMTg4ZS4uNWFmMDc1YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0F0dHJpYnV0ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9BdHRyaWJ1dGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0JhZ0V4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0JhZ0V4cC5qYXZhCmluZGV4IDBhNTFmYjUuLmMzMDY2ZjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9CYWdFeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQmFnRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9CYWdUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQmFnVHlwZS5qYXZhCmluZGV4IGJmNTI0NjIuLjhmODFlZWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9CYWdUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0JhZ1R5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0Jvb2xlYW5FeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Cb29sZWFuRXhwLmphdmEKaW5kZXggMTFjZDAxMi4uMjAyZWYyZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0Jvb2xlYW5FeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQm9vbGVhbkV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQm9vbGVhblR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Cb29sZWFuVHlwZS5qYXZhCmluZGV4IDMzYzBiNjMuLjdlNzhjZjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Cb29sZWFuVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Cb29sZWFuVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQ29sbGVjdGlvbkV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25FeHAuamF2YQppbmRleCA3N2Q3OGFlLi42MjMxOWI2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvQ29sbGVjdGlvbkV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Db2xsZWN0aW9uRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Db2xsZWN0aW9uT3BlcmF0aW9uQ2FsbEV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25PcGVyYXRpb25DYWxsRXhwLmphdmEKaW5kZXggZTJkMjEzZS4uMDBkZDZmYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25PcGVyYXRpb25DYWxsRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25PcGVyYXRpb25DYWxsRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Db2xsZWN0aW9uVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25UeXBlLmphdmEKaW5kZXggNDNjZDc2YS4uZjgzOGIzMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25UeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0NvbGxlY3Rpb25UeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9FbnVtTGl0ZXJhbEV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0VudW1MaXRlcmFsRXhwLmphdmEKaW5kZXggOTdkMDJhOS4uYmJkY2ZhOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0VudW1MaXRlcmFsRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0VudW1MaXRlcmFsRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JZkV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0lmRXhwLmphdmEKaW5kZXggM2QxMjI0Ny4uMGViZDU3OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0lmRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0lmRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JbnRlZ2VyRXhwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSW50ZWdlckV4cC5qYXZhCmluZGV4IDVmYmQwOGEuLmU1YTgyMTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JbnRlZ2VyRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0ludGVnZXJFeHAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0ludGVnZXJUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSW50ZWdlclR5cGUuamF2YQppbmRleCA3MjI1NTg0Li4xZThlNDYxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSW50ZWdlclR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSW50ZWdlclR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0l0ZXJhdGVFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRlRXhwLmphdmEKaW5kZXggOTRhMDcwZS4uNTZiOTk3OSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0l0ZXJhdGVFeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSXRlcmF0ZUV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSXRlcmF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRvci5qYXZhCmluZGV4IGI4OTVkMmUuLjg5YTFlNDMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvSXRlcmF0b3JFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRvckV4cC5qYXZhCmluZGV4IDg0NzQ2MjYuLjFiZTE3OTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRvckV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9JdGVyYXRvckV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTGV0RXhwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTGV0RXhwLmphdmEKaW5kZXggOGYyZWRjNy4uMTY0ZDVjNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0xldEV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9MZXRFeHAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0xvb3BFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Mb29wRXhwLmphdmEKaW5kZXggYTU5M2Q2Zi4uN2ZjYmYyNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML0xvb3BFeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTG9vcEV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTWFwRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML01hcEVsZW1lbnQuamF2YQppbmRleCA2MzQwNDVkLi4xOTU5ZWIxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTWFwRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9NYXBFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9NYXBFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9NYXBFeHAuamF2YQppbmRleCBkYzhiZDdlLi40ZDQzODJhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTWFwRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML01hcEV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTWFwVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML01hcFR5cGUuamF2YQppbmRleCA1NTNiNWMyLi41NmYzYzUwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTWFwVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9NYXBUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9OYXZpZ2F0aW9uT3JBdHRyaWJ1dGVDYWxsRXhwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTmF2aWdhdGlvbk9yQXR0cmlidXRlQ2FsbEV4cC5qYXZhCmluZGV4IDNlNWNkZjQuLmJlNDMxZGEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9OYXZpZ2F0aW9uT3JBdHRyaWJ1dGVDYWxsRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML05hdmlnYXRpb25PckF0dHJpYnV0ZUNhbGxFeHAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML051bWVyaWNFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9OdW1lcmljRXhwLmphdmEKaW5kZXggM2YwZTRmNy4uMjAzODk4YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML051bWVyaWNFeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTnVtZXJpY0V4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvTnVtZXJpY1R5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9OdW1lcmljVHlwZS5qYXZhCmluZGV4IDYyOTY0YjQuLmIyNmIzNTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9OdW1lcmljVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9OdW1lcmljVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT0NMRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09DTEZhY3RvcnkuamF2YQppbmRleCA3YzE1ZTNjLi4xYTIwYzE5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT0NMRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PQ0xGYWN0b3J5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PQ0xQYWNrYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT0NMUGFja2FnZS5qYXZhCmluZGV4IGFhYWQ4ZDguLmRiNThhYzAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PQ0xQYWNrYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09DTFBhY2thZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbEFueVR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xBbnlUeXBlLmphdmEKaW5kZXggMjcxOGZmZC4uZjNkYWZiOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbEFueVR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsQW55VHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsQ29udGV4dERlZmluaXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xDb250ZXh0RGVmaW5pdGlvbi5qYXZhCmluZGV4IDQxNmI0MDcuLmFhNjAzMmYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xDb250ZXh0RGVmaW5pdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xDb250ZXh0RGVmaW5pdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsRXhwcmVzc2lvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbEV4cHJlc3Npb24uamF2YQppbmRleCAzZGVmNDJmLi4yY2M3ZjdlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsRXhwcmVzc2lvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xFeHByZXNzaW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xGZWF0dXJlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsRmVhdHVyZS5qYXZhCmluZGV4IDM5OGE3ODYuLjAxM2MyNjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xGZWF0dXJlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbEZlYXR1cmUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbEZlYXR1cmVEZWZpbml0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsRmVhdHVyZURlZmluaXRpb24uamF2YQppbmRleCBmZWYzNzQxLi5jZWQ3ZDg1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsRmVhdHVyZURlZmluaXRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsRmVhdHVyZURlZmluaXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbE1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsTW9kZWwuamF2YQppbmRleCAwOGFkODQ3Li42YzgyNjMxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsTW9kZWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsTW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbE1vZGVsRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbE1vZGVsRWxlbWVudC5qYXZhCmluZGV4IDBmMmM5NDAuLmYwZmIxMGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xNb2RlbEVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsTW9kZWxFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsVHlwZS5qYXZhCmluZGV4IDRlMjYxYzkuLmVjNDllMGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbFR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbFVuZGVmaW5lZEV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09jbFVuZGVmaW5lZEV4cC5qYXZhCmluZGV4IGRhNDk5MzEuLjAyMzU1NDcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PY2xVbmRlZmluZWRFeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT2NsVW5kZWZpbmVkRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcGVyYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcGVyYXRpb24uamF2YQppbmRleCBhYjE3YTJiLi41YzNjODg5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT3BlcmF0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09wZXJhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT3BlcmF0aW9uQ2FsbEV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09wZXJhdGlvbkNhbGxFeHAuamF2YQppbmRleCBkNjExZGEwLi5kNTdkZDEwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT3BlcmF0aW9uQ2FsbEV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcGVyYXRpb25DYWxsRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcGVyYXRvckNhbGxFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcGVyYXRvckNhbGxFeHAuamF2YQppbmRleCAyNTAxMzA2Li5iMDQzYjE5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT3BlcmF0b3JDYWxsRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09wZXJhdG9yQ2FsbEV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT3JkZXJlZFNldEV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09yZGVyZWRTZXRFeHAuamF2YQppbmRleCAwM2M4MGVlLi5jZjdlMzQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvT3JkZXJlZFNldEV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcmRlcmVkU2V0RXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9PcmRlcmVkU2V0VHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09yZGVyZWRTZXRUeXBlLmphdmEKaW5kZXggMjEyODdhYS4uMjllMTRiNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09yZGVyZWRTZXRUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML09yZGVyZWRTZXRUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9QYXJhbWV0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9QYXJhbWV0ZXIuamF2YQppbmRleCBmYmQxYWY5Li44NjY1YjYwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUGFyYW1ldGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1BhcmFtZXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUHJpbWl0aXZlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUHJpbWl0aXZlLmphdmEKaW5kZXggM2VhOTFmNC4uZDkwMjE3NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ByaW1pdGl2ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9QcmltaXRpdmUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ByaW1pdGl2ZUV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ByaW1pdGl2ZUV4cC5qYXZhCmluZGV4IGZmODIzNWIuLjQ1Yjk3MjcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9QcmltaXRpdmVFeHAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUHJpbWl0aXZlRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Qcm9wZXJ0eUNhbGxFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9Qcm9wZXJ0eUNhbGxFeHAuamF2YQppbmRleCA1NWI4MjhlLi4wMWU5MDMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUHJvcGVydHlDYWxsRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1Byb3BlcnR5Q2FsbEV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUmVhbEV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1JlYWxFeHAuamF2YQppbmRleCA3ZDI2M2ZlLi5mZWM3NzgxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvUmVhbEV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9SZWFsRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9SZWFsVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1JlYWxUeXBlLmphdmEKaW5kZXggNTk0ZWY4Mi4uYzU4MjQyOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1JlYWxUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1JlYWxUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TZXF1ZW5jZUV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NlcXVlbmNlRXhwLmphdmEKaW5kZXggNGFjNGI3MC4uMGRmMjM4MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NlcXVlbmNlRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NlcXVlbmNlRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TZXF1ZW5jZVR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TZXF1ZW5jZVR5cGUuamF2YQppbmRleCBiNjljNDIyLi5hNzMyMDg1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU2VxdWVuY2VUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NlcXVlbmNlVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU2V0RXhwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU2V0RXhwLmphdmEKaW5kZXggMGVmYmFjZi4uMmM4YTE5NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NldEV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TZXRFeHAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NldFR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TZXRUeXBlLmphdmEKaW5kZXggMjJlMzIwYy4uZGNlYmRmMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1NldFR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU2V0VHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU3RyaW5nRXhwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU3RyaW5nRXhwLmphdmEKaW5kZXggNDgyZjkwYi4uMTg2MWQ5ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1N0cmluZ0V4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TdHJpbmdFeHAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1N0cmluZ1R5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TdHJpbmdUeXBlLmphdmEKaW5kZXggNDcyMjU3Yy4uNDJiYjY0MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1N0cmluZ1R5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU3RyaW5nVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvU3VwZXJFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TdXBlckV4cC5qYXZhCmluZGV4IGM5ZmIzNzYuLjI3NjQ2NGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TdXBlckV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9TdXBlckV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVHVwbGVFeHAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZUV4cC5qYXZhCmluZGV4IDFlZTBlN2EuLmU3NDI4OGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZUV4cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZUV4cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVHVwbGVQYXJ0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVHVwbGVQYXJ0LmphdmEKaW5kZXggZmZmMjM0OS4uMjE2NmUwNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1R1cGxlUGFydC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZVBhcnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1R1cGxlVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1R1cGxlVHlwZS5qYXZhCmluZGV4IGFhMjg5ZGIuLjVmNTI2MjUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZVR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVHVwbGVUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZVR5cGVBdHRyaWJ1dGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9UdXBsZVR5cGVBdHRyaWJ1dGUuamF2YQppbmRleCAwMjJhOWIxLi5iYjViM2E5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVHVwbGVUeXBlQXR0cmlidXRlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1R1cGxlVHlwZUF0dHJpYnV0ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVmFyaWFibGVEZWNsYXJhdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ZhcmlhYmxlRGVjbGFyYXRpb24uamF2YQppbmRleCAxZDI1MDA2Li43ZWFkYjVkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvVmFyaWFibGVEZWNsYXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9WYXJpYWJsZURlY2xhcmF0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC9WYXJpYWJsZUV4cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ZhcmlhYmxlRXhwLmphdmEKaW5kZXggMTk3YWYzMi4uYWY1MjgwNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ZhcmlhYmxlRXhwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML1ZhcmlhYmxlRXhwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC91dGlsL09DTEFkYXB0ZXJGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvdXRpbC9PQ0xBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IGMyNTVmYTUuLjM4MGIzMGEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL09DTC91dGlsL09DTEFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML3V0aWwvT0NMQWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vT0NML3V0aWwvT0NMU3dpdGNoLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvdXRpbC9PQ0xTd2l0Y2guamF2YQppbmRleCA1YTk5YThjLi41MmVlZjY0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvdXRpbC9PQ0xTd2l0Y2guamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9PQ0wvdXRpbC9PQ0xTd2l0Y2guamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJpbWl0aXZlVHlwZXMvUHJpbWl0aXZlVHlwZXNGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc0ZhY3RvcnkuamF2YQppbmRleCA1N2VmMTYxLi4zNzY5MmU4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc0ZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc0ZhY3RvcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJpbWl0aXZlVHlwZXMvUHJpbWl0aXZlVHlwZXNQYWNrYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc1BhY2thZ2UuamF2YQppbmRleCA4MTE4NDJkLi5jOWZiNzYxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc1BhY2thZ2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc1BhY2thZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc0ZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vUHJpbWl0aXZlVHlwZXMvUHJpbWl0aXZlVHlwZXNGYWN0b3J5LmphdmEKaW5kZXggOTAwYjkwNi4uOWIxMzg1YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc0ZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1ByaW1pdGl2ZVR5cGVzL1ByaW1pdGl2ZVR5cGVzRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1ByaW1pdGl2ZVR5cGVzL1ByaW1pdGl2ZVR5cGVzUGFja2FnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9QcmltaXRpdmVUeXBlcy9QcmltaXRpdmVUeXBlc1BhY2thZ2UuamF2YQppbmRleCA0Njc2MjJmLi5hNjJlMzVkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1ByaW1pdGl2ZVR5cGVzL1ByaW1pdGl2ZVR5cGVzUGFja2FnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vUHJpbWl0aXZlVHlwZXMvUHJpbWl0aXZlVHlwZXNQYWNrYWdlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vUHJvYmxlbS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9Qcm9ibGVtLmphdmEKaW5kZXggNmI3Mjg4NS4uMjQ2NjMxNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9Qcm9ibGVtLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9Qcm9ibGVtLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vUHJvYmxlbUZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vUHJvYmxlbUZhY3RvcnkuamF2YQppbmRleCA1MTUwMmRiLi42MTliZTYyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1Byb2JsZW1GYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9Qcm9ibGVtRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1Byb2JsZW1QYWNrYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1Byb2JsZW1QYWNrYWdlLmphdmEKaW5kZXggZWY1MTY3ZC4uNWRjNjI2NiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9Qcm9ibGVtUGFja2FnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vUHJvYmxlbVBhY2thZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyLCAyMDE1IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9TZXZlcml0eS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS9TZXZlcml0eS5qYXZhCmluZGV4IDgyYmEzYzYuLjgzMmM5ODMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vU2V2ZXJpdHkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL1NldmVyaXR5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vdXRpbC9Qcm9ibGVtQWRhcHRlckZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vdXRpbC9Qcm9ibGVtQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBiOTBiYzU0Li4yNmNhNTI3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL3V0aWwvUHJvYmxlbUFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS91dGlsL1Byb2JsZW1BZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTUgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL3V0aWwvUHJvYmxlbVN3aXRjaC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vUHJvYmxlbS91dGlsL1Byb2JsZW1Td2l0Y2guamF2YQppbmRleCAwMzhmNDU5Li5hY2RkM2Y1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9Qcm9ibGVtL3V0aWwvUHJvYmxlbVN3aXRjaC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL1Byb2JsZW0vdXRpbC9Qcm9ibGVtU3dpdGNoLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiwgMjAxNSBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL2ludGVybmFsL0J1bmRsZVV0aWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL2ludGVybmFsL0J1bmRsZVV0aWwuamF2YQppbmRleCA1ODkyODI5Li5hNjlhYzA4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9pbnRlcm5hbC9CdW5kbGVVdGlsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vaW50ZXJuYWwvQnVuZGxlVXRpbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL2ludGVybmFsL0J1bmRsZVV0aWxJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvbW1vbi9pbnRlcm5hbC9CdW5kbGVVdGlsSW1wbC5qYXZhCmluZGV4IDI1ZGY2NjkuLjM0NTk1OGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb21tb24vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29tbW9uL2ludGVybmFsL0J1bmRsZVV0aWxJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvbW1vbi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb21tb24vaW50ZXJuYWwvQnVuZGxlVXRpbEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTcgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvYWJvdXQuaHRtbAppbmRleCAyZjBkY2Q3Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5KdW5lIDI0LCAyMDA4PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3BvbS54bWwKaW5kZXggMmZkYTMzMS4uM2Q3Y2FlZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L0F0bEJ1aWxkTGlzdGVuZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvQXRsQnVpbGRMaXN0ZW5lci5qYXZhCmluZGV4IDZkM2JmYjYuLjRjYWEzM2UgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvQXRsQnVpbGRMaXN0ZW5lci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvQXRsQnVpbGRMaXN0ZW5lci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBBbnQgdG9vbGluZwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC9NZXNzYWdlcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC9NZXNzYWdlcy5qYXZhCmluZGV4IDQ3YjJkODkuLjI0NTI2MjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvTWVzc2FnZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L01lc3NhZ2VzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIE1lc3NhZ2VzIGV4dGVybmFsaXphdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC9Qcm9qZWN0TG9nSGFuZGxlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC9Qcm9qZWN0TG9nSGFuZGxlci5qYXZhCmluZGV4IGQzNzU4OTYuLjhiZTI0NWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvUHJvamVjdExvZ0hhbmRsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L1Byb2plY3RMb2dIYW5kbGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFudCB0b29saW5nCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L21lc3NhZ2VzLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L21lc3NhZ2VzLnByb3BlcnRpZXMKaW5kZXggNGQ5ZmExZC4uOGIwYjkxZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC9tZXNzYWdlcy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvbWVzc2FnZXMucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvQVRMTW9kZWxUcmFuc2Zvcm1hdGlvblRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvQVRMTW9kZWxUcmFuc2Zvcm1hdGlvblRhc2suamF2YQppbmRleCA1ZmUzM2MwLi4wY2EzNWMyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL0FUTE1vZGVsVHJhbnNmb3JtYXRpb25UYXNrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9BVExNb2RlbFRyYW5zZm9ybWF0aW9uVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBBbnQgdG9vbGluZwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9BYnN0cmFjdEF0bFRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvQWJzdHJhY3RBdGxUYXNrLmphdmEKaW5kZXggYjRjNjdmMi4uZjdjOWFhOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9BYnN0cmFjdEF0bFRhc2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL0Fic3RyYWN0QXRsVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBBbnQgdG9vbGluZwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9Mb2FkTW9kZWxUYXNrLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL0xvYWRNb2RlbFRhc2suamF2YQppbmRleCBlMmQxMWZlLi40NTQwODdkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL0xvYWRNb2RlbFRhc2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL0xvYWRNb2RlbFRhc2suamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQW50IHRvb2xpbmcKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvU2F2ZU1vZGVsVGFzay5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9TYXZlTW9kZWxUYXNrLmphdmEKaW5kZXggMjQ1ZTA1NC4uYWZhYzU4NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9TYXZlTW9kZWxUYXNrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9TYXZlTW9kZWxUYXNrLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFudCB0b29saW5nCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9DbGFzc3BhdGguamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0NsYXNzcGF0aC5qYXZhCmluZGV4IGQ1OGJlYzQuLjJlMTljZTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0NsYXNzcGF0aC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0NsYXNzcGF0aC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNSBJTlJJQS4gCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6IAogICogICAgIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9FeHRyYWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0V4dHJhY3Rvci5qYXZhCmluZGV4IDAyMzBjODcuLmVmNDZhNmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0V4dHJhY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0V4dHJhY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNSBJTlJJQS4gCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6IAogICogICAgIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9Jbk1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9Jbk1vZGVsLmphdmEKaW5kZXggZWE0MDg1NS4uNmI4YjcwMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvSW5Nb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0luTW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSU5SSUEuIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOiAKICAqICAgICBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvSW5qZWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0luamVjdG9yLmphdmEKaW5kZXggZWYwNzIyZC4uOGVlNDIyYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvSW5qZWN0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9JbmplY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNSBJTlJJQS4gCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6IAogICogICAgIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9MaWJyYXJ5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9MaWJyYXJ5LmphdmEKaW5kZXggZmU0ZGJiNC4uN2Y1ZGJhYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvTGlicmFyeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL0xpYnJhcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSU5SSUEuIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOiAKICAqICAgICBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvT3V0TW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL091dE1vZGVsLmphdmEKaW5kZXggNjU3ODdlYy4uMGI1ZmVmYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvT3V0TW9kZWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9PdXRNb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNSBJTlJJQS4gCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6IAogICogICAgIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9QYXJhbS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvUGFyYW0uamF2YQppbmRleCA1MjRmNThjLi4wNjZkZjBhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9QYXJhbS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL1BhcmFtLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA1IElOUklBLiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAgCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczogCiAgKiAgICAgSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL1BhdGhlbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9QYXRoZWxlbWVudC5qYXZhCmluZGV4IDFjNmYyMjEuLjU3MGY5ZWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL1BhdGhlbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvUGF0aGVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUgSU5SSUEuIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOiAKICAqICAgICBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvU3VwZXJpbXBvc2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9hbnQvdGFza3MvbmVzdGVkL1N1cGVyaW1wb3NlLmphdmEKaW5kZXggYTE4M2Q0Yi4uYjA5MWEwZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2FudC90YXNrcy9uZXN0ZWQvU3VwZXJpbXBvc2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvYW50L3Rhc2tzL25lc3RlZC9TdXBlcmltcG9zZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNSBJTlJJQS4gCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIAotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wIAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wIAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6IAogICogICAgIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvYWJvdXQuaHRtbAppbmRleCAyZjBkY2Q3Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5KdW5lIDI0LCAyMDA4PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3BvbS54bWwKaW5kZXggMDBmZGJjNy4uYWM3ODEyOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GRXh0cmFjdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GRXh0cmFjdG9yLmphdmEKaW5kZXggYjhlZmQzMS4uOWEyYzViNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRkV4dHJhY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9FTUZFeHRyYWN0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GSW5qZWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9FTUZJbmplY3Rvci5qYXZhCmluZGV4IDA4NjFmZGQuLmE3NDFjMmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9FTUZJbmplY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9FTUZJbmplY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9FTUZNb2RlbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRk1vZGVsLmphdmEKaW5kZXggNWViYmMwNi4uZWNhMWFmNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRk1vZGVsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRk1vZGVsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRk1vZGVsRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRk1vZGVsRmFjdG9yeS5qYXZhCmluZGV4IDNkYWM2YjUuLmYzNTYyZjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9FTUZNb2RlbEZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GTW9kZWxGYWN0b3J5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL0VNRlJlZmVyZW5jZU1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GUmVmZXJlbmNlTW9kZWwuamF2YQppbmRleCAzYzU4NjAyLi45ZjhkM2YwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GUmVmZXJlbmNlTW9kZWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvRU1GUmVmZXJlbmNlTW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS5lbWYvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9lbWYvTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9NZXNzYWdlcy5qYXZhCmluZGV4IDRiOGQwZWIuLmFjZmQ2OTcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9NZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBNZXNzYWdlcyBleHRlcm5hbGl6YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLmVtZi9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2VtZi9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL21lc3NhZ2VzLnByb3BlcnRpZXMKaW5kZXggNjU4YTliYy4uMzMyMzJmZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL21lc3NhZ2VzLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUuZW1mL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvZW1mL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwppbmRleCBlMDNmNWU5Li5hYzQ3ZDkwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgorb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBzXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vYWJvdXQuaHRtbAppbmRleCBiNjM4MGQ0Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+U2VwdGVtYmVyIDEsIDIwMDU8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3BvbS54bWwKaW5kZXggMTZmNTMzYy4uNzI2NjI4NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9NZXNzYWdlcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9NZXNzYWdlcy5qYXZhCmluZGV4IGZhNDI2ZDQuLmJiMWNlMWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vTWVzc2FnZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL01lc3NhZ2VzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIE1lc3NhZ2VzIGV4dGVybmFsaXphdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9SZWd1bGFyVk1MYXVuY2hlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9SZWd1bGFyVk1MYXVuY2hlci5qYXZhCmluZGV4IGM2ZDEyZjYuLjQ2ZTNlZWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vUmVndWxhclZNTGF1bmNoZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL1JlZ3VsYXJWTUxhdW5jaGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9hc20vQVNNRXh0cmFjdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01FeHRyYWN0b3IuamF2YQppbmRleCBmN2IzOTRmLi44MTIyMjhhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01FeHRyYWN0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01FeHRyYWN0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01GYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01GYWN0b3J5LmphdmEKaW5kZXggY2ZlNGM2ZS4uYWRhMjBmNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9hc20vQVNNRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vYXNtL0FTTUZhY3RvcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01JbmplY3Rvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9hc20vQVNNSW5qZWN0b3IuamF2YQppbmRleCA4MzMzOTBhLi5hMGM2ODMzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01JbmplY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vYXNtL0FTTUluamVjdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9hc20vQVNNTW9kZWxXcmFwcGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01Nb2RlbFdyYXBwZXIuamF2YQppbmRleCA1ZjExNzU2Li5mZTQyZDI4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01Nb2RlbFdyYXBwZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2FzbS9BU01Nb2RlbFdyYXBwZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2RlYnVnL0FEV1BEZWJ1Z2dlZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9kZWJ1Zy9BRFdQRGVidWdnZWUuamF2YQppbmRleCAyN2Q1YjY4Li5mYTE1MjRhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2RlYnVnL0FEV1BEZWJ1Z2dlZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vZGVidWcvQURXUERlYnVnZ2VlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2RlYnVnL0xvY2FsT2JqZWN0UmVmZXJlbmNlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2RlYnVnL0xvY2FsT2JqZWN0UmVmZXJlbmNlLmphdmEKaW5kZXggOWIwODk4Yi4uNmM1YWVkNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9kZWJ1Zy9Mb2NhbE9iamVjdFJlZmVyZW5jZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vZGVidWcvTG9jYWxPYmplY3RSZWZlcmVuY2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vZGVidWcvTmV0d29ya0RlYnVnZ2VyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL2RlYnVnL05ldHdvcmtEZWJ1Z2dlci5qYXZhCmluZGV4IGNjZGY0NzEuLmMxOWZkN2EgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vZGVidWcvTmV0d29ya0RlYnVnZ2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9kZWJ1Zy9OZXR3b3JrRGVidWdnZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vbWVzc2FnZXMucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvdm0vbWVzc2FnZXMucHJvcGVydGllcwppbmRleCBjMDBmMGU0Li4yYzEyZmQwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL3ZtL21lc3NhZ2VzLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS92bS9tZXNzYWdlcy5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL2Fib3V0Lmh0bWwKaW5kZXggMmYwZGNkNy4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPkp1bmUgMjQsIDIwMDg8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3BvbS54bWwKaW5kZXggNzFkODFlYS4uYWExZWI1ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9BVExDb25zb2xlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL0FUTENvbnNvbGUuamF2YQppbmRleCA2NGQ4ZTFmLi41ODZjODcyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL0FUTENvbnNvbGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL0FUTENvbnNvbGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvQVRMQ29uc29sZVRyYWNrZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvQVRMQ29uc29sZVRyYWNrZXIuamF2YQppbmRleCA3MTcwM2Y1Li43NTVlZGJhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL0FUTENvbnNvbGVUcmFja2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9BVExDb25zb2xlVHJhY2tlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvQVRMQ29yZVVJUGx1Z2luLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL0FUTENvcmVVSVBsdWdpbi5qYXZhCmluZGV4IDc2M2IzZWYuLjRhNTI3NTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvQVRMQ29yZVVJUGx1Z2luLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9BVExDb3JlVUlQbHVnaW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvTWVzc2FnZXMuamF2YQppbmRleCA0YzhlYzRjLi4wMzE1ODE0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL01lc3NhZ2VzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9NZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL0FUTExhdW5jaFNob3J0Y3V0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BVExMYXVuY2hTaG9ydGN1dC5qYXZhCmluZGV4IDRhYTlmM2UuLjY3ZmUzMDkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL0FUTExhdW5jaFNob3J0Y3V0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvQVRMTGF1bmNoU2hvcnRjdXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BZHZhbmNlZFRhYi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvQWR2YW5jZWRUYWIuamF2YQppbmRleCBkMTEwOGQyLi44ZWY5ZmYwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BZHZhbmNlZFRhYi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL0FkdmFuY2VkVGFiLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvQXRsTGF1bmNoQ29uZmlndXJhdGlvbkRlbGVnYXRlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BdGxMYXVuY2hDb25maWd1cmF0aW9uRGVsZWdhdGUuamF2YQppbmRleCAwMGEzN2UyLi4xNDcyYjNjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BdGxMYXVuY2hDb25maWd1cmF0aW9uRGVsZWdhdGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BdGxMYXVuY2hDb25maWd1cmF0aW9uRGVsZWdhdGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvQXRsVGFiR3JvdXAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL0F0bFRhYkdyb3VwLmphdmEKaW5kZXggNDE1NmEzNS4uZDY3MWM0ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvQXRsVGFiR3JvdXAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9BdGxUYWJHcm91cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9NYWluQXRsVGFiLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9NYWluQXRsVGFiLmphdmEKaW5kZXggYmQwNTlmMS4uMmU0MjMyOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvTWFpbkF0bFRhYi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL01haW5BdGxUYWIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBNaWthZWwgQmFyYmVybyAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9SZW1vdGVBdGxDb25maWd1cmF0aW9uRGVsZWdhdGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bENvbmZpZ3VyYXRpb25EZWxlZ2F0ZS5qYXZhCmluZGV4IDRjYTBlMDUuLjgxMWEzMDkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bENvbmZpZ3VyYXRpb25EZWxlZ2F0ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bENvbmZpZ3VyYXRpb25EZWxlZ2F0ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9SZW1vdGVBdGxUYWIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bFRhYi5qYXZhCmluZGV4IDk0MzM1NDQuLjczNDk5NTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bFRhYi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bFRhYi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9SZW1vdGVBdGxUYWJHcm91cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9sYXVuY2gvUmVtb3RlQXRsVGFiR3JvdXAuamF2YQppbmRleCAxZjNkYTQ4Li5jNmE2MTk2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL2xhdW5jaC9SZW1vdGVBdGxUYWJHcm91cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbGF1bmNoL1JlbW90ZUF0bFRhYkdyb3VwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbWVzc2FnZXMucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvdWkvbWVzc2FnZXMucHJvcGVydGllcwppbmRleCBmNjAzNWFjLi4yZjQ0OTJhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3VpL21lc3NhZ2VzLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS91aS9tZXNzYWdlcy5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL2Fib3V0Lmh0bWwKaW5kZXggMmYwZGNkNy4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPkp1bmUgMjQsIDIwMDg8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3BvbS54bWwKaW5kZXggNjhlZDMwMS4uZDIyODkwYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9BVExDb3JlRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0FUTENvcmVFeGNlcHRpb24uamF2YQppbmRleCBkMzY2MWEwLi41ZmVjZmQ0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0FUTENvcmVFeGNlcHRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0FUTENvcmVFeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0lFeHRyYWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSUV4dHJhY3Rvci5qYXZhCmluZGV4IDBhYTVkNTEuLmM4NzRkZDMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSUV4dHJhY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSUV4dHJhY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSUluamVjdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0lJbmplY3Rvci5qYXZhCmluZGV4IGFlMThmM2IuLjFmMDIwODggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSUluamVjdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9JSW5qZWN0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIsIDIwMTQgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0lNb2RlbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9JTW9kZWwuamF2YQppbmRleCAxOGViNTgzLi4yNjIzZTNhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0lNb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSU1vZGVsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9JUmVmZXJlbmNlTW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvSVJlZmVyZW5jZU1vZGVsLmphdmEKaW5kZXggMTQ0NjVkNC4uMzBhMWU4YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9JUmVmZXJlbmNlTW9kZWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL0lSZWZlcmVuY2VNb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvTW9kZWxGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL01vZGVsRmFjdG9yeS5qYXZhCmluZGV4IDIyMjA3ZjUuLjFlYWIxNWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvTW9kZWxGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9Nb2RlbEZhY3RvcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL2xhdW5jaC9JTGF1bmNoZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvbGF1bmNoL0lMYXVuY2hlci5qYXZhCmluZGV4IDZmMzY4MWYuLjQxNmE0NzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvbGF1bmNoL0lMYXVuY2hlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvbGF1bmNoL0lMYXVuY2hlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvc2VydmljZS9Db3JlU2VydmljZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9zZXJ2aWNlL0NvcmVTZXJ2aWNlLmphdmEKaW5kZXggYWFkOTE5Yi4uMjY5NTcyMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9zZXJ2aWNlL0NvcmVTZXJ2aWNlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9zZXJ2aWNlL0NvcmVTZXJ2aWNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9zZXJ2aWNlL0xhdW5jaGVyU2VydmljZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvY29yZS9zZXJ2aWNlL0xhdW5jaGVyU2VydmljZS5qYXZhCmluZGV4IDAwYjg2OTIuLmJkZDM4YTcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2NvcmUvc2VydmljZS9MYXVuY2hlclNlcnZpY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9jb3JlL3NlcnZpY2UvTGF1bmNoZXJTZXJ2aWNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL2Fib3V0Lmh0bWwKaW5kZXggYjYzODBkNC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPlNlcHRlbWJlciAxLCAyMDA1PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9wb20ueG1sCmluZGV4IGE0ZjhiYWEuLjlhY2Q5OWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsQnJlYWtwb2ludC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxCcmVha3BvaW50LmphdmEKaW5kZXggMzkzMDI0MC4uMjU0OTMzZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxCcmVha3BvaW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxCcmVha3BvaW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsQ29yZURlYnVnUGx1Z2luLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bENvcmVEZWJ1Z1BsdWdpbi5qYXZhCmluZGV4IGQyMzViZjQuLjllYWRhYzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsQ29yZURlYnVnUGx1Z2luLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxDb3JlRGVidWdQbHVnaW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bERlYnVnRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxEZWJ1Z0VsZW1lbnQuamF2YQppbmRleCBkYzE5MmRlLi41ZDU5OWFkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bERlYnVnRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRGVidWdFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRGVidWdNb2RlbENvbnN0YW50cy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxEZWJ1Z01vZGVsQ29uc3RhbnRzLmphdmEKaW5kZXggYmQ5Y2NlYS4uZWNlYTkyNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxEZWJ1Z01vZGVsQ29uc3RhbnRzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxEZWJ1Z01vZGVsQ29uc3RhbnRzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRGVidWdUYXJnZXQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRGVidWdUYXJnZXQuamF2YQppbmRleCA2MjRkNmUxLi5kYjZiYjdlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bERlYnVnVGFyZ2V0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxEZWJ1Z1RhcmdldC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bEV4cHJlc3Npb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRXhwcmVzc2lvbi5qYXZhCmluZGV4IGQxZGNlZTIuLjgwYzI5YTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRXhwcmVzc2lvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsRXhwcmVzc2lvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bFJ1blRhcmdldC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxSdW5UYXJnZXQuamF2YQppbmRleCBhNTU0MjRhLi5iMGI0NjMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bFJ1blRhcmdldC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsUnVuVGFyZ2V0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsU291cmNlTG9jYXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxTb3VyY2VMb2NhdG9yLmphdmEKaW5kZXggZjdhZGIxZC4uOTQxZDYxYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxTb3VyY2VMb2NhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxTb3VyY2VMb2NhdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsU3RhY2tGcmFtZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxTdGFja0ZyYW1lLmphdmEKaW5kZXggOWFlMzFmOS4uYjk3ZTJmNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxTdGFja0ZyYW1lLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxTdGFja0ZyYW1lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsVGhyZWFkLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bFRocmVhZC5qYXZhCmluZGV4IDU4M2JiNjAuLmRmOWNmZjUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsVGhyZWFkLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxUaHJlYWQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxWYXJpYWJsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxWYXJpYWJsZS5qYXZhCmluZGV4IDZmNTczNDQuLjkxNGNiMDMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsVmFyaWFibGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bFZhcmlhYmxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsV2F0Y2hFeHByZXNzaW9uRGVsZWdhdGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvQXRsV2F0Y2hFeHByZXNzaW9uRGVsZWdhdGUuamF2YQppbmRleCA3ODI5ZmE1Li4zZDVhNDg0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL0F0bFdhdGNoRXhwcmVzc2lvbkRlbGVnYXRlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9BdGxXYXRjaEV4cHJlc3Npb25EZWxlZ2F0ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL01lc3NhZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL01lc3NhZ2VzLmphdmEKaW5kZXggNjBiMDE1Yy4uYmZiOGQ5NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvTWVzc2FnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQURXUC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL0FEV1AuamF2YQppbmRleCA3ZGE0NTY4Li4wNDA3M2U4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQURXUC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BRFdQLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQURXUENvbW1hbmQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BRFdQQ29tbWFuZC5qYXZhCmluZGV4IGNhZWRmZjcuLmUxZGFmY2MgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BRFdQQ29tbWFuZC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BRFdQQ29tbWFuZC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL0FEV1BEZWJ1Z2dlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL0FEV1BEZWJ1Z2dlci5qYXZhCmluZGV4IGIwYjRjZTkuLmJlMTU2MTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BRFdQRGVidWdnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQURXUERlYnVnZ2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQXRsTWFwVmFsdWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BdGxNYXBWYWx1ZS5qYXZhCmluZGV4IDViYjhjYjMuLjc0ZTU3NmMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BdGxNYXBWYWx1ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BdGxNYXBWYWx1ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQXRsVmFsdWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BdGxWYWx1ZS5qYXZhCmluZGV4IGYxNDI2ZjYuLmUxODFmODUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BdGxWYWx1ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9BdGxWYWx1ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQm9vbGVhblZhbHVlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvQm9vbGVhblZhbHVlLmphdmEKaW5kZXggNjQzZjdjMS4uZTJkYjE1NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL0Jvb2xlYW5WYWx1ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9Cb29sZWFuVmFsdWUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9JbnRlZ2VyVmFsdWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9JbnRlZ2VyVmFsdWUuamF2YQppbmRleCAxNDEzZDE0Li5mZjA4NzhiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvSW50ZWdlclZhbHVlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL0ludGVnZXJWYWx1ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL051bGxWYWx1ZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL051bGxWYWx1ZS5qYXZhCmluZGV4IDc0OTNlZjAuLmUxZjljODQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9OdWxsVmFsdWUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvTnVsbFZhbHVlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvT2JqZWN0UmVmZXJlbmNlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvT2JqZWN0UmVmZXJlbmNlLmphdmEKaW5kZXggMTI3OTYwNy4uZDNkMjk5OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL09iamVjdFJlZmVyZW5jZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9PYmplY3RSZWZlcmVuY2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9SZWFsVmFsdWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9SZWFsVmFsdWUuamF2YQppbmRleCA5NGZjYTRmLi43Mzc4MjZkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvUmVhbFZhbHVlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL1JlYWxWYWx1ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL1JlbW90ZU9iamVjdFJlZmVyZW5jZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL1JlbW90ZU9iamVjdFJlZmVyZW5jZS5qYXZhCmluZGV4IGE0MWU1ZmQuLmFmNzAwMTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9SZW1vdGVPYmplY3RSZWZlcmVuY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvUmVtb3RlT2JqZWN0UmVmZXJlbmNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvU3RyaW5nVmFsdWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9TdHJpbmdWYWx1ZS5qYXZhCmluZGV4IGFkNWU4YjQuLjllNzZlMTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9TdHJpbmdWYWx1ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvYWR3cC9TdHJpbmdWYWx1ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9hZHdwL1ZhbHVlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvVmFsdWUuamF2YQppbmRleCAxYjZhYjI3Li5lNjU0ZmNmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvVmFsdWUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL2Fkd3AvVmFsdWUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvbWVzc2FnZXMucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kZWJ1Zy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RlYnVnL2NvcmUvbWVzc2FnZXMucHJvcGVydGllcwppbmRleCBkMDEwYTQwLi42NzI3YWNjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZGVidWcuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kZWJ1Zy9jb3JlL21lc3NhZ2VzLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRlYnVnLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZGVidWcvY29yZS9tZXNzYWdlcy5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9hYm91dC5odG1sCmluZGV4IGI2MzgwZDQuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+U2VwdGVtYmVyIDEsIDIwMDU8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9wb20ueG1sCmluZGV4IGE1ODZmZGUuLmFiZWMyNTMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9BU01FTUZNb2RlbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvQVNNRU1GTW9kZWwuamF2YQppbmRleCA4OGRjNDM1Li4yMTk0NmUxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9BU01FTUZNb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL0FTTUVNRk1vZGVsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBIGFuZCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9BU01FTUZNb2RlbEVsZW1lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL0FTTUVNRk1vZGVsRWxlbWVudC5qYXZhCmluZGV4IGJkM2RjYzguLjhjOGE5MTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL0FTTUVNRk1vZGVsRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL0FTTUVNRk1vZGVsRWxlbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQSBhbmQgb3RoZXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvQXRsRU1GTW9kZWxIYW5kbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9BdGxFTUZNb2RlbEhhbmRsZXIuamF2YQppbmRleCBkZTg5NDg1Li41NGNiMTFjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9BdGxFTUZNb2RlbEhhbmRsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9BdGxFTUZNb2RlbEhhbmRsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvRU1GTW9kZWxMb2FkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL0VNRk1vZGVsTG9hZGVyLmphdmEKaW5kZXggZjJkYzgzYS4uMzNiZTU5MyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvRU1GTW9kZWxMb2FkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9FTUZNb2RlbExvYWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9wYWNrYWdlLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC9wYWNrYWdlLmh0bWwKaW5kZXggNWRiZjBjNy4uMGYzOWE4ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvcGFja2FnZS5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL3BhY2thZ2UuaHRtbApAQCAtNiw5ICs2LDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC90Y3MvZXh0cmFjdG9yL0FTTU1vZGVsQWRhcHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2V4dHJhY3Rvci9BU01Nb2RlbEFkYXB0ZXIuamF2YQppbmRleCAwODVjYTYwLi43NzdhZjBjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC90Y3MvZXh0cmFjdG9yL0FTTU1vZGVsQWRhcHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL3Rjcy9leHRyYWN0b3IvQVNNTW9kZWxBZGFwdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2V4dHJhY3Rvci9UQ1NFeHRyYWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL3Rjcy9leHRyYWN0b3IvVENTRXh0cmFjdG9yLmphdmEKaW5kZXggZjJlMDZlZi4uMDc2ZDRjMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2V4dHJhY3Rvci9UQ1NFeHRyYWN0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDUsIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL3Rjcy9pbmplY3Rvci9BU01Nb2RlbEFkYXB0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL3Rjcy9pbmplY3Rvci9BU01Nb2RlbEFkYXB0ZXIuamF2YQppbmRleCAxNGYxYzEyLi4wZTI1YTcxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5lbWY0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvZW1mNGF0bC90Y3MvaW5qZWN0b3IvQVNNTW9kZWxBZGFwdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2luamVjdG9yL0FTTU1vZGVsQWRhcHRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLmVtZjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9lbWY0YXRsL3Rjcy9pbmplY3Rvci9UQ1NJbmplY3Rvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2luamVjdG9yL1RDU0luamVjdG9yLmphdmEKaW5kZXggODI5MTA1MS4uMDM1YWE1YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2luamVjdG9yL1RDU0luamVjdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMuZW1mNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL2VtZjRhdGwvdGNzL2luamVjdG9yL1RDU0luamVjdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwNCwgMjAwOCwgMjAxNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvYWJvdXQuaHRtbAppbmRleCAyYjliY2ZiLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5NYXkgMzAsIDIwMDc8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2VwbC12MTAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTA3M2EuLjAwMDAwMDAKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2VwbC12MTAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwNCArMCwwIEBACi08IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL1czQy8vRFREIEhUTUwgNC4wLy9FTiI+Ci08aHRtbCB4bWxuczpvPSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTpvZmZpY2UiCi14bWxuczp3PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOm9mZmljZTp3b3JkIgoteG1sbnM9Imh0dHA6Ly93d3cudzMub3JnL1RSL1JFQy1odG1sNDAiPgotCi08aGVhZD4KLTxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotPGxpbmsgcmVsPUZpbGUtTGlzdAotaHJlZj0iLi9FY2xpcHNlJTIwRVBMJTIwMjAwM18xMV8xMCUyMEZpbmFsX2ZpbGVzL2ZpbGVsaXN0LnhtbCI+Ci08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTxzdHlsZT4KLTwhLS0KLSAvKiBGb250IERlZmluaXRpb25zICovCi1AZm9udC1mYWNlCi0JewotCXBhbm9zZS0xOjIgMTEgNiA0IDMgNSA0IDQgMiA0OwotCW1zby1mb250LWNoYXJzZXQ6MDsKLQltc28tZm9udC1waXRjaDp2YXJpYWJsZTsKLQltc28tZm9udC1zaWduYXR1cmU6NTUzNjc5NDk1IC0yMTQ3NDgzNjQ4IDggMCA2NjA0NyAwO30KLSAvKiBTdHlsZSBEZWZpbml0aW9ucyAqLwotcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2Lk1zb05vcm1hbAotCXttc28tc3R5bGUtcGFyZW50OiIiOwotCW1hcmdpbjowaW47Ci0JbWFyZ2luLWJvdHRvbTouMDAwMXB0OwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAKLQl7bWFyZ2luLXJpZ2h0OjBpbjsKLQltc28tbWFyZ2luLXRvcC1hbHQ6YXV0bzsKLQltc28tbWFyZ2luLWJvdHRvbS1hbHQ6YXV0bzsKLQltYXJnaW4tbGVmdDowaW47Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZToxMi4wcHQ7Ci0JfQotcC5CYWxsb29uVGV4dCwgbGkuQmFsbG9vblRleHQsIGRpdi5CYWxsb29uVGV4dAotCXttc28tc3R5bGUtbmFtZToiQmFsbG9vbiBUZXh0IjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjguMHB0OwotCQotCX0KLUBwYWdlIFNlY3Rpb24xCi0Je3NpemU6OC41aW4gMTEuMGluOwotCW1hcmdpbjoxLjBpbiAxLjI1aW4gMS4waW4gMS4yNWluOwotCW1zby1oZWFkZXItbWFyZ2luOi41aW47Ci0JbXNvLWZvb3Rlci1tYXJnaW46LjVpbjsKLQltc28tcGFwZXItc291cmNlOjA7fQotZGl2LlNlY3Rpb24xCi0Je3BhZ2U6U2VjdGlvbjE7fQotLS0+Ci08L3N0eWxlPgotPC9oZWFkPgotCi08Ym9keSBsYW5nPSJFTi1VUyIgc3R5bGU9J3RhYi1pbnRlcnZhbDouNWluJz4KLQotPGRpdiBjbGFzcz1TZWN0aW9uMT4KLQotPHAgYWxpZ249Y2VudGVyIHN0eWxlPSd0ZXh0LWFsaWduOmNlbnRlcic+PGI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9iPgotPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSCi1USEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLAotUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFCi1PRiBUSElTIEFHUkVFTUVOVC48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjEuIERFRklOSVRJT05TPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0aW9uJnF1b3Q7IG1lYW5zOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvZGUgYW5kIGRvY3VtZW50YXRpb24KLWRpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQ8YnIgY2xlYXI9bGVmdD4KLWIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1hZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+d2hlcmUKLXN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tIGFuZCBhcmUgZGlzdHJpYnV0ZWQKLWJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24gJ29yaWdpbmF0ZXMnIGZyb20gYSBDb250cmlidXRvcgotaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24KLXN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgYWRkaXRpb25zIHRvIHRoZQotUHJvZ3JhbSB3aGljaDogKGkpIGFyZSBzZXBhcmF0ZSBtb2R1bGVzIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkIGluIGNvbmp1bmN0aW9uCi13aXRoIHRoZSBQcm9ncmFtIHVuZGVyIHRoZWlyIG93biBsaWNlbnNlIGFncmVlbWVudCwgYW5kIChpaSkgYXJlIG5vdCBkZXJpdmF0aXZlCi13b3JrcyBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dG9yJnF1b3Q7IG1lYW5zIGFueSBwZXJzb24gb3IKLWVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7TGljZW5zZWQgUGF0ZW50cyAmcXVvdDsgbWVhbiBwYXRlbnQKLWNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2ggYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlCi1vciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UHJvZ3JhbSZxdW90OyBtZWFucyB0aGUgQ29udHJpYnV0aW9ucwotZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMgQWdyZWVtZW50Ljwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7UmVjaXBpZW50JnF1b3Q7IG1lYW5zIGFueW9uZSB3aG8KLXJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjIuIEdSQU5UIE9GIFJJR0hUUzwvc3Bhbj48L2I+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50Ci1hIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodCBsaWNlbnNlIHRvPHNwYW4KLXN0eWxlPSdjb2xvcjpyZWQnPiA8L3NwYW4+cmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5Ci1kaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlCi1mb3JtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzCi1SZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsPHNwYW4gc3R5bGU9J2NvbG9yOmdyZWVuJz4gPC9zcGFuPnJveWFsdHktZnJlZQotcGF0ZW50IGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsIGltcG9ydAotYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbgotb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQKLWJ5IHRoZSBDb250cmlidXRvciwgc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uCi10byBiZSBjb3ZlcmVkIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvCi1hbnkgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmMpCi1SZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUgbGljZW5zZXMgdG8gaXRzCi1Db250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvcgotdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eQotcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCi1wcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMgYW5kCi1saWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZSByZXNwb25zaWJpbGl0eQotdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwgaWYgYW55LiBGb3IgZXhhbXBsZSwKLWlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8gYWxsb3cgUmVjaXBpZW50IHRvIGRpc3RyaWJ1dGUKLXRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUKLWRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5kKQotRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudCBjb3B5cmlnaHQKLXJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQgbGljZW5zZSBzZXQgZm9ydGggaW4KLXRoaXMgQWdyZWVtZW50LiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+My4gUkVRVUlSRU1FTlRTPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlCi1Qcm9ncmFtIGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3NwYW4+Ci08L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudDsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLWl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pKQotZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCB3YXJyYW50aWVzIGFuZAotY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiB0aXRsZQotYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkKLWFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWkpCi1lZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLAotaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaAotYXMgbG9zdCBwcm9maXRzOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paWkpCi1zdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0Ci1Db250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsgYW5kPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aXYpCi1zdGF0ZXMgdGhhdCBzb3VyY2UgY29kZSBmb3IgdGhlIFByb2dyYW0gaXMgYXZhaWxhYmxlIGZyb20gc3VjaCBDb250cmlidXRvciwgYW5kCi1pbmZvcm1zIGxpY2Vuc2VlcyBob3cgdG8gb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhCi1tZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2UuPHNwYW4gc3R5bGU9J2NvbG9yOmJsdWUnPiA8L3NwYW4+PC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlCi1jb2RlIGZvcm06PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikgYQotY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueQotY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlCi1vcmlnaW5hdG9yIG9mIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cwotc3Vic2VxdWVudCBSZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heQotYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycwotYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2UKLW9mIHRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbAotbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKCZxdW90O0NvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyCi1Db250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQKLWNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIKLWxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvCi10aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluCi1jb25uZWN0aW9uIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdAotb2ZmZXJpbmcuIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIKLXRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IKLXRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwgdGhlIGRlZmVuc2UgYW5kCi1hbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZQotaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUKLVByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCi1jbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCi13YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4gVW5kZXIgdGhpcwotc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlCi1vdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhCi1jb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUKLUNvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjUuIE5PIFdBUlJBTlRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiAmcXVvdDtBUyBJUyZxdW90OyBCQVNJUywgV0lUSE9VVAotV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKLVdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKLU1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMgc29sZWx5Ci1yZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQgZGlzdHJpYnV0aW5nIHRoZQotUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cyBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcwotQWdyZWVtZW50ICwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLAotY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IKLWVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IKLUFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLU9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRgotVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRgotVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3NwYW4+IDwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjcuIEdFTkVSQUw8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQKLW9yIHVuZW5mb3JjZWFibGUgdW5kZXIgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yCi1lbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQKLWZ1cnRoZXIgYWN0aW9uIGJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlCi1taW5pbXVtIGV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbgotYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KQotYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aAotb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlCi1zdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50Ci1zaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvcgotY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlCi1wZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncwotcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZQotY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQKLVN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZgotdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMKLXRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwKLUFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQotKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlcgotZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdAotZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+VGhpcyBBZ3JlZW1lbnQgaXMgZ292ZXJuZWQgYnkgdGhlIGxhd3Mgb2YgdGhlCi1TdGF0ZSBvZiBOZXcgWW9yayBhbmQgdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBsYXdzIG9mIHRoZSBVbml0ZWQgU3RhdGVzIG9mCi1BbWVyaWNhLiBObyBwYXJ0eSB0byB0aGlzIEFncmVlbWVudCB3aWxsIGJyaW5nIGEgbGVnYWwgYWN0aW9uIHVuZGVyIHRoaXMKLUFncmVlbWVudCBtb3JlIHRoYW4gb25lIHllYXIgYWZ0ZXIgdGhlIGNhdXNlIG9mIGFjdGlvbiBhcm9zZS4gRWFjaCBwYXJ0eSB3YWl2ZXMKLWl0cyByaWdodHMgdG8gYSBqdXJ5IHRyaWFsIGluIGFueSByZXN1bHRpbmcgbGl0aWdhdGlvbi48L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsPjwvcD4KLQotPC9kaXY+Ci0KLTwvYm9keT4KLQotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9lcGwtdjIwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvZXBsLXYyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvZXBsLXYyMC5odG1sCkBAIC0wLDAgKzEsMzAwIEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8IS0tIHNhdmVkIGZyb20gdXJsPSgwMDU4KWh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL29yZy9kb2N1bWVudHMvZXBsLTIuMC9FUEwtMi4wLmh0bWwgLS0+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sOmxhbmc9ImVuIiBsYW5nPSJlbiI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPgorICAgIAorICAgIDx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAyLjA8L3RpdGxlPgorICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICBib2R5IHsKKyAgICAgICAgbWFyZ2luOiAxLjVlbSAzZW07CisgICAgICB9CisgICAgICBoMXsKKyAgICAgICAgZm9udC1zaXplOjEuNWVtOworICAgICAgfQorICAgICAgaDJ7CisgICAgICAgIGZvbnQtc2l6ZToxZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206MC41ZW07CisgICAgICAgIG1hcmdpbi10b3A6MWVtOworICAgICAgfQorICAgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07CisgICAgICB9CisgICAgICB1bCwgb2x7CisgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTpub25lOworICAgICAgfQorICAgIDwvc3R5bGU+CisgIDwvaGVhZD4KKyAgPGJvZHk+CisgICAgPGgxPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDIuMDwvaDE+CisgICAgPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKKyAgICAgIFBVQkxJQyBMSUNFTlNFICjigJxBR1JFRU1FTlTigJ0pLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OCisgICAgICBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQnUyBBQ0NFUFRBTkNFIE9GIFRISVMgQUdSRUVNRU5ULgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRlZmluaXRpb25zIj4xLiBERUZJTklUSU9OUzwvaDI+CisgICAgPHA+4oCcQ29udHJpYnV0aW9u4oCdIG1lYW5zOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaW4gdGhlIGNhc2Ugb2YgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IsIHRoZSBpbml0aWFsIGNvbnRlbnQKKyAgICAgICAgRGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgICAgd2hlcmUgc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20KKyAgICAgICAgYW5kIGFyZSBEaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCisgICAgICAgIOKAnG9yaWdpbmF0ZXPigJ0gZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2ggQ29udHJpYnV0b3IncyBiZWhhbGYuCisgICAgICAgIENvbnRyaWJ1dGlvbnMgZG8gbm90IGluY2x1ZGUgY2hhbmdlcyBvciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gdGhhdAorICAgICAgICBhcmUgbm90IE1vZGlmaWVkIFdvcmtzLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPuKAnENvbnRyaWJ1dG9y4oCdIG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9wPgorICAgIDxwPuKAnExpY2Vuc2VkIFBhdGVudHPigJ0gbWVhbiBwYXRlbnQgY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaAorICAgICAgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGUgdXNlIG9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZQorICAgICAgb3Igd2hlbiBjb21iaW5lZCB3aXRoIHRoZSBQcm9ncmFtLgorICAgIDwvcD4KKyAgICA8cD7igJxQcm9ncmFt4oCdIG1lYW5zIHRoZSBDb250cmlidXRpb25zIERpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzCisgICAgICBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxwPuKAnFJlY2lwaWVudOKAnSBtZWFucyBhbnlvbmUgd2hvIHJlY2VpdmVzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICBvciBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UgKGFzIGFwcGxpY2FibGUpLCBpbmNsdWRpbmcgQ29udHJpYnV0b3JzLgorICAgIDwvcD4KKyAgICA8cD7igJxEZXJpdmF0aXZlIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmssIHdoZXRoZXIgaW4gU291cmNlIENvZGUgb3Igb3RoZXIKKyAgICAgIGZvcm0sIHRoYXQgaXMgYmFzZWQgb24gKG9yIGRlcml2ZWQgZnJvbSkgdGhlIFByb2dyYW0gYW5kIGZvciB3aGljaCB0aGUKKyAgICAgIGVkaXRvcmlhbCByZXZpc2lvbnMsIGFubm90YXRpb25zLCBlbGFib3JhdGlvbnMsIG9yIG90aGVyIG1vZGlmaWNhdGlvbnMKKyAgICAgIHJlcHJlc2VudCwgYXMgYSB3aG9sZSwgYW4gb3JpZ2luYWwgd29yayBvZiBhdXRob3JzaGlwLgorICAgIDwvcD4KKyAgICA8cD7igJxNb2RpZmllZCBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0gdGhhdAorICAgICAgcmVzdWx0cyBmcm9tIGFuIGFkZGl0aW9uIHRvLCBkZWxldGlvbiBmcm9tLCBvciBtb2RpZmljYXRpb24gb2YgdGhlCisgICAgICBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbSwgaW5jbHVkaW5nLCBmb3IgcHVycG9zZXMgb2YgY2xhcml0eSBhbnkgbmV3IGZpbGUKKyAgICAgIGluIFNvdXJjZSBDb2RlIGZvcm0gdGhhdCBjb250YWlucyBhbnkgY29udGVudHMgb2YgdGhlIFByb2dyYW0uIE1vZGlmaWVkCisgICAgICBXb3JrcyBzaGFsbCBub3QgaW5jbHVkZSB3b3JrcyB0aGF0IGNvbnRhaW4gb25seSBkZWNsYXJhdGlvbnMsIGludGVyZmFjZXMsCisgICAgICB0eXBlcywgY2xhc3Nlcywgc3RydWN0dXJlcywgb3IgZmlsZXMgb2YgdGhlIFByb2dyYW0gc29sZWx5IGluIGVhY2ggY2FzZQorICAgICAgaW4gb3JkZXIgdG8gbGluayB0bywgYmluZCBieSBuYW1lLCBvciBzdWJjbGFzcyB0aGUgUHJvZ3JhbSBvciBNb2RpZmllZAorICAgICAgV29ya3MgdGhlcmVvZi4KKyAgICA8L3A+CisgICAgPHA+4oCcRGlzdHJpYnV0ZeKAnSBtZWFucyB0aGUgYWN0cyBvZiBhKSBkaXN0cmlidXRpbmcgb3IgYikgbWFraW5nIGF2YWlsYWJsZQorICAgICAgaW4gYW55IG1hbm5lciB0aGF0IGVuYWJsZXMgdGhlIHRyYW5zZmVyIG9mIGEgY29weS4KKyAgICA8L3A+CisgICAgPHA+4oCcU291cmNlIENvZGXigJ0gbWVhbnMgdGhlIGZvcm0gb2YgYSBQcm9ncmFtIHByZWZlcnJlZCBmb3IgbWFraW5nCisgICAgICBtb2RpZmljYXRpb25zLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLAorICAgICAgZG9jdW1lbnRhdGlvbiBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorICAgIDwvcD4KKyAgICA8cD7igJxTZWNvbmRhcnkgTGljZW5zZeKAnSBtZWFucyBlaXRoZXIgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAorICAgICAgVmVyc2lvbiAyLjAsIG9yIGFueSBsYXRlciB2ZXJzaW9ucyBvZiB0aGF0IGxpY2Vuc2UsIGluY2x1ZGluZyBhbnkKKyAgICAgIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBhcyBpZGVudGlmaWVkIGJ5IHRoZSBpbml0aWFsCisgICAgICBDb250cmlidXRvci4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJncmFudC1vZi1yaWdodHMiPjIuIEdSQU5UIE9GIFJJR0hUUzwvaDI+CisgICAgPHVsPgorICAgICAgPGxpPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIERlcml2YXRpdmUgV29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCisgICAgICAgIHB1YmxpY2x5IHBlcmZvcm0sIERpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCisgICAgICAgIENvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIERlcml2YXRpdmUgV29ya3MuCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieQorICAgICAgICBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50CisgICAgICAgIGxpY2Vuc2UgdW5kZXIgTGljZW5zZWQgUGF0ZW50cyB0byBtYWtlLCB1c2UsIHNlbGwsIG9mZmVyIHRvIHNlbGwsCisgICAgICAgIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwKKyAgICAgICAgaWYgYW55LCBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtLiBUaGlzIHBhdGVudCBsaWNlbnNlIHNoYWxsCisgICAgICAgIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwKKyAgICAgICAgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2gKKyAgICAgICAgYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbiB0byBiZSBjb3ZlcmVkCisgICAgICAgIGJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueQorICAgICAgICBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIKKyAgICAgICAgc2UgaXMgbGljZW5zZWQgaGVyZXVuZGVyLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yIGdyYW50cyB0aGUKKyAgICAgICAgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUKKyAgICAgICAgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCisgICAgICAgIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuCisgICAgICAgIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50IGZvciBjbGFpbXMKKyAgICAgICAgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKKyAgICAgICAgcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzCisgICAgICAgIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaCBSZWNpcGllbnQgaGVyZWJ5IGFzc3VtZXMgc29sZQorICAgICAgICByZXNwb25zaWJpbGl0eSB0byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLAorICAgICAgICBpZiBhbnkuIEZvciBleGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvCisgICAgICAgIGFsbG93IFJlY2lwaWVudCB0byBEaXN0cmlidXRlIHRoZSBQcm9ncmFtLCBpdCBpcyBSZWNpcGllbnQncworICAgICAgICByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlIHRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5kKSBFYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50CisgICAgICAgIGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0CisgICAgICAgIGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LgorICAgICAgPC9saT4KKyAgICAgIDxsaT5lKSBOb3R3aXRoc3RhbmRpbmcgdGhlIHRlcm1zIG9mIGFueSBTZWNvbmRhcnkgTGljZW5zZSwgbm8gQ29udHJpYnV0b3IKKyAgICAgICAgbWFrZXMgYWRkaXRpb25hbCBncmFudHMgdG8gYW55IFJlY2lwaWVudCAob3RoZXIgdGhhbiB0aG9zZSBzZXQgZm9ydGgKKyAgICAgICAgaW4gdGhpcyBBZ3JlZW1lbnQpIGFzIGEgcmVzdWx0IG9mIHN1Y2ggUmVjaXBpZW50J3MgcmVjZWlwdCBvZiB0aGUKKyAgICAgICAgUHJvZ3JhbSB1bmRlciB0aGUgdGVybXMgb2YgYSBTZWNvbmRhcnkgTGljZW5zZSAoaWYgcGVybWl0dGVkIHVuZGVyCisgICAgICAgIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDMpLgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxoMiBpZD0icmVxdWlyZW1lbnRzIj4zLiBSRVFVSVJFTUVOVFM8L2gyPgorICAgIDxwPjMuMSBJZiBhIENvbnRyaWJ1dG9yIERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtIGluIGFueSBmb3JtLCB0aGVuOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgdGhlIFByb2dyYW0gbXVzdCBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIGFzIFNvdXJjZSBDb2RlLCBpbgorICAgICAgICBhY2NvcmRhbmNlIHdpdGggc2VjdGlvbiAzLjIsIGFuZCB0aGUgQ29udHJpYnV0b3IgbXVzdCBhY2NvbXBhbnkKKyAgICAgICAgdGhlIFByb2dyYW0gd2l0aCBhIHN0YXRlbWVudCB0aGF0IHRoZSBTb3VyY2UgQ29kZSBmb3IgdGhlIFByb2dyYW0KKyAgICAgICAgaXMgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQgaW5mb3JtcyBSZWNpcGllbnRzIGhvdyB0bworICAgICAgICBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5CisgICAgICAgIHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlOyBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIHRoZSBDb250cmlidXRvciBtYXkgRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSB1bmRlciBhIGxpY2Vuc2UKKyAgICAgICAgZGlmZmVyZW50IHRoYW4gdGhpcyBBZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQgc3VjaCBsaWNlbnNlOgorICAgICAgICA8dWw+CisgICAgICAgICAgPGxpPmkpIGVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIHdhcnJhbnRpZXMgYW5kIGNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIHRpdGxlIGFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzCisgICAgICAgICAgICBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eSBhbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgbGlhYmlsaXR5IGZvciBkYW1hZ2VzLCBpbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbAorICAgICAgICAgICAgYW5kIGNvbnNlcXVlbnRpYWwgZGFtYWdlcywgc3VjaCBhcyBsb3N0IHByb2ZpdHM7CisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aWlpKSBkb2VzIG5vdCBhdHRlbXB0IHRvIGxpbWl0IG9yIGFsdGVyIHRoZSByZWNpcGllbnRzJyByaWdodHMgaW4gdGhlCisgICAgICAgICAgICBTb3VyY2UgQ29kZSB1bmRlciBzZWN0aW9uIDMuMjsgYW5kCisgICAgICAgICAgPC9saT4KKyAgICAgICAgICA8bGk+aXYpIHJlcXVpcmVzIGFueSBzdWJzZXF1ZW50IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieSBhbnkgcGFydHkKKyAgICAgICAgICAgIHRvIGJlIHVuZGVyIGEgbGljZW5zZSB0aGF0IHNhdGlzZmllcyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgc2VjdGlvbiAzLgorICAgICAgICAgIDwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4yIFdoZW4gdGhlIFByb2dyYW0gaXMgRGlzdHJpYnV0ZWQgYXMgU291cmNlIENvZGU6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBvciBpZiB0aGUgUHJvZ3JhbSAoaSkKKyAgICAgICAgaXMgY29tYmluZWQgd2l0aCBvdGhlciBtYXRlcmlhbCBpbiBhIHNlcGFyYXRlIGZpbGUgb3IgZmlsZXMgbWFkZSBhdmFpbGFibGUKKyAgICAgICAgdW5kZXIgYSBTZWNvbmRhcnkgTGljZW5zZSwgYW5kIChpaSkgdGhlIGluaXRpYWwgQ29udHJpYnV0b3IgYXR0YWNoZWQgdG8KKyAgICAgICAgdGhlIFNvdXJjZSBDb2RlIHRoZSBub3RpY2UgZGVzY3JpYmVkIGluIEV4aGliaXQgQSBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgICAgdGhlbiB0aGUgUHJvZ3JhbSBtYXkgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHN1Y2gKKyAgICAgICAgU2Vjb25kYXJ5IExpY2Vuc2VzLCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMyBDb250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCwgcGF0ZW50LCB0cmFkZW1hcmssCisgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzLCBkaXNjbGFpbWVycyBvZiB3YXJyYW50eSwgb3IgbGltaXRhdGlvbnMgb2YgbGlhYmlsaXR5CisgICAgICAo4oCYbm90aWNlc+KAmSkgY29udGFpbmVkIHdpdGhpbiB0aGUgUHJvZ3JhbSBmcm9tIGFueSBjb3B5IG9mIHRoZSBQcm9ncmFtIHdoaWNoCisgICAgICB0aGV5IERpc3RyaWJ1dGUsIHByb3ZpZGVkIHRoYXQgQ29udHJpYnV0b3JzIG1heSBhZGQgdGhlaXIgb3duIGFwcHJvcHJpYXRlCisgICAgICBub3RpY2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImNvbW1lcmNpYWwtZGlzdHJpYnV0aW9uIj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvaDI+CisgICAgPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMKKyAgICAgIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcworICAgICAgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZiB0aGUgUHJvZ3JhbSwgdGhlCisgICAgICBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkCisgICAgICBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsIGxpYWJpbGl0eSBmb3Igb3RoZXIKKyAgICAgIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEKKyAgICAgIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAo4oCcQ29tbWVyY2lhbCBDb250cmlidXRvcuKAnSkKKyAgICAgIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IKKyAgICAgICjigJxJbmRlbW5pZmllZCBDb250cmlidXRvcuKAnSkgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cworICAgICAgKGNvbGxlY3RpdmVseSDigJxMb3NzZXPigJ0pIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlciBsZWdhbCBhY3Rpb25zCisgICAgICBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8gdGhlIGV4dGVudAorICAgICAgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gY29ubmVjdGlvbgorICAgICAgd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLgorICAgICAgVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcKKyAgICAgIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0bworICAgICAgcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbAorICAgICAgQ29udHJpYnV0b3IgdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLAorICAgICAgdGhlIGRlZmVuc2UgYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQKKyAgICAgIENvbnRyaWJ1dG9yIG1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCisgICAgPC9wPgorICAgIDxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0KKyAgICAgIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQorICAgICAgY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zCisgICAgICBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuCisgICAgICBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcworICAgICAgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAorICAgICAgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcworICAgICAgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0id2FycmFudHkiPjUuIE5PIFdBUlJBTlRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4g4oCcQVMgSVPigJ0gQkFTSVMsIFdJVEhPVVQKKyAgICAgIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCisgICAgICBXSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCisgICAgICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzCisgICAgICBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCisgICAgICBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKKyAgICAgIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byB0aGUKKyAgICAgIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywgY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGF3cywgZGFtYWdlCisgICAgICB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yIGVxdWlwbWVudCwgYW5kIHVuYXZhaWxhYmlsaXR5IG9yCisgICAgICBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkaXNjbGFpbWVyIj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIE5FSVRIRVIgUkVDSVBJRU5UIE5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZCisgICAgICBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksCisgICAgICBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORyBXSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwKKyAgICAgIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUCisgICAgICBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZCisgICAgICBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMKKyAgICAgIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJnZW5lcmFsIj43LiBHRU5FUkFMPC9oMj4KKyAgICA8cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgorICAgICAgYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mIHRoZQorICAgICAgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24gYnkgdGhlCisgICAgICBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0gZXh0ZW50CisgICAgICBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuCisgICAgPC9wPgorICAgIDxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEKKyAgICAgIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmCisgICAgICAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKQorICAgICAgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2ggUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQKKyAgICAgIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUgc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLgorICAgIDwvcD4KKyAgICA8cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0bworICAgICAgY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZAorICAgICAgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nCisgICAgICBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbQorICAgICAgYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLCBSZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlcgorICAgICAgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5IFJlY2lwaWVudCByZWxhdGluZyB0byB0aGUKKyAgICAgIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuCisgICAgPC9wPgorICAgIDxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwKKyAgICAgIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMgY29weXJpZ2h0ZWQgYW5kIG1heQorICAgICAgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudCBTdGV3YXJkIHJlc2VydmVzCisgICAgICB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50CisgICAgICBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQKKyAgICAgIHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQKKyAgICAgIFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKKyAgICAgIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbiBvZgorICAgICAgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCisgICAgICAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgRGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbgorICAgICAgb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldworICAgICAgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIERpc3RyaWJ1dGUKKyAgICAgIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4KKyAgICA8L3A+CisgICAgPHA+RXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50CisgICAgICByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkKKyAgICAgIENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sCisgICAgICBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkCisgICAgICB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuIE5vdGhpbmcgaW4gdGhpcyBBZ3JlZW1lbnQgaXMgaW50ZW5kZWQKKyAgICAgIHRvIGJlIGVuZm9yY2VhYmxlIGJ5IGFueSBlbnRpdHkgdGhhdCBpcyBub3QgYSBDb250cmlidXRvciBvciBSZWNpcGllbnQuCisgICAgICBObyB0aGlyZC1wYXJ0eSBiZW5lZmljaWFyeSByaWdodHMgYXJlIGNyZWF0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZXhoaWJpdC1hIj5FeGhpYml0IEEg4oCTIEZvcm0gb2YgU2Vjb25kYXJ5IExpY2Vuc2VzIE5vdGljZTwvaDI+CisgICAgPHA+4oCcVGhpcyBTb3VyY2UgQ29kZSBtYXkgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgZm9sbG93aW5nIAorICAgIAlTZWNvbmRhcnkgTGljZW5zZXMgd2hlbiB0aGUgY29uZGl0aW9ucyBmb3Igc3VjaCBhdmFpbGFiaWxpdHkgc2V0IGZvcnRoIAorICAgIAlpbiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgdi4gMi4wIGFyZSBzYXRpc2ZpZWQ6IHtuYW1lIGxpY2Vuc2UocyksCisgICAgCXZlcnNpb24ocyksIGFuZCBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgaGVyZX0u4oCdCisgICAgPC9wPgorICAgIDxibG9ja3F1b3RlPgorICAgICAgPHA+U2ltcGx5IGluY2x1ZGluZyBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyB0aGlzIEV4aGliaXQgQQorICAgICAgICBpcyBub3Qgc3VmZmljaWVudCB0byBsaWNlbnNlIHRoZSBTb3VyY2UgQ29kZSB1bmRlciBTZWNvbmRhcnkgTGljZW5zZXMuCisgICAgICA8L3A+CisgICAgICA8cD5JZiBpdCBpcyBub3QgcG9zc2libGUgb3IgZGVzaXJhYmxlIHRvIHB1dCB0aGUgbm90aWNlIGluIGEgcGFydGljdWxhciBmaWxlLAorICAgICAgICB0aGVuIFlvdSBtYXkgaW5jbHVkZSB0aGUgbm90aWNlIGluIGEgbG9jYXRpb24gKHN1Y2ggYXMgYSBMSUNFTlNFIGZpbGUgaW4gYQorICAgICAgICByZWxldmFudCBkaXJlY3RvcnkpIHdoZXJlIGEgcmVjaXBpZW50IHdvdWxkIGJlIGxpa2VseSB0byBsb29rIGZvcgorICAgICAgICBzdWNoIGEgbm90aWNlLgorICAgICAgPC9wPgorICAgICAgPHA+WW91IG1heSBhZGQgYWRkaXRpb25hbCBhY2N1cmF0ZSBub3RpY2VzIG9mIGNvcHlyaWdodCBvd25lcnNoaXAuPC9wPgorICAgIDwvYmxvY2txdW90ZT4KKyAgCis8ZGl2IGlkPSJlaWQtY2hyb21lLWV4dGVuc2lvbi1pcy1pbnN0YWxsZWQiPjwvZGl2PjwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKaW5kZXggODMyYTdmNy4uMGZlOGU2OSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCkBAIC0zLDkgKzMsOSBAQAogIyAgKgogIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDIsIDIwMDkgQVRMQVMgR3JvdXAgKElOUklBICYgTElOQSkuCiAjICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjICAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjICAqIAogIyAgKiBDb250cmlidXRvcnM6IAogIyAgKiAgIEFUTEFTIEdyb3VwIChJTlJJQSAmIExJTkEpCkBAIC03MCw4ICs3MCw4IEBACiBcblwKIFVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGVcblwKIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mXG5cCi10aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpc1xuXAotcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAordGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKK3Byb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLy5cblwKIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAogXG5cCiBDb250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSxcblwKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9mZWF0dXJlLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCAzYjA4YTZlLi5iNTJhMmZiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC05LDEzICs5LDEzIEBACiAgICAgICBNRFI0QVRMIERyaXZlciBGZWF0dXJlCiAgICA8L2Rlc2NyaXB0aW9uPgogCi0gICA8Y29weXJpZ2h0IHVybD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPgorICAgPGNvcHlyaWdodCB1cmw9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj4KICAgICAgIC8qICAKICAqIENvcHlyaWdodCAoYykgMjAwNCwgMjAwOSBBVExBUyBHcm91cCAoSU5SSUEgYW5kIExJTkEpLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICovCiAgICA8L2NvcHlyaWdodD4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9saWNlbnNlLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvbGljZW5zZS5odG1sCmluZGV4IGYzZjg3ODUuLjcyNjk4NTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9saWNlbnNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL2xpY2Vuc2UuaHRtbApAQCAtMjgsOSArMjgsOSBAQAogCiA8cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UKICBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIAotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMAogICAgKCJFUEwiKS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvCi0gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCisgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiAgICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvZXBsLXYxMC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTA3M2EuLjAwMDAwMDAKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTxsaW5rIHJlbD1GaWxlLUxpc3QKLWhyZWY9Ii4vRWNsaXBzZSUyMEVQTCUyMDIwMDNfMTFfMTAlMjBGaW5hbF9maWxlcy9maWxlbGlzdC54bWwiPgotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGU+Ci08IS0tCi0gLyogRm9udCBEZWZpbml0aW9ucyAqLwotQGZvbnQtZmFjZQotCXsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQl9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQkKLQl9Ci1AcGFnZSBTZWN0aW9uMQotCXtzaXplOjguNWluIDExLjBpbjsKLQltYXJnaW46MS4waW4gMS4yNWluIDEuMGluIDEuMjVpbjsKLQltc28taGVhZGVyLW1hcmdpbjouNWluOwotCW1zby1mb290ZXItbWFyZ2luOi41aW47Ci0JbXNvLXBhcGVyLXNvdXJjZTowO30KLWRpdi5TZWN0aW9uMQotCXtwYWdlOlNlY3Rpb24xO30KLS0tPgotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiIHN0eWxlPSd0YWItaW50ZXJ2YWw6LjVpbic+Ci0KLTxkaXYgY2xhc3M9U2VjdGlvbjE+Ci0KLTxwIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPjxiPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMDwvYj4KLTwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUgotVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRSBQVUJMSUMgTElDRU5TRSAoJnF1b3Q7QUdSRUVNRU5UJnF1b3Q7KS4gQU5ZIFVTRSwKLVJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRQotT0YgVEhJUyBBR1JFRU1FTlQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4xLiBERUZJTklUSU9OUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dGlvbiZxdW90OyBtZWFuczo8L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uCi1kaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPGJyIGNsZWFyPWxlZnQ+Ci1iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPndoZXJlCi1zdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbSBhbmQgYXJlIGRpc3RyaWJ1dGVkCi1ieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJyBmcm9tIGEgQ29udHJpYnV0b3IKLWlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uCi1zdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGFkZGl0aW9ucyB0byB0aGUKLVByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCBpbiBjb25qdW5jdGlvbgotd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIGFuZCAoaWkpIGFyZSBub3QgZGVyaXZhdGl2ZQotd29ya3Mgb2YgdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtDb250cmlidXRvciZxdW90OyBtZWFucyBhbnkgcGVyc29uIG9yCi1lbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0xpY2Vuc2VkIFBhdGVudHMgJnF1b3Q7IG1lYW4gcGF0ZW50Ci1jbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZQotb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1Byb2dyYW0mcXVvdDsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMKLWRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzIEFncmVlbWVudC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1JlY2lwaWVudCZxdW90OyBtZWFucyBhbnlvbmUgd2hvCi1yZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGFsbCBDb250cmlidXRvcnMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4yLiBHUkFOVCBPRiBSSUdIVFM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudAotYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0bzxzcGFuCi1zdHlsZT0nY29sb3I6cmVkJz4gPC9zcGFuPnJlcHJvZHVjZSwgcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mLCBwdWJsaWNseQotZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgZGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLUNvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluIHNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZQotZm9ybS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKQotU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cwotUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLDxzcGFuIHN0eWxlPSdjb2xvcjpncmVlbic+IDwvc3Bhbj5yb3lhbHR5LWZyZWUKLXBhdGVudCBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLCBpbXBvcnQKLWFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLCBpZiBhbnksIGluIHNvdXJjZQotY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbCBhcHBseSB0byB0aGUgY29tYmluYXRpb24KLW9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLCBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkCi1ieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2ggYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbgotdG8gYmUgY292ZXJlZCBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0bwotYW55IG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcwotbGljZW5zZWQgaGVyZXVuZGVyLiA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5jKQotUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlIGxpY2Vuc2VzIHRvIGl0cwotQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IKLXRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkKLXJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudAotZm9yIGNsYWltcyBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZAotbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkKLXRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsCi1pZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0byBkaXN0cmlidXRlCi10aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+ZCkKLUVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0Ci1yaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluCi10aGlzIEFncmVlbWVudC4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjMuIFJFUVVJUkVNRU5UUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZQotUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9zcGFuPgotPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQ7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1pdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQKLWNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUKLWFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5Ci1hbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7IDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywKLWluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2gKLWFzIGxvc3QgcHJvZml0czsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWlpKQotc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQgYXJlIG9mZmVyZWQgYnkgdGhhdAotQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPml2KQotc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2ggQ29udHJpYnV0b3IsIGFuZAotaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQotbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLjxzcGFuIHN0eWxlPSdjb2xvcjpibHVlJz4gPC9zcGFuPjwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZQotY29kZSBmb3JtOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpIGEKLWNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkKLWNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZQotb3JpZ2luYXRvciBvZiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3MKLXN1YnNlcXVlbnQgUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkKLWFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMKLWFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlCi1vZiB0aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwKLWxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmcXVvdDtDb21tZXJjaWFsCi1Db250cmlidXRvciZxdW90OykgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlcgotQ29udHJpYnV0b3IgKCZxdW90O0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnF1b3Q7KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kCi1jb3N0cyAoY29sbGVjdGl2ZWx5ICZxdW90O0xvc3NlcyZxdW90OykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyCi1sZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0bwotdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbgotY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QKLW9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyCi10byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCi10byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZAotYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUKLWluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuIFVuZGVyIHRoaXMKLXNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZQotb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYQotY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz41LiBOTyBXQVJSQU5UWTwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMKLUFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJnF1b3Q7QVMgSVMmcXVvdDsgQkFTSVMsIFdJVEhPVVQKLVdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi1XSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi1NRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUKLVByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMKLUFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywKLWNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yCi1lcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi1PRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwotTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YKLVRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YKLVRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz43LiBHRU5FUkFMPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkCi1vciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvcgotZW5mb3JjZWFiaWxpdHkgb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0Ci1mdXJ0aGVyIGFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZQotbWluaW11bSBleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24KLWFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkKLWFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGgKLW90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKSBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaAotUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZQotc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IKLWNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZQotcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MKLXJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZAotZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwKLVJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieQotUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUKLWNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcwotY29weXJpZ2h0ZWQgYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50Ci1TdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YKLXRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzCi10aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsCi1BZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0bwotc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uCi1vZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLShpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mCi10aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQotKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZAotaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0bwotdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIKLWV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QKLWV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZQotU3RhdGUgb2YgTmV3IFlvcmsgYW5kIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZgotQW1lcmljYS4gTm8gcGFydHkgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzCi1pdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uPC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbD48L3A+Ci0KLTwvZGl2PgotCi08L2JvZHk+Ci0KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MjAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvZXBsLXYyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MjAuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1OClodHRwczovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC0yLjAvRVBMLTIuMC5odG1sIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgICAKKyAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOworICAgICAgfQorICAgICAgaDF7CisgICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKKyAgICAgIH0KKyAgICAgIGgyeworICAgICAgICBmb250LXNpemU6MWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOworICAgICAgICBtYXJnaW4tdG9wOjFlbTsKKyAgICAgIH0KKyAgICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOworICAgICAgfQorICAgICAgdWwsIG9seworICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPGRpdiBpZD0iZWlkLWNocm9tZS1leHRlbnNpb24taXMtaW5zdGFsbGVkIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL25vdGljZS5odG1sCmluZGV4IGYzZjg3ODUuLjcyNjk4NTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC1mZWF0dXJlL3Jvb3RmaWxlcy9ub3RpY2UuaHRtbApAQCAtMjgsOSArMjgsOSBAQAogCiA8cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UKICBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIAotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMAogICAgKCJFUEwiKS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvCi0gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCisgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiAgICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvYWJvdXQuaHRtbAppbmRleCBiNjM4MGQ0Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPlNlcHRlbWJlciAxLCAyMDA1PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvcG9tLnhtbAppbmRleCAyYzQ5MDYwLi5iN2FjMGY2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvQVNNTURSTW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9tZHI0YXRsL0FTTU1EUk1vZGVsLmphdmEKaW5kZXggM2UxOWM1OC4uYWVmODYyNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvQVNNTURSTW9kZWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvbWRyNGF0bC9BU01NRFJNb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQSBhbmQgb3RoZXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvQVNNTURSTW9kZWxFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvbWRyNGF0bC9BU01NRFJNb2RlbEVsZW1lbnQuamF2YQppbmRleCBiMDUwMzQ1Li44OTJhODY3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvbWRyNGF0bC9BU01NRFJNb2RlbEVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvbWRyNGF0bC9BU01NRFJNb2RlbEVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIG90aGVyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9tZHI0YXRsL0F0bE1EUk1vZGVsSGFuZGxlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvQXRsTURSTW9kZWxIYW5kbGVyLmphdmEKaW5kZXggNzJjNzUwYi4uMDljZWJiZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvQXRsTURSTW9kZWxIYW5kbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvQXRsTURSTW9kZWxIYW5kbGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBIGFuZCBvdGhlci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvbWRyNGF0bC9NRFJNb2RlbExvYWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMubWRyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL21kcjRhdGwvTURSTW9kZWxMb2FkZXIuamF2YQppbmRleCBiNjU0MjAzLi40ZDFkN2U3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvbWRyNGF0bC9NRFJNb2RlbExvYWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy9tZHI0YXRsL01EUk1vZGVsTG9hZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBIGFuZCBvdGhlci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy5tZHI0YXRsL3NyYy9vcmcvb3BlbmlkZS91dGlsL2xvb2t1cC9BVExMb29rdXAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvc3JjL29yZy9vcGVuaWRlL3V0aWwvbG9va3VwL0FUTExvb2t1cC5qYXZhCmluZGV4IDI4MTA3OTcuLmU3Y2Y2NGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvc3JjL29yZy9vcGVuaWRlL3V0aWwvbG9va3VwL0FUTExvb2t1cC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLm1kcjRhdGwvc3JjL29yZy9vcGVuaWRlL3V0aWwvbG9va3VwL0FUTExvb2t1cC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQSBhbmQgb3RoZXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9hYm91dC5odG1sCmluZGV4IGY4OGI5YzkuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+SnVuZSAyMiwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL2VwbC12MTAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvZXBsLXYxMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYjEwNzNhLi4wMDAwMDAwCi0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvZXBsLXYxMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzA0ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOIj4KLTxodG1sIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIKLXhtbG5zOnc9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOndvcmQiCi14bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+Ci0KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Ci08bGluayByZWw9RmlsZS1MaXN0Ci1ocmVmPSIuL0VjbGlwc2UlMjBFUEwlMjAyMDAzXzExXzEwJTIwRmluYWxfZmlsZXMvZmlsZWxpc3QueG1sIj4KLTx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAxLjA8L3RpdGxlPgotPHN0eWxlPgotPCEtLQotIC8qIEZvbnQgRGVmaW5pdGlvbnMgKi8KLUBmb250LWZhY2UKLQl7Ci0JcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7Ci0JbXNvLWZvbnQtY2hhcnNldDowOwotCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOwotCW1zby1mb250LXNpZ25hdHVyZTo1NTM2Nzk0OTUgLTIxNDc0ODM2NDggOCAwIDY2MDQ3IDA7fQotIC8qIFN0eWxlIERlZmluaXRpb25zICovCi1wLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCi0Je21zby1zdHlsZS1wYXJlbnQ6IiI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZToxMi4wcHQ7Ci0JfQotcAotCXttYXJnaW4tcmlnaHQ6MGluOwotCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOwotCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwotCW1hcmdpbi1sZWZ0OjBpbjsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQl9Ci1wLkJhbGxvb25UZXh0LCBsaS5CYWxsb29uVGV4dCwgZGl2LkJhbGxvb25UZXh0Ci0Je21zby1zdHlsZS1uYW1lOiJCYWxsb29uIFRleHQiOwotCW1hcmdpbjowaW47Ci0JbWFyZ2luLWJvdHRvbTouMDAwMXB0OwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6OC4wcHQ7Ci0JCi0JfQotQHBhZ2UgU2VjdGlvbjEKLQl7c2l6ZTo4LjVpbiAxMS4waW47Ci0JbWFyZ2luOjEuMGluIDEuMjVpbiAxLjBpbiAxLjI1aW47Ci0JbXNvLWhlYWRlci1tYXJnaW46LjVpbjsKLQltc28tZm9vdGVyLW1hcmdpbjouNWluOwotCW1zby1wYXBlci1zb3VyY2U6MDt9Ci1kaXYuU2VjdGlvbjEKLQl7cGFnZTpTZWN0aW9uMTt9Ci0tLT4KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGxhbmc9IkVOLVVTIiBzdHlsZT0ndGFiLWludGVydmFsOi41aW4nPgotCi08ZGl2IGNsYXNzPVNlY3Rpb24xPgotCi08cCBhbGlnbj1jZW50ZXIgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz48Yj5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAxLjA8L2I+Ci08L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIKLVRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UgUFVCTElDIExJQ0VOU0UgKCZxdW90O0FHUkVFTUVOVCZxdW90OykuIEFOWSBVU0UsCi1SRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UKLU9GIFRISVMgQUdSRUVNRU5ULjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+MS4gREVGSU5JVElPTlM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtDb250cmlidXRpb24mcXVvdDsgbWVhbnM6PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29kZSBhbmQgZG9jdW1lbnRhdGlvbgotZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZDxiciBjbGVhcj1sZWZ0PgotYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmkpCi1jaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paSkKLWFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz53aGVyZQotc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20gYW5kIGFyZSBkaXN0cmlidXRlZAotYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbiAnb3JpZ2luYXRlcycgZnJvbSBhIENvbnRyaWJ1dG9yCi1pZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbgotc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlCi1Qcm9ncmFtIHdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24KLXdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKSBhcmUgbm90IGRlcml2YXRpdmUKLXdvcmtzIG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0b3ImcXVvdDsgbWVhbnMgYW55IHBlcnNvbiBvcgotZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtMaWNlbnNlZCBQYXRlbnRzICZxdW90OyBtZWFuIHBhdGVudAotY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2UKLW9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtQcm9ncmFtJnF1b3Q7IG1lYW5zIHRoZSBDb250cmlidXRpb25zCi1kaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcyBBZ3JlZW1lbnQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtSZWNpcGllbnQmcXVvdDsgbWVhbnMgYW55b25lIHdobwotcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Mi4gR1JBTlQgT0YgUklHSFRTPC9zcGFuPjwvYj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQKLWEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG88c3Bhbgotc3R5bGU9J2NvbG9yOnJlZCc+IDwvc3Bhbj5yZXByb2R1Y2UsIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3JrcyBvZiwgcHVibGljbHkKLWRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIGRpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi1Db250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBkZXJpdmF0aXZlIHdvcmtzLCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUKLWZvcm0uPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMKLVJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSw8c3BhbiBzdHlsZT0nY29sb3I6Z3JlZW4nPiA8L3NwYW4+cm95YWx0eS1mcmVlCi1wYXRlbnQgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwgaW1wb3J0Ci1hbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwgaWYgYW55LCBpbiBzb3VyY2UKLWNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uCi1vZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZAotYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24KLXRvIGJlIGNvdmVyZWQgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8KLWFueSBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIgc2UgaXMKLWxpY2Vuc2VkIGhlcmV1bmRlci4gPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YykKLVJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMKLUNvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yCi10aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZSBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5Ci1yaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQKLWZvciBjbGFpbXMgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKLXByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQKLWxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5Ci10byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvciBleGFtcGxlLAotaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQgdG8gZGlzdHJpYnV0ZQotdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZQotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmQpCi1FYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50IGNvcHlyaWdodAotcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbgotdGhpcyBBZ3JlZW1lbnQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4zLiBSRVFVSVJFTUVOVFM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BIENvbnRyaWJ1dG9yIG1heSBjaG9vc2UgdG8gZGlzdHJpYnV0ZSB0aGUKLVByb2dyYW0gaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciBpdHMgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBwcm92aWRlZCB0aGF0Ojwvc3Bhbj4KLTwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWl0IGNvbXBsaWVzIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50OyBhbmQ8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKQotaXRzIGxpY2Vuc2UgYWdyZWVtZW50Ojwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmkpCi1lZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIHdhcnJhbnRpZXMgYW5kCi1jb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcyBvciBjb25kaXRpb25zIG9mIHRpdGxlCi1hbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcyBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eQotYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paSkKLWVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsCi1pbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoCi1hcyBsb3N0IHByb2ZpdHM7IDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpaSkKLXN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMgQWdyZWVtZW50IGFyZSBvZmZlcmVkIGJ5IHRoYXQKLUNvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyIHBhcnR5OyBhbmQ8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pdikKLXN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUgZnJvbSBzdWNoIENvbnRyaWJ1dG9yLCBhbmQKLWluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEKLW1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZS48c3BhbiBzdHlsZT0nY29sb3I6Ymx1ZSc+IDwvc3Bhbj48L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+V2hlbiB0aGUgUHJvZ3JhbSBpcyBtYWRlIGF2YWlsYWJsZSBpbiBzb3VyY2UKLWNvZGUgZm9ybTo8L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQ7IGFuZCA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKSBhCi1jb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Db250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55Ci1jb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUKLW9yaWdpbmF0b3Igb2YgaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzCi1zdWJzZXF1ZW50IFJlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5Ci1hY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzCi1hbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZQotb2YgdGhlIFByb2dyYW0sIHRoZSBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCi1wcm9kdWN0IG9mZmVyaW5nIHNob3VsZCBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsCi1saWFiaWxpdHkgZm9yIG90aGVyIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZQotUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAoJnF1b3Q7Q29tbWVyY2lhbAotQ29udHJpYnV0b3ImcXVvdDspIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIKLUNvbnRyaWJ1dG9yICgmcXVvdDtJbmRlbW5pZmllZCBDb250cmlidXRvciZxdW90OykgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZAotY29zdHMgKGNvbGxlY3RpdmVseSAmcXVvdDtMb3NzZXMmcXVvdDspIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlcgotbGVnYWwgYWN0aW9ucyBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8KLXRoZSBleHRlbnQgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4KLWNvbm5lY3Rpb24gd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0Ci1vZmZlcmluZy4gVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMKLXJlbGF0aW5nIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlcgotdG8gcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZSBDb21tZXJjaWFsCi1Db250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvcgotdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZSBhbmQKLWFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlCi1pbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZQotUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKLXdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLiBVbmRlciB0aGlzCi1zZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUKLW90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEKLWNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZQotQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+NS4gTk8gV0FSUkFOVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOICZxdW90O0FTIElTJnF1b3Q7IEJBU0lTLCBXSVRIT1VUCi1XQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAotV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAotTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZCBkaXN0cmlidXRpbmcgdGhlCi1Qcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsCi1jb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvcgotZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMKLUFHUkVFTUVOVCwgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKLU5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GCi1USEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GCi1USEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ny4gR0VORVJBTDwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZAotb3IgdW5lbmZvcmNlYWJsZSB1bmRlciBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IKLWVuZm9yY2VhYmlsaXR5IG9mIHRoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dAotZnVydGhlciBhY3Rpb24gYnkgdGhlIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUKLW1pbmltdW0gZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uCi1hZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpCi1hbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZiAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoCi1vdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2gKLVJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUKLXN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLXNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yCi1jb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUKLXBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzCi1yaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQKLWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsCi1SZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkKLVJlY2lwaWVudCByZWxhdGluZyB0byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlCi1jb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMKLWNvcHlyaWdodGVkIGFuZCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudAotU3Rld2FyZCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mCi10aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcwotdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbAotQWdyZWVtZW50IFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8KLXNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbgotb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgZGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldyB2ZXJzaW9uIG9mCi10aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KLShpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4gRXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQKLWluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudCByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8KLXRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55IENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyCi1leHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLCBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90Ci1leHByZXNzbHkgZ3JhbnRlZCB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUKLVN0YXRlIG9mIE5ldyBZb3JrIGFuZCB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YKLUFtZXJpY2EuIE5vIHBhcnR5IHRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcwotQWdyZWVtZW50IG1vcmUgdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcwotaXRzIHJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWw+PC9wPgotCi08L2Rpdj4KLQotPC9ib2R5PgotCi08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9lcGwtdjIwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL2VwbC12MjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWE4Mzg4Ci0tLSAvZGV2L251bGwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNTgpaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtMi4wL0VQTC0yLjAuaHRtbCAtLT4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgCisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KKyAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorICAgICAgUFVCTElDIExJQ0VOU0UgKOKAnEFHUkVFTUVOVOKAnSkuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KKyAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KKyAgICA8cD7igJxDb250cmlidXRpb27igJ0gbWVhbnM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgICAgICAg4oCcb3JpZ2luYXRlc+KAnSBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KKyAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0CisgICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+4oCcQ29udHJpYnV0b3LigJ0gbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+CisgICAgPHA+4oCcTGljZW5zZWQgUGF0ZW50c+KAnSBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCisgICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCisgICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCisgICAgPC9wPgorICAgIDxwPuKAnFByb2dyYW3igJ0gbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKKyAgICAgIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPHA+4oCcUmVjaXBpZW504oCdIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCisgICAgPC9wPgorICAgIDxwPuKAnERlcml2YXRpdmUgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCisgICAgPC9wPgorICAgIDxwPuKAnE1vZGlmaWVkIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CisgICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKKyAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQorICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKKyAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKKyAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCisgICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCisgICAgICBXb3JrcyB0aGVyZW9mLgorICAgIDwvcD4KKyAgICA8cD7igJxEaXN0cmlidXRl4oCdIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCisgICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgorICAgIDwvcD4KKyAgICA8cD7igJxTb3VyY2UgQ29kZeKAnSBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCisgICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgPC9wPgorICAgIDxwPuKAnFNlY29uZGFyeSBMaWNlbnNl4oCdIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgIENvbnRyaWJ1dG9yLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKKyAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKKyAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKKyAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKKyAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAorICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAorICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKKyAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55CisgICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgorICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgICAgICA8L2xpPgorICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKKyAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCisgICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgICAgICA8L2xpPgorICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisgICAgICA8L2xpPgorICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgorICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAorICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQncyByZWNlaXB0IG9mIHRoZQorICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKKyAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+CisgICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQorICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQorICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCisgICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKKyAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQorICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCisgICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMnIHJpZ2h0cyBpbiB0aGUKKyAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQorICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQorICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQorICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bworICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAorICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKKyAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKKyAgICAgICjigJhub3RpY2Vz4oCZKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKKyAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKKyAgICAgIG5vdGljZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KKyAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcworICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCisgICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKKyAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKKyAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgorICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQorICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICjigJxDb21tZXJjaWFsIENvbnRyaWJ1dG9y4oCdKQorICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgorICAgICAgKOKAnEluZGVtbmlmaWVkIENvbnRyaWJ1dG9y4oCdKSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCisgICAgICAoY29sbGVjdGl2ZWx5IOKAnExvc3Nlc+KAnSkgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKKyAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50CisgICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCisgICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCisgICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZworICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCisgICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCisgICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCisgICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAorICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKyAgICA8L3A+CisgICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQorICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCisgICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKKyAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4KKyAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCisgICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCisgICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCisgICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiDigJxBUyBJU+KAnSBCQVNJUywgV0lUSE9VVAorICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKKyAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKKyAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQorICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKKyAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKKyAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKKyAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAorICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUworICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgorICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCisgICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCisgICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKKyAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKKyAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKyAgICA8L3A+CisgICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKKyAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCisgICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZAorICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisgICAgPC9wPgorICAgIDxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCisgICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCisgICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKKyAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCisgICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyCisgICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQorICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKyAgICA8L3A+CisgICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5CisgICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKKyAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAorICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAorICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcworICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCisgICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KKyAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCisgICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3CisgICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQorICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgorICAgIDwvcD4KKyAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKKyAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQorICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKKyAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKKyAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAorICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KKyAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSDigJMgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KKyAgICA8cD7igJxUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCisgICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCisgICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKKyAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS7igJ0KKyAgICA8L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCisgICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCisgICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCisgICAgICAgIHN1Y2ggYSBub3RpY2UuCisgICAgICA8L3A+CisgICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICAKKzxkaXYgaWQ9ImVpZC1jaHJvbWUtZXh0ZW5zaW9uLWlzLWluc3RhbGxlZCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCmluZGV4IGRjNDVmNWMuLjRiMmZkZDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCkBAIC0zLDkgKzMsOSBAQAogIyAgKgogIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNyBBVExBUyBHcm91cCAoSU5SSUEgJiBMSU5BKS4KICMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICogCiAjICAqIENvbnRyaWJ1dG9yczogCiAjICAqICAgQVRMQVMgR3JvdXAgKElOUklBICYgTElOQSkKQEAgLTM3LDE0MyArMzcsMTY3IEBACiAjICJkZXNjcmlwdGlvbiIgcHJvcGVydHkgLSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVhdHVyZQogZGVzY3JpcHRpb249RHJpdmVyIFVNTCBmb3IgQVRMCiAKLSMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgotIyBkbyBub3QgdHJhbnNsYXRlIHZhbHVlIC0ganVzdCBjaGFuZ2UgdG8gcG9pbnQgdG8gYSBsb2NhbGUtc3BlY2lmaWMgSFRNTCBwYWdlCi1saWNlbnNlVVJMPWxpY2Vuc2UuaHRtbAorIyAidXBkYXRlU2l0ZU5hbWUiIHByb3BlcnR5IC0gbGFiZWwgZm9yIHRoZSB1cGRhdGUgc2l0ZQorTW9kZWxpbmdVcGRhdGVTaXRlTmFtZT1FY2xpcHNlIE1vZGVsaW5nCiAKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjICUlJSBFTkQgT0YgVFJBTlNMQVRFRCBQUk9QRVJUSUVTICUlJQogIyBUaGUgYWJvdmUgcHJvcGVydGllcyBoYXZlIGJlZW4gc2hpcHBlZCBmb3IgdHJhbnNsYXRpb24uCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCitjb3B5cmlnaHRVUkwgPSBjb3B5cmlnaHQudHh0Citjb3B5cmlnaHQgPSBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDkgSU5SSUEuIFxuXAorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCBcblwKK3doaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0IFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8gXG5cCisgXG5cCisgICAKKyMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgorIyBkbyBub3QgdHJhbnNsYXRlIHZhbHVlIC0ganVzdCBjaGFuZ2UgdG8gcG9pbnQgdG8gYSBsb2NhbGUtc3BlY2lmaWMgSFRNTCBwYWdlCitsaWNlbnNlVVJMPWxpY2Vuc2UuaHRtbAorCiAjICJsaWNlbnNlIiBwcm9wZXJ0eSAtIHRleHQgb2YgdGhlICJGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIgogIyBzaG91bGQgYmUgcGxhaW4gdGV4dCB2ZXJzaW9uIG9mIGxpY2Vuc2UgYWdyZWVtZW50IHBvaW50ZWQgdG8gYmUgImxpY2Vuc2VVUkwiCiBsaWNlbnNlPVwKIEVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudFxuXAotRmVicnVhcnkgMSwgMjAxMVxuXAorXG5cCitOb3ZlbWJlciAyMiwgMjAxN1xuXAogXG5cCiBVc2FnZSBPZiBDb250ZW50XG5cCiBcblwKLVRIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTiBBTkQvT1JcblwKLU9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLlxuXAotVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTXG5cCi1BR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1JcblwKLU5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VXG5cCi1BR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UXG5cCi1BTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UU1xuXAotT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCi1URVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TXG5cCi1PRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAotQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAorVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OXG5cCitBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuIFVTRSBPRlxuXAorVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEVcblwKK1RFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCitCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEXG5cCitCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0VcblwKK0FHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKK1RFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZXG5cCitBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVVxuXAorTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCiBcblwKIEFwcGxpY2FibGUgTGljZW5zZXNcblwKIFxuXAotVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZVxuXAotRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2ZcblwKLXRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzXG5cCi1wcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwuXG5cCi1Gb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKK1VubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uXG5cCitpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlXG5cCitWZXJzaW9uIDIuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzb1xuXAorYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC4gRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsXG5cCisiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAogXG5cCi1Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSxcblwKLWRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZVxuXAotcmVwb3NpdG9yeSAoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZVxuXAotYXMgZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCitDb250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvblxuXAorYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZSByZXBvc2l0b3J5XG5cCisoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZSBhc1xuXAorZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCiBcblwKLSAgICAgICAtIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsXG5cCi0gICAgICAgICBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksXG5cCi0gICAgICAgICBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLlxuXAotICAgICAgIC0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhKFRNKSBBUmNoaXZlKVxuXAotICAgICAgICAgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAotICAgICAgIC0gQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuXG5cCi0gICAgICAgICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLlxuXAotICAgICAgICAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uXG5cCi0gICAgICAgICBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCi0gICAgICAgLSBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXNcblwKLSAgICAgICAgIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAorLSAgIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlXG5cCisgICAgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5XG5cCisgICAgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZFxuXAorICAgIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKKy0gICBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVJcblwKKyAgICAoSmF2YVx1MjEyMiBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCistICAgQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kXG5cCisgICAgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYVxuXAorICAgIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heVxuXAorICAgIGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3JcblwKKyAgICBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKKy0gICBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGFcblwKKyAgICBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kXG5cCisgICAgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAogXG5cCi1UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlXG5cCi1jb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmRcblwKLWNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkXG5cCi1pbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlXG5cCi1MaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlXG5cCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluXG5cCitmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlc1xuXAorYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCJcblwKKygiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55XG5cCitkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZ1xuXAorbG9jYXRpb25zOlxuXAogXG5cCi0gICAgICAgLSBUaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3RvcnlcblwKLSAgICAgICAtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi0gICAgICAgLSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi0gICAgICAgLSBTdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zXG5cCi0gICAgICAgLSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAorLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKIFxuXAotTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZVxuXAotUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFxuXAotVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWluc1xuXAotSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKLXdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtXG5cCi15b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluXG5cCi10aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuXG5cCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlXG5cCi10ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0XG5cCi1nb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZ1xuXAordGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlXG5cCisoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZVxuXAorY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKK3dpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdVxuXAord2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSJcblwKK3Byb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2hcblwKK0Fib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZlxuXAordGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKIFxuXAotVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUExcblwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRVxuXAorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKIFxuXAotICAgICAgIC0gRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbClcblwKLSAgICAgICAtIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sKVxuXAotICAgICAgIC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi0gICAgICAgLSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXG5cCi0gICAgICAgLSBNZXRybyBMaW5rIFB1YmxpYyBMaWNlbnNlIDEuMDAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbClcblwKLSAgICAgICAtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCistICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwpXG5cCistICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAorLSAgIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gICBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCiBcblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZVxuXAotaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnNcblwKLWdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE9cblwKK1VTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpc1xuXAorcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKIFxuXAotXG5cVXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKIFxuXAotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLFxuXAotYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3JcblwKLXRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vclxuXAotb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoXG5cCi10aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy5cblwKLUluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXRcblwKK1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2hcblwKK2luY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlclxuXAorKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsXG5cCitzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5XG5cCisiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZ1xuXAorc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvblxuXAorYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAogaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKIFxuXAotWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAotWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlXG5cCi1JbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAotaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZFxuXAotbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXJcblwKLWFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbFxuXAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGVcblwKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmRcblwKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcblwKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdFxuXAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGVcblwKK2ZvbGxvd2luZzpcblwKIFxuXAotICAgICAgIDEuIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGVcblwKLSAgICAgICAgICB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgiVGFyZ2V0IE1hY2hpbmUiKSB3aXRoIHRoZSBpbnRlbnQgb2YgaW5zdGFsbGluZyxcblwKLSAgICAgICAgICBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAotICAgICAgIDIuIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHlcblwKLSAgICAgICAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS5cblwKLSAgICAgICAzLiBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAotICAgICAgICAgIGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoXG5cCi0gICAgICAgICAgSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldCBNYWNoaW5lIGluIGFjY29yZGFuY2VcblwKLSAgICAgICAgICB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGVcblwKLSAgICAgICAgICB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5XG5cCi0gICAgICAgICAgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoXG5cCi0gICAgICAgICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvblxuXAotICAgICAgICAgIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKKzEuICBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heVxuXAorICAgIGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGVcblwKKyAgICBpbnRlbnQgb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuXG5cCisgICAgRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAorMi4gIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmRcblwKKyAgICBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvXG5cCisgICAgdGhlIFRhcmdldCBNYWNoaW5lLlxuXAorMy4gIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmVcblwKKyAgICBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2hcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZFxuXAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZVxuXAorICAgIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZVxuXAorICAgIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGVcblwKKyAgICBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGVcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKIFxuXAogQ3J5cHRvZ3JhcGh5XG5cCiBcblwKLUNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZVxuXAotY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLFxuXAotYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRVxuXAotdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsXG5cCi1yZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZFxuXAotcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC5cblwKK0NvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZSBjdXJyZW50bHlcblwKK21heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvXG5cCithbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSxcblwKK3BsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsXG5cCitwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXNcblwKK3Blcm1pdHRlZC5cblwKIFxuXAotSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgorSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlXG5cCitVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KICMjIyMjIyMjIyMjIGVuZCBvZiBsaWNlbnNlIHByb3BlcnR5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0KLSMgInVwZGF0ZVNpdGVOYW1lIiBwcm9wZXJ0eSAtIGxhYmVsIGZvciB0aGUgdXBkYXRlIHNpdGUKLXVwZGF0ZVNpdGVOYW1lPUFUTCBVcGRhdGVzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9mZWF0dXJlLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggNjY5YjUxOC4uMzA3NWM1NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC05LDIxOSArOSwxOCBAQAogICAgICAgVU1MMjRBVEwgRHJpdmVyIEZlYXR1cmUKICAgIDwvZGVzY3JpcHRpb24+CiAKLSAgIDxjb3B5cmlnaHQgdXJsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+Ci0gICAgICAvKiAgCi0gKiBDb3B5cmlnaHQgKGMpIDIwMDcsIEFUTEFTIEdyb3VwIChJTlJJQSBhbmQgTElOQSkuCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAotICogCi0gKi8KKyAgIDxjb3B5cmlnaHQgdXJsPSIlY29weXJpZ2h0VVJMIj4KKyAgICAgICVjb3B5cmlnaHQKICAgIDwvY29weXJpZ2h0PgogCi0gICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj4KLSAgICAgIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMAotVEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTCi1FQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IKLURJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmYXBvcztTIEFDQ0VQVEFOQ0UKLU9GIFRISVMgQUdSRUVNRU5ULgotMS4gREVGSU5JVElPTlMKLSZxdW90O0NvbnRyaWJ1dGlvbiZxdW90OyBtZWFuczoKLWEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZAotZG9jdW1lbnRhdGlvbiBkaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCi1iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6Ci1pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQKLWlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07Ci13aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUKLWZyb20gYW5kIGFyZSBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCi0mYXBvcztvcmlnaW5hdGVzJmFwb3M7IGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0KLWJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvciZhcG9zO3MKLWJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0KLXdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24KLXdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKQotYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBQcm9ncmFtLgotJnF1b3Q7Q29udHJpYnV0b3ImcXVvdDsgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUKLVByb2dyYW0uCi0mcXVvdDtMaWNlbnNlZCBQYXRlbnRzICZxdW90OyBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yCi13aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uCi1hbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCi0mcXVvdDtQcm9ncmFtJnF1b3Q7IG1lYW5zIHRoZSBDb250cmlidXRpb25zIGRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aAotdGhpcyBBZ3JlZW1lbnQuCi0mcXVvdDtSZWNpcGllbnQmcXVvdDsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzCi1BZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLgotMi4gR1JBTlQgT0YgUklHSFRTCi1hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLWdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLWxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCi1wdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24KLW9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLgotYikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci1ncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50Ci1saWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAotaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotaWYgYW55LCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZQotc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtCi1pZiwgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsCi1zdWNoIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8KLWJlIGNvdmVyZWQgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbAotbm90IGFwcGx5IHRvIGFueSBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLgotTm8gaGFyZHdhcmUgcGVyIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KLWMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzCi10aGUgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcwotYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlCi10aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyCi1lbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQKLW9mIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbgotdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaAotUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlcgotaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmCi1hIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0bwotZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50JmFwb3M7cyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlCi10aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLWQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKLWNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0Ci1saWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLTMuIFJFUVVJUkVNRU5UUwotQSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaW4gb2JqZWN0Ci1jb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDoKLWEpIGl0IGNvbXBsaWVzIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50OwotYW5kCi1iKSBpdHMgbGljZW5zZSBhZ3JlZW1lbnQ6Ci1pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIHdhcnJhbnRpZXMKLWFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcyBvcgotY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcwotb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhcgotcHVycG9zZTsKLWlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5Ci1mb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKLWFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOwotaWlpKSBzdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudAotYXJlIG9mZmVyZWQgYnkgdGhhdCBDb250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsKLWFuZAotaXYpIHN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUgZnJvbQotc3VjaCBDb250cmlidXRvciwgYW5kIGluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYQotcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvcgotc29mdHdhcmUgZXhjaGFuZ2UuCi1XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06Ci1hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQKLWIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mCi10aGUgUHJvZ3JhbS4KLUNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkCi13aXRoaW4gdGhlIFByb2dyYW0uCi1FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZSBvcmlnaW5hdG9yIG9mIGl0cwotQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3Mgc3Vic2VxdWVudAotUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLgotNC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT04KLUNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi13aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlCi10aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YKLXRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlCi1wb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvcgotaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKLSgmcXVvdDtDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5Ci1ldmVyeSBvdGhlciBDb250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55Ci1sb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20KLWNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5Ci1hZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUKLWFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCi13aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QKLW9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkKLWNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbAotcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvcgotbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcKLW9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLAotYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZQotYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IKLW1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCi1Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsCi1Db250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCi1jbGFpbXMgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciZhcG9zO3MgcmVzcG9uc2liaWxpdHkKLWFsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUKLXRvIGRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UKLXBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55Ci1vdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsCi1Db250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgotNS4gTk8gV0FSUkFOVFkKLUVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBUSEUgUFJPR1JBTQotSVMgUFJPVklERUQgT04gQU4gJnF1b3Q7QVMgSVMmcXVvdDsgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TCi1PRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwKLUFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWQotT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aAotaXRzIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90Ci1saW1pdGVkIHRvIHRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2UKLXdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvcgotZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCi02LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWQotRVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UCi1OT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsCi1JTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORAotT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi1PUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRQotT0YgQU5ZIFJJR0hUUyBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQotT0YgU1VDSCBEQU1BR0VTLgotNy4gR0VORVJBTAotSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUKLXVuZGVyIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eQotb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0Ci1mdXJ0aGVyIGFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlCi1yZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24KLXZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLUlmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eQotKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nCi10aGF0IHRoZSBQcm9ncmFtIGl0c2VsZiAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbQotd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50JmFwb3M7cyBwYXRlbnQocyksCi10aGVuIHN1Y2ggUmVjaXBpZW50JmFwb3M7cyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwKLXRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi1BbGwgUmVjaXBpZW50JmFwb3M7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmCi1pdCBmYWlscyB0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMKLW9mIHRoaXMgQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUKLXBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYKLWFsbCBSZWNpcGllbnQmYXBvcztzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudAotYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMKLXJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCZhcG9zO3Mgb2JsaWdhdGlvbnMgdW5kZXIKLXRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcKLXRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgotRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAotYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZAotYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50Ci1TdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nCi1yZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIKLXRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LgotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQgU3Rld2FyZC4gVGhlCi1FY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLXRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcKLXZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbgotbnVtYmVyLiBUaGUgUHJvZ3JhbSAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgZGlzdHJpYnV0ZWQKLXN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuCi1JbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwKLUNvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzCi1Db250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzCi1vciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlcgotdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3IKLW90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIKLXRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4KLVRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yawotYW5kIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLgotTm8gcGFydHkgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuCi1FYWNoIHBhcnR5IHdhaXZlcyBpdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nCi1saXRpZ2F0aW9uLgorICAgPGxpY2Vuc2UgdXJsPSIlbGljZW5zZVVSTCI+CisgICAgICAlbGljZW5zZQogICAgPC9saWNlbnNlPgogCi0gICA8dXJsPgotICAgICAgPHVwZGF0ZSBsYWJlbD0iQVRMIFVwZGF0ZXMiIHVybD0iaHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL21vZGVsaW5nL20ybS91cGRhdGVzLyIvPgotICAgPC91cmw+Cis8dXJsPgorCTx1cGRhdGUgbGFiZWw9IiVNb2RlbGluZ1VwZGF0ZVNpdGVOYW1lIiB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kZWxpbmcvdXBkYXRlcy8iLz4KKwk8ZGlzY292ZXJ5IGxhYmVsPSIlTW9kZWxpbmdVcGRhdGVTaXRlTmFtZSIgdXJsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGVsaW5nL3VwZGF0ZXMvIi8+Cis8L3VybD4KIAogICAgPHBsdWdpbgogICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bCIKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvbGljZW5zZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9saWNlbnNlLmh0bWwKaW5kZXggZjE5YzQ4My4uYzM1ZDgzNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9saWNlbnNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9saWNlbnNlLmh0bWwKQEAgLTIxLDggKzIxLDggQEAKIAogPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgogCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMAorICAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KICAgIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MTAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MTAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IxMDczYS4uMDAwMDAwMAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTxsaW5rIHJlbD1GaWxlLUxpc3QKLWhyZWY9Ii4vRWNsaXBzZSUyMEVQTCUyMDIwMDNfMTFfMTAlMjBGaW5hbF9maWxlcy9maWxlbGlzdC54bWwiPgotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGU+Ci08IS0tCi0gLyogRm9udCBEZWZpbml0aW9ucyAqLwotQGZvbnQtZmFjZQotCXsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQl9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQkKLQl9Ci1AcGFnZSBTZWN0aW9uMQotCXtzaXplOjguNWluIDExLjBpbjsKLQltYXJnaW46MS4waW4gMS4yNWluIDEuMGluIDEuMjVpbjsKLQltc28taGVhZGVyLW1hcmdpbjouNWluOwotCW1zby1mb290ZXItbWFyZ2luOi41aW47Ci0JbXNvLXBhcGVyLXNvdXJjZTowO30KLWRpdi5TZWN0aW9uMQotCXtwYWdlOlNlY3Rpb24xO30KLS0tPgotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiIHN0eWxlPSd0YWItaW50ZXJ2YWw6LjVpbic+Ci0KLTxkaXYgY2xhc3M9U2VjdGlvbjE+Ci0KLTxwIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPjxiPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMDwvYj4KLTwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUgotVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRSBQVUJMSUMgTElDRU5TRSAoJnF1b3Q7QUdSRUVNRU5UJnF1b3Q7KS4gQU5ZIFVTRSwKLVJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRQotT0YgVEhJUyBBR1JFRU1FTlQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4xLiBERUZJTklUSU9OUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dGlvbiZxdW90OyBtZWFuczo8L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uCi1kaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPGJyIGNsZWFyPWxlZnQ+Ci1iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPndoZXJlCi1zdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbSBhbmQgYXJlIGRpc3RyaWJ1dGVkCi1ieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJyBmcm9tIGEgQ29udHJpYnV0b3IKLWlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uCi1zdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGFkZGl0aW9ucyB0byB0aGUKLVByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCBpbiBjb25qdW5jdGlvbgotd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIGFuZCAoaWkpIGFyZSBub3QgZGVyaXZhdGl2ZQotd29ya3Mgb2YgdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtDb250cmlidXRvciZxdW90OyBtZWFucyBhbnkgcGVyc29uIG9yCi1lbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0xpY2Vuc2VkIFBhdGVudHMgJnF1b3Q7IG1lYW4gcGF0ZW50Ci1jbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZQotb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1Byb2dyYW0mcXVvdDsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMKLWRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzIEFncmVlbWVudC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1JlY2lwaWVudCZxdW90OyBtZWFucyBhbnlvbmUgd2hvCi1yZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGFsbCBDb250cmlidXRvcnMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4yLiBHUkFOVCBPRiBSSUdIVFM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudAotYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0bzxzcGFuCi1zdHlsZT0nY29sb3I6cmVkJz4gPC9zcGFuPnJlcHJvZHVjZSwgcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mLCBwdWJsaWNseQotZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgZGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLUNvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluIHNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZQotZm9ybS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKQotU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cwotUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLDxzcGFuIHN0eWxlPSdjb2xvcjpncmVlbic+IDwvc3Bhbj5yb3lhbHR5LWZyZWUKLXBhdGVudCBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLCBpbXBvcnQKLWFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLCBpZiBhbnksIGluIHNvdXJjZQotY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbCBhcHBseSB0byB0aGUgY29tYmluYXRpb24KLW9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLCBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkCi1ieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2ggYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbgotdG8gYmUgY292ZXJlZCBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0bwotYW55IG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcwotbGljZW5zZWQgaGVyZXVuZGVyLiA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5jKQotUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlIGxpY2Vuc2VzIHRvIGl0cwotQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IKLXRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkKLXJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudAotZm9yIGNsYWltcyBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZAotbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkKLXRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsCi1pZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0byBkaXN0cmlidXRlCi10aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+ZCkKLUVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0Ci1yaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluCi10aGlzIEFncmVlbWVudC4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjMuIFJFUVVJUkVNRU5UUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZQotUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9zcGFuPgotPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQ7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1pdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQKLWNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUKLWFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5Ci1hbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7IDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywKLWluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2gKLWFzIGxvc3QgcHJvZml0czsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWlpKQotc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQgYXJlIG9mZmVyZWQgYnkgdGhhdAotQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPml2KQotc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2ggQ29udHJpYnV0b3IsIGFuZAotaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQotbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLjxzcGFuIHN0eWxlPSdjb2xvcjpibHVlJz4gPC9zcGFuPjwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZQotY29kZSBmb3JtOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpIGEKLWNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkKLWNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZQotb3JpZ2luYXRvciBvZiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3MKLXN1YnNlcXVlbnQgUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkKLWFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMKLWFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlCi1vZiB0aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwKLWxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmcXVvdDtDb21tZXJjaWFsCi1Db250cmlidXRvciZxdW90OykgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlcgotQ29udHJpYnV0b3IgKCZxdW90O0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnF1b3Q7KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kCi1jb3N0cyAoY29sbGVjdGl2ZWx5ICZxdW90O0xvc3NlcyZxdW90OykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyCi1sZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0bwotdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbgotY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QKLW9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyCi10byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCi10byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZAotYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUKLWluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuIFVuZGVyIHRoaXMKLXNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZQotb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYQotY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz41LiBOTyBXQVJSQU5UWTwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMKLUFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJnF1b3Q7QVMgSVMmcXVvdDsgQkFTSVMsIFdJVEhPVVQKLVdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi1XSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi1NRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUKLVByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMKLUFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywKLWNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yCi1lcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi1PRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwotTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YKLVRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YKLVRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz43LiBHRU5FUkFMPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkCi1vciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvcgotZW5mb3JjZWFiaWxpdHkgb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0Ci1mdXJ0aGVyIGFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZQotbWluaW11bSBleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24KLWFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkKLWFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGgKLW90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKSBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaAotUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZQotc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IKLWNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZQotcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MKLXJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZAotZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwKLVJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieQotUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUKLWNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcwotY29weXJpZ2h0ZWQgYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50Ci1TdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YKLXRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzCi10aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsCi1BZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0bwotc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uCi1vZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLShpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mCi10aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQotKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZAotaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0bwotdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIKLWV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QKLWV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZQotU3RhdGUgb2YgTmV3IFlvcmsgYW5kIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZgotQW1lcmljYS4gTm8gcGFydHkgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzCi1pdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uPC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbD48L3A+Ci0KLTwvZGl2PgotCi08L2JvZHk+Ci0KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjIwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MjAuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1OClodHRwczovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC0yLjAvRVBMLTIuMC5odG1sIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgICAKKyAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOworICAgICAgfQorICAgICAgaDF7CisgICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKKyAgICAgIH0KKyAgICAgIGgyeworICAgICAgICBmb250LXNpemU6MWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOworICAgICAgICBtYXJnaW4tdG9wOjFlbTsKKyAgICAgIH0KKyAgICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOworICAgICAgfQorICAgICAgdWwsIG9seworICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPGRpdiBpZD0iZWlkLWNocm9tZS1leHRlbnNpb24taXMtaW5zdGFsbGVkIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsLWZlYXR1cmUvcm9vdGZpbGVzL25vdGljZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwKaW5kZXggNzQxMjJiMi4uNmRkZTk1ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwKQEAgLTIwLDggKzIwLDggQEAKIAogPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgogCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMAorICAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KICAgIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlLm9yZyBDVlMgcmVwb3NpdG9yeSAoJnF1b3Q7UmVwb3NpdG9yeSZxdW90OykgaW4gQ1ZTCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvYWJvdXQuaHRtbAppbmRleCBmODhiOWM5Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+SnVuZSAyMiwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvcG9tLnhtbAppbmRleCA5NjYyYWFkLi4xNzFjOTQ1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0FTTVVNTE1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0FTTVVNTE1vZGVsLmphdmEKaW5kZXggMGY4ZDkyNS4uMjQwY2NhNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9BU01VTUxNb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvQVNNVU1MTW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIEMtUy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0FTTVVNTE1vZGVsRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9BU01VTUxNb2RlbEVsZW1lbnQuamF2YQppbmRleCAxMGM4OWNjLi4wNzViZTgyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0FTTVVNTE1vZGVsRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvQVNNVU1MTW9kZWxFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBIGFuZCBDLVMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9BdGxVTUwyTW9kZWxIYW5kbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0F0bFVNTDJNb2RlbEhhbmRsZXIuamF2YQppbmRleCA2YzYyMTUwLi44MjNlNWFjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0F0bFVNTDJNb2RlbEhhbmRsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0F0bFVNTDJNb2RlbEhhbmRsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIEMtUy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL0ludm9jYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvSW52b2NhdGlvbi5qYXZhCmluZGV4IDdhMDU4YzMuLmIyODgyYjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvSW52b2NhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvSW52b2NhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQSBhbmQgQy1TLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvVU1MTW9kZWxMb2FkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvVU1MTW9kZWxMb2FkZXIuamF2YQppbmRleCA4YmE4NGE3Li41YzJkNDJlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHJpdmVycy51bWwyNGF0bC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kcml2ZXJzL3VtbDI0YXRsL1VNTE1vZGVsTG9hZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9VTUxNb2RlbExvYWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRGVubmlzIFdhZ2VsYWFyIChWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kcml2ZXJzLnVtbDI0YXRsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RyaXZlcnMvdW1sMjRhdGwvcGFja2FnZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9wYWNrYWdlLmh0bWwKaW5kZXggODY2ZGYyYS4uYTk0YThkMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9wYWNrYWdlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRyaXZlcnMudW1sMjRhdGwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHJpdmVycy91bWwyNGF0bC9wYWNrYWdlLmh0bWwKQEAgLTYsOSArNiw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL2Fib3V0Lmh0bWwKaW5kZXggOWQ5ZTVhNi4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDUsIDIwMDQ8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3BvbS54bWwKaW5kZXggZmY0ZGJiNi4uZjQzMDY1MyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9BY3RpdmF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvQWN0aXZhdG9yLmphdmEKaW5kZXggNzc0NTQ0YS4uYWVlMTE0MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9BY3RpdmF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL0FjdGl2YXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIEZyZWRlcmljIEpvdWF1bHQgJiBNaWthZWwgQmFyYmVybyAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL0RTTFJlc291cmNlUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvRFNMUmVzb3VyY2VQcm92aWRlci5qYXZhCmluZGV4IGUxNTRiYmEuLjY4MzIwOTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvRFNMUmVzb3VyY2VQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvRFNMUmVzb3VyY2VQcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIEZyZWRlcmljIEpvdWF1bHQgJiBNaWthZWwgQmFyYmVybyAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL01lc3NhZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL01lc3NhZ2VzLmphdmEKaW5kZXggZmNlYWJiMi4uZDExNTU1YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvTWVzc2FnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gTWVzc2FnZXMgZXh0ZXJuYWxpemF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL1Jlc291cmNlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL1Jlc291cmNlLmphdmEKaW5kZXggY2Q4Njc0Zi4uZDM1Y2NkMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9SZXNvdXJjZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvUmVzb3VyY2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvY29yZS9FTUZUQ1NFeHRyYWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvY29yZS9FTUZUQ1NFeHRyYWN0b3IuamF2YQppbmRleCBlZjEzOGFjLi5hODBiNWZjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL2NvcmUvRU1GVENTRXh0cmFjdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9jb3JlL0VNRlRDU0V4dHJhY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvY29yZS9FTUZUQ1NJbmplY3Rvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9jb3JlL0VNRlRDU0luamVjdG9yLmphdmEKaW5kZXggM2QxMjY5Zi4uOWRlYzBkYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9jb3JlL0VNRlRDU0luamVjdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9jb3JlL0VNRlRDU0luamVjdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyLCAyMDE0IE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy9tZXNzYWdlcy5wcm9wZXJ0aWVzCmluZGV4IDExNGU5ZDUuLmU2YjkyYzAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvbWVzc2FnZXMucHJvcGVydGllcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9leHRyYWN0b3IvTW9kZWxBZGFwdGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9leHRyYWN0b3IvTW9kZWxBZGFwdGVyLmphdmEKaW5kZXggMjFhZDU0ZC4uNjRhZWRlOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL01vZGVsQWRhcHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2V4dHJhY3Rvci9Nb2RlbEFkYXB0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9leHRyYWN0b3IvUHJldHR5UHJpbnRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1ByZXR0eVByaW50ZXIuamF2YQppbmRleCA0Mjg2MzExLi5jMWE1YzI3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9leHRyYWN0b3IvUHJldHR5UHJpbnRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2V4dHJhY3Rvci9QcmV0dHlQcmludGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3Rpb25FeGNlcHRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2V4dHJhY3Rvci9UQ1NFeHRyYWN0aW9uRXhjZXB0aW9uLmphdmEKaW5kZXggYWMzYTg1ZS4uNTc4NTgwMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3Rpb25FeGNlcHRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9leHRyYWN0b3IvVENTRXh0cmFjdGlvbkV4Y2VwdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2V4dHJhY3Rvci9UQ1NFeHRyYWN0b3JQcmludFN0cmVhbS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3RvclByaW50U3RyZWFtLmphdmEKaW5kZXggMDM1YjkwNS4uNTU1YjNlMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3RvclByaW50U3RyZWFtLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3RvclByaW50U3RyZWFtLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3RvclN0cmVhbS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvZXh0cmFjdG9yL1RDU0V4dHJhY3RvclN0cmVhbS5qYXZhCmluZGV4IDg5NzI1YmEuLjhhYmYzYzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2V4dHJhY3Rvci9UQ1NFeHRyYWN0b3JTdHJlYW0uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9leHRyYWN0b3IvVENTRXh0cmFjdG9yU3RyZWFtLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvQUNHX0FOVExSM0xleGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BQ0dfQU5UTFIzTGV4ZXIuamF2YQppbmRleCA0MjFiYmZlLi44MDFhZGMzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BQ0dfQU5UTFIzTGV4ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BQ0dfQU5UTFIzTGV4ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BQ0dfQU5UTFIzUGFyc2VyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BQ0dfQU5UTFIzUGFyc2VyLmphdmEKaW5kZXggMzlkNmIxNy4uZWFlOGNmOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvQUNHX0FOVExSM1BhcnNlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0FDR19BTlRMUjNQYXJzZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BVExfQU5UTFIzTGV4ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0FUTF9BTlRMUjNMZXhlci5qYXZhCmluZGV4IDZlMjdjN2EuLjVjMDY3NGMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0FUTF9BTlRMUjNMZXhlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0FUTF9BTlRMUjNMZXhlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0FUTF9BTlRMUjNQYXJzZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0FUTF9BTlRMUjNQYXJzZXIuamF2YQppbmRleCBhMDlhZjU3Li5hYWI1ZDRiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9BVExfQU5UTFIzUGFyc2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvQVRMX0FOVExSM1BhcnNlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL0NvbXBsZXRpb25JbmZvcm1hdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvQ29tcGxldGlvbkluZm9ybWF0aW9uLmphdmEKaW5kZXggYWQ5Yjg3YS4uNDA1OWNiZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvQ29tcGxldGlvbkluZm9ybWF0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvQ29tcGxldGlvbkluZm9ybWF0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvRWxlbWVudFRyYWNlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9FbGVtZW50VHJhY2UuamF2YQppbmRleCA5ZGI2NTg0Li43ZmIxNGEzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9FbGVtZW50VHJhY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9FbGVtZW50VHJhY2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9Nb2RlbEFkYXB0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL01vZGVsQWRhcHRlci5qYXZhCmluZGV4IDg0NTEyZTcuLmFiZjk5OWYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL01vZGVsQWRhcHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL01vZGVsQWRhcHRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL1BhcnNlckxhdW5jaGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9QYXJzZXJMYXVuY2hlci5qYXZhCmluZGV4IGNhNWE1YTYuLmI4YjE2ZWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL1BhcnNlckxhdW5jaGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvUGFyc2VyTGF1bmNoZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDE0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9SZWZlcmVuY2VMb2NhdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvUmVmZXJlbmNlTG9jYXRpb24uamF2YQppbmRleCBlYjUyZTk5Li5hODc3YmVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9SZWZlcmVuY2VMb2NhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL1JlZmVyZW5jZUxvY2F0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvVENTQ2xhc3NMb2FkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL1RDU0NsYXNzTG9hZGVyLmphdmEKaW5kZXggN2UxOTFkNC4uMDI3ODI1MyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvVENTQ2xhc3NMb2FkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9UQ1NDbGFzc0xvYWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL1RDU1J1bnRpbWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL1RDU1J1bnRpbWUuamF2YQppbmRleCAyY2Y4ZjZiLi5mN2YyOTJhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci9UQ1NSdW50aW1lLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3IvVENTUnVudGltZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL3dyYXBwZXJzL1BhcnNlcldyYXBwZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL3dyYXBwZXJzL1BhcnNlcldyYXBwZXIuamF2YQppbmRleCAxYTM2MTYxLi40YTZhZmM1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci93cmFwcGVycy9QYXJzZXJXcmFwcGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3Ivd3JhcHBlcnMvUGFyc2VyV3JhcHBlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDgsIDIwMTQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL3dyYXBwZXJzL2FudGxyMy9BTlRMUjNMb2NhdGlvblRva2VuLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci93cmFwcGVycy9hbnRscjMvQU5UTFIzTG9jYXRpb25Ub2tlbi5qYXZhCmluZGV4IDc2NzAwNTMuLjI0OTNmYTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL3dyYXBwZXJzL2FudGxyMy9BTlRMUjNMb2NhdGlvblRva2VuLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3Ivd3JhcHBlcnMvYW50bHIzL0FOVExSM0xvY2F0aW9uVG9rZW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA0LCAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci93cmFwcGVycy9hbnRscjMvUGFyc2VyV3JhcHBlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90Y3MvaW5qZWN0b3Ivd3JhcHBlcnMvYW50bHIzL1BhcnNlcldyYXBwZXIuamF2YQppbmRleCBmOTAzYjE2Li5jYWFmMDU5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3Rjcy9pbmplY3Rvci93cmFwcGVycy9hbnRscjMvUGFyc2VyV3JhcHBlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGNzL2luamVjdG9yL3dyYXBwZXJzL2FudGxyMy9QYXJzZXJXcmFwcGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwNCwgMjAwOCwgMjAxNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL0J5dGVBcnJheVRleHRTb3VyY2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9CeXRlQXJyYXlUZXh0U291cmNlLmphdmEKaW5kZXggM2E5NjAwZi4uNmI2ZWEwYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL0J5dGVBcnJheVRleHRTb3VyY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3RleHRzb3VyY2UvQnl0ZUFycmF5VGV4dFNvdXJjZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9JRmlsZVRleHRTb3VyY2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9JRmlsZVRleHRTb3VyY2UuamF2YQppbmRleCBmZGRiNjgxLi5hZTgzMDgxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3RleHRzb3VyY2UvSUZpbGVUZXh0U291cmNlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL0lGaWxlVGV4dFNvdXJjZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9TdHJpbmdUZXh0U291cmNlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3RleHRzb3VyY2UvU3RyaW5nVGV4dFNvdXJjZS5qYXZhCmluZGV4IDA3N2Q3ZWYuLjM0YzFmNzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9TdHJpbmdUZXh0U291cmNlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL1N0cmluZ1RleHRTb3VyY2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBGcmVkZXJpYyBKb3VhdWx0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3RleHRzb3VyY2UvVGV4dFNvdXJjZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL1RleHRTb3VyY2UuamF2YQppbmRleCA1YzgyZDk2Li42NjkyMWQ1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3RleHRzb3VyY2UvVGV4dFNvdXJjZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9UZXh0U291cmNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRnJlZGVyaWMgSm91YXVsdCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL1VSTFRleHRTb3VyY2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5kc2xzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2RzbHMvdGV4dHNvdXJjZS9VUkxUZXh0U291cmNlLmphdmEKaW5kZXggY2I3YmQ3Zi4uMjZhZTQzMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmRzbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZHNscy90ZXh0c291cmNlL1VSTFRleHRTb3VyY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZHNscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9kc2xzL3RleHRzb3VyY2UvVVJMVGV4dFNvdXJjZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9idWlsZC5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKaW5kZXggMDZkMTQ0My4uZjIzOGY2ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLWZlYXR1cmUvY29weXJpZ2h0LnR4dCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9jb3B5cmlnaHQudHh0CmluZGV4IDBlMDVlYmQuLjUzOTRmZjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9jb3B5cmlnaHQudHh0CisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9jb3B5cmlnaHQudHh0CkBAIC0xLDUgKzEsNSBAQAogQ29weXJpZ2h0IChjKSAyMDExLTIwMTQgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9lcGwtdjEwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLWZlYXR1cmUvZXBsLXYxMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTU3ZjNlLi4wMDAwMDAwCi0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0MSlodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLQotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICBib2R5IHsKLSAgICBzaXplOiA4LjVpbiAxMS4waW47Ci0gICAgbWFyZ2luOiAwLjI1aW4gMC41aW4gMC4yNWluIDAuNWluOwotICAgIHRhYi1pbnRlcnZhbDogMC41aW47Ci0gICAgfQotICBwIHsgIAkKLSAgICBtYXJnaW4tbGVmdDogYXV0bzsKLSAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgfQotICBwLmxpc3QgewotICAJbWFyZ2luLWxlZnQ6IDAuNWluOwotICAgIG1hcmdpbi10b3A6ICAwLjA1ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC4wNWVtOwotICAgIH0KLSAgPC9zdHlsZT4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiPgotCi08aDI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9oMj4KLQotPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLVBVQkxJQyBMSUNFTlNFICgiQUdSRUVNRU5UIikuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUgotRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUwotQUdSRUVNRU5ULjwvcD4KLQotPHA+PGI+MS4gREVGSU5JVElPTlM8L2I+PC9wPgotCi08cD4iQ29udHJpYnV0aW9uIiBtZWFuczo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwKLWNvZGUgYW5kIGRvY3VtZW50YXRpb24gZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9wPgotPHAgY2xhc3M9Imxpc3QiPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvcD4KLTxwIGNsYXNzPSJsaXN0Ij53aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbQotb3JpZ2luYXRlIGZyb20gYW5kIGFyZSBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEKLUNvbnRyaWJ1dGlvbiAnb3JpZ2luYXRlcycgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUKLVByb2dyYW0gYnkgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoCi1Db250cmlidXRvcidzIGJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlCi1Qcm9ncmFtIHdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4KLWNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKQotYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzCi10aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJMaWNlbnNlZCBQYXRlbnRzIiBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhCi1Db250cmlidXRvciB3aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMKLUNvbnRyaWJ1dGlvbiBhbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uPC9wPgotCi08cD4iUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZQotd2l0aCB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPiJSZWNpcGllbnQiIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIKLXRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3A+Ci0KLTxwPjxiPjIuIEdSQU5UIE9GIFJJR0hUUzwvYj48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaAotQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsCi1yb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3MKLW9mLCBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZQotQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4KLXNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoCi1Db250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKLXJveWFsdHktZnJlZSBwYXRlbnQgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwKLW9mZmVyIHRvIHNlbGwsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50Ci1saWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUKLVByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLAotc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLWJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueSBvdGhlcgotY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvcgotZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzCi1hcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi1wYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoCi1Db250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcyBicm91Z2h0IGJ5Ci1hbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzCi1vciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQgbGljZW5zZXMKLWdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvcgotZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQKLXRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUKLXRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQKLWhhcyBzdWZmaWNpZW50IGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudAotdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPjxiPjMuIFJFUVVJUkVNRU5UUzwvYj48L3A+Ci0KLTxwPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGluIG9iamVjdCBjb2RlCi1mb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcwotQWdyZWVtZW50OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzCi1hbGwgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLW9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IKLWNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMKLWFsbCBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paWkpIHN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMKLUFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0IENvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyCi1wYXJ0eTsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aXYpIHN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUKLWZyb20gc3VjaCBDb250cmlidXRvciwgYW5kIGluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYQotcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZQotZXhjaGFuZ2UuPC9wPgotCi08cD5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoCi1jb3B5IG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQKLXdpdGhpbiB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlIG9yaWdpbmF0b3Igb2YgaXRzCi1Db250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cyBzdWJzZXF1ZW50Ci1SZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uPC9wPgotCi08cD48Yj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvYj48L3A+Ci0KLTxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbgotcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlCi1saWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YKLXRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlCi1wb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvcgotaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKLSgiQ29tbWVyY2lhbCBDb250cmlidXRvciIpIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZAotaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yICgiSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IiKQotYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICJMb3NzZXMiKQotYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkCi1wYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUKLWFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuIFRoZQotb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluCi1vcmRlciB0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkKLXRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZQotQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZQotSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24KLWV4cGVuc2UuPC9wPgotCi08cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsCi1Db250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCi1jbGFpbXMgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5Ci1hbG9uZS4gVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvCi1kZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlCi1wZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlcgotQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvcgotbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3A+Ci0KLTxwPjxiPjUuIE5PIFdBUlJBTlRZPC9iPjwvcD4KLQotPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIFRIRSBQUk9HUkFNIElTCi1QUk9WSURFRCBPTiBBTiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUwotT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sCi1BTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFkKLU9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi1leGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi10aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLAotZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLWludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLjwvcD4KLQotPHA+PGI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2I+PC9wPgotCi08cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgTkVJVEhFUiBSRUNJUElFTlQKLU5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi1JTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HCi1XSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKLUxJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRAotSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3A+Ci0KLTxwPjxiPjcuIEdFTkVSQUw8L2I+PC9wPgotCi08cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mCi10aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24KLWJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0KLWV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9wPgotCi08cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkKLShpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZQotUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlcgotc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZQotZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuPC9wPgotCi08cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdAotZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMKLUFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lCi1hZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMKLXVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuPC9wPgotCi08cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcwotQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZQotQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcKLXJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZQotQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlCi1Gb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heQotYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYQotc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZQotZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0gKGluY2x1ZGluZwotQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mIHRoZQotQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUKLVByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMKLWV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vCi1yaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIKLXRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yCi1vdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMKLUFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuPC9wPgotCi08cD5UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgTmV3IFlvcmsgYW5kCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYS4gTm8gcGFydHkKLXRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcyBBZ3JlZW1lbnQgbW9yZQotdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcyBpdHMKLXJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLjwvcD4KLQotCi0KLTwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2VwbC12MjAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNTgpaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtMi4wL0VQTC0yLjAuaHRtbCAtLT4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgCisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KKyAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorICAgICAgUFVCTElDIExJQ0VOU0UgKOKAnEFHUkVFTUVOVOKAnSkuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KKyAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KKyAgICA8cD7igJxDb250cmlidXRpb27igJ0gbWVhbnM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgICAgICAg4oCcb3JpZ2luYXRlc+KAnSBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KKyAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0CisgICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+4oCcQ29udHJpYnV0b3LigJ0gbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+CisgICAgPHA+4oCcTGljZW5zZWQgUGF0ZW50c+KAnSBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCisgICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCisgICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCisgICAgPC9wPgorICAgIDxwPuKAnFByb2dyYW3igJ0gbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKKyAgICAgIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPHA+4oCcUmVjaXBpZW504oCdIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCisgICAgPC9wPgorICAgIDxwPuKAnERlcml2YXRpdmUgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCisgICAgPC9wPgorICAgIDxwPuKAnE1vZGlmaWVkIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CisgICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKKyAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQorICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKKyAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKKyAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCisgICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCisgICAgICBXb3JrcyB0aGVyZW9mLgorICAgIDwvcD4KKyAgICA8cD7igJxEaXN0cmlidXRl4oCdIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCisgICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgorICAgIDwvcD4KKyAgICA8cD7igJxTb3VyY2UgQ29kZeKAnSBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCisgICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgPC9wPgorICAgIDxwPuKAnFNlY29uZGFyeSBMaWNlbnNl4oCdIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgIENvbnRyaWJ1dG9yLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKKyAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKKyAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKKyAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKKyAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAorICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAorICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKKyAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55CisgICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgorICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgICAgICA8L2xpPgorICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKKyAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCisgICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgICAgICA8L2xpPgorICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisgICAgICA8L2xpPgorICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgorICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAorICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQncyByZWNlaXB0IG9mIHRoZQorICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKKyAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+CisgICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQorICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQorICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCisgICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKKyAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQorICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCisgICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMnIHJpZ2h0cyBpbiB0aGUKKyAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQorICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQorICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQorICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bworICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAorICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKKyAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKKyAgICAgICjigJhub3RpY2Vz4oCZKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKKyAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKKyAgICAgIG5vdGljZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KKyAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcworICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCisgICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKKyAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKKyAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgorICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQorICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICjigJxDb21tZXJjaWFsIENvbnRyaWJ1dG9y4oCdKQorICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgorICAgICAgKOKAnEluZGVtbmlmaWVkIENvbnRyaWJ1dG9y4oCdKSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCisgICAgICAoY29sbGVjdGl2ZWx5IOKAnExvc3Nlc+KAnSkgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKKyAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50CisgICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCisgICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCisgICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZworICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCisgICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCisgICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCisgICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAorICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKyAgICA8L3A+CisgICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQorICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCisgICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKKyAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4KKyAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCisgICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCisgICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCisgICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiDigJxBUyBJU+KAnSBCQVNJUywgV0lUSE9VVAorICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKKyAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKKyAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQorICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKKyAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKKyAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKKyAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAorICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUworICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgorICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCisgICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCisgICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKKyAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKKyAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKyAgICA8L3A+CisgICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKKyAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCisgICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZAorICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisgICAgPC9wPgorICAgIDxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCisgICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCisgICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKKyAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCisgICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyCisgICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQorICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKyAgICA8L3A+CisgICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5CisgICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKKyAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAorICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAorICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcworICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCisgICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KKyAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCisgICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3CisgICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQorICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgorICAgIDwvcD4KKyAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKKyAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQorICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKKyAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKKyAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAorICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KKyAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSDigJMgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KKyAgICA8cD7igJxUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCisgICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCisgICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKKyAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS7igJ0KKyAgICA8L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCisgICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCisgICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCisgICAgICAgIHN1Y2ggYSBub3RpY2UuCisgICAgICA8L3A+CisgICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICAKKzxkaXYgaWQ9ImVpZC1jaHJvbWUtZXh0ZW5zaW9uLWlzLWluc3RhbGxlZCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwppbmRleCA0MjczNjI0Li5hMTI3NzQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMyBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpAQCAtMjMsOSArMjMsNjggQEAKIGNvcHlyaWdodFVSTD1jb3B5cmlnaHQudHh0CiBjb3B5cmlnaHQ9Q29weXJpZ2h0IChjKSAyMDExLTIwMTQgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC5cblwKIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcblwKLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxuXAorYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXG5cCiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxuXAotaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKK2h0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCisKKyMgLyoqCisjICAqIDxjb3B5cmlnaHQ+CisjICAqCisjICAqIENvcHlyaWdodCAoYykgMjAwMiwgMjAwOSBBVExBUyBHcm91cCAoSU5SSUEgJiBMSU5BKS4KKyMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAorIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyAgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLworIyAgKiAKKyMgICogQ29udHJpYnV0b3JzOiAKKyMgICogICBBVExBUyBHcm91cCAoSU5SSUEgJiBMSU5BKQorIyAgKgorIyAgKiA8L2NvcHlyaWdodD4KKyMgICoKKyMgICovCisKKyMgTkxTX01FU1NBR0VGT1JNQVRfVkFSCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIERvIG5vdCBjaGFuZ2UgdGhlIHByb3BlcnRpZXMgYmV0d2VlbiB0aGlzIGxpbmUgYW5kIHRoZSBsYXN0IGxpbmUgY29udGFpbmluZzoKKyMgJSUlIEVORCBPRiBUUkFOU0xBVEVEIFBST1BFUlRJRVMgJSUlCisjIEluc3RlYWQsIGVpdGhlciByZWRlZmluZSBhbiBleGlzdGluZyBwcm9wZXJ0eSwgb3IgY3JlYXRlIGEgbmV3IHByb3BlcnR5LAorIyBhcHBlbmQgaXQgdG8gdGhlIGVuZCBvZiB0aGUgZmlsZSwgYW5kIGNoYW5nZSB0aGUgY29kZSB0byB1c2UgdGhlIG5ldyBuYW1lLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworIyBUaGlzIGZpbGUgY29udGFpbnMgZXh0ZXJuYWxpemVkIHN0cmluZ3MgZm9yIGZlYXR1cmUueG1sCisjICIlZm9vIiBpbiBmZWF0dXJlLnhtbCBjb3JyZXNwb25kcyB0byB0aGUga2V5ICJmb28iIGluIHRoaXMgZmlsZQorIyBqYXZhLmlvLlByb3BlcnRpZXMgZmlsZSAoSVNPIDg4NTktMSB3aXRoICJcIiBlc2NhcGVzKQorIyBUaGlzIGZpbGUgc2hvdWxkIGJlIHRyYW5zbGF0ZWQuCisKKyMgImZlYXR1cmVOYW1lIiBwcm9wZXJ0eSAtIG5hbWUgb2YgdGhlIGZlYXR1cmUKK2ZlYXR1cmVOYW1lID0gQVRMIC0gQVRMIFRyYW5zZm9ybWF0aW9uIExhbmd1YWdlCisKKyMgInByb3ZpZGVyTmFtZSIgcHJvcGVydHkgLSBuYW1lIG9mIHRoZSBjb21wYW55IHRoYXQgcHJvdmlkZXMgdGhlIGZlYXR1cmUKK3Byb3ZpZGVyTmFtZSA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdAorCisjICJkZXNjcmlwdGlvbiIgcHJvcGVydHkgLSBkZXNjcmlwdGlvbiBvZiB0aGUgZmVhdHVyZQorZGVzY3JpcHRpb24gPSBBVEwgUnVudGltZS4KKworIyAidXBkYXRlU2l0ZU5hbWUiIHByb3BlcnR5IC0gbGFiZWwgZm9yIHRoZSB1cGRhdGUgc2l0ZQorTW9kZWxpbmdVcGRhdGVTaXRlTmFtZT1FY2xpcHNlIE1vZGVsaW5nCisKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjICUlJSBFTkQgT0YgVFJBTlNMQVRFRCBQUk9QRVJUSUVTICUlJQorIyBUaGUgYWJvdmUgcHJvcGVydGllcyBoYXZlIGJlZW4gc2hpcHBlZCBmb3IgdHJhbnNsYXRpb24uCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCitjb3B5cmlnaHRVUkwgPSBjb3B5cmlnaHQudHh0Citjb3B5cmlnaHQgPSBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDkgSU5SSUEuIFxuXAorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCBcblwKK3doaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0IFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8gXG5cCisgXG5cCisgICAKKyMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgorIyBkbyBub3QgdHJhbnNsYXRlIHZhbHVlIC0ganVzdCBjaGFuZ2UgdG8gcG9pbnQgdG8gYSBsb2NhbGUtc3BlY2lmaWMgSFRNTCBwYWdlCitsaWNlbnNlVVJMPWxpY2Vuc2UuaHRtbAogCiAjICJsaWNlbnNlVVJMIiBwcm9wZXJ0eSAtIFVSTCBvZiB0aGUgIkZlYXR1cmUgTGljZW5zZSIKICMgZG8gbm90IHRyYW5zbGF0ZSB2YWx1ZSAtIGp1c3QgY2hhbmdlIHRvIHBvaW50IHRvIGEgbG9jYWxlLXNwZWNpZmljIEhUTUwgcGFnZQpAQCAtMzUsMTI1ICs5NCwxNDMgQEAKICMgc2hvdWxkIGJlIHBsYWluIHRleHQgdmVyc2lvbiBvZiBsaWNlbnNlIGFncmVlbWVudCBwb2ludGVkIHRvIGJlICJsaWNlbnNlVVJMIgogbGljZW5zZT1cCiBFY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnRcblwKLUFwcmlsIDksIDIwMTRcblwKK1xuXAorTm92ZW1iZXIgMjIsIDIwMTdcblwKIFxuXAogVXNhZ2UgT2YgQ29udGVudFxuXAogXG5cCi1USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SXG5cCi1PVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS5cblwKLVVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJU1xuXAotQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SXG5cCi1OT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVVxuXAotQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVFxuXAotQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFNcblwKLU9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAotVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OU1xuXAotT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKLUJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKK1RIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTlxuXAorQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLiBVU0UgT0ZcblwKK1RIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFXG5cCitURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAorQkVMT1cuIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRFxuXAorQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFXG5cCitBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCitURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWVxuXAorQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1VcblwKK01BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAogXG5cCiBBcHBsaWNhYmxlIExpY2Vuc2VzXG5cCiBcblwKLVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGVcblwKLUVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mXG5cCi10aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpc1xuXAotcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCitVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvblxuXAoraXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZVxuXAorVmVyc2lvbiAyLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc29cblwKK2F2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAuIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLFxuXAorIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKIFxuXAotQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsXG5cCi1kb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGVcblwKLXJlcG9zaXRvcnkgKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGVcblwKLWFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLlxuXAorQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb25cblwKK2FuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUgcmVwb3NpdG9yeVxuXAorKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGUgYXNcblwKK2Rvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLlxuXAogXG5cCi1cdC0gQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZyxcblwKLVx0ICBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksXG5cCi1cdCAgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKLVx0LSBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmEoVE0pIEFSY2hpdmUpXG5cCi1cdCAgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAotXHQtIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLlxuXAotXHQgIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuXG5cCi1cdCAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uXG5cCi1cdCAgbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLlxuXAotXHQtIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlc1xuXAotXHQgIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAorLSAgIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlXG5cCisgICAgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5XG5cCisgICAgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZFxuXAorICAgIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKKy0gICBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVJcblwKKyAgICAoSmF2YVx1MjEyMiBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCistICAgQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kXG5cCisgICAgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYVxuXAorICAgIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heVxuXAorICAgIGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3JcblwKKyAgICBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKKy0gICBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGFcblwKKyAgICBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kXG5cCisgICAgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAogXG5cCi1UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlXG5cCi1jb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmRcblwKLWNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkXG5cCi1pbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlXG5cCi1MaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlXG5cCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluXG5cCitmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlc1xuXAorYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCJcblwKKygiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55XG5cCitkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZ1xuXAorbG9jYXRpb25zOlxuXAogXG5cCi1cdC0gVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCi1cdC0gUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKLVx0LSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi1cdC0gU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAotXHQtIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKKy0gICBUaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3RvcnlcblwKKy0gICBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAorLSAgIEluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnNcblwKKy0gICBTdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zXG5cCistICAgRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAogXG5cCi1Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlXG5cCi1Qcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgXG5cCi1VcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCi1JbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAotd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKLXlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKLXRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS5cblwKLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGVcblwKLXRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXRcblwKLWdvdmVybiB5b3VyIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAorTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nXG5cCit0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2VcblwKKygiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlXG5cCitjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAord2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91XG5cCit3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICJsaWNlbnNlIlxuXAorcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4gU3VjaFxuXAorQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mXG5cCit0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAogXG5cCi1USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSXG5cCi1UTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy5cblwKLVNPTUUgT0YgVEhFU0UgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKK1RIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTFxuXAorT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFXG5cCitPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAogXG5cCi1cdC0gRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbClcblwKLVx0LSBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKLVx0LSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKLVx0LSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXG5cCi1cdC0gTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKKy0gICBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbClcblwKKy0gICBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCistICAgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFKVxuXAorLSAgIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAorLSAgIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKIFxuXAotSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUlxuXAotVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlXG5cCi1pcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9uc1xuXAotZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAorSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUT1xuXAorVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzXG5cCitwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmRcblwKK2NvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAogXG5cCi1cblxVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKK1VzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAogXG5cCi1UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsXG5cCi1idXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvclxuXAotdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yXG5cCi1vdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGhcblwKLXRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLlxuXAotSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAorVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaFxuXAoraW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyXG5cCisoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGxcblwKK3NvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHlcblwKKyJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nXG5cCitzdWNoIHVzZXJzIHRvIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uXG5cCithYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0XG5cCiBodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sICgiU3BlY2lmaWNhdGlvbiIpLlxuXAogXG5cCi1Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvIGluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCi1Zb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGVcblwKLUluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCi1pbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kXG5cCi1tYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAotYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOlxuXAorWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsXG5cCitJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZVxuXAorbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZFxuXAorYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuXAorU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0XG5cCithdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyXG5cCithZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZVxuXAorZm9sbG93aW5nOlxuXAogXG5cCi1cdDEuIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGVcblwKLVx0ICAgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsXG5cCi1cdCAgIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuXG5cCi1cdDIuIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHlcblwKLVx0ICAgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuXG5cCi1cdDMuIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0XG5cCi1cdCAgIGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoXG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlXG5cCi1cdCAgIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZVxuXAotXHQgICB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5XG5cCi1cdCAgIHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaFxuXAotXHQgICBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uXG5cCi1cdCAgIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKKzEuICBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heVxuXAorICAgIGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGVcblwKKyAgICBpbnRlbnQgb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuXG5cCisgICAgRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAorMi4gIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmRcblwKKyAgICBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvXG5cCisgICAgdGhlIFRhcmdldCBNYWNoaW5lLlxuXAorMy4gIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmVcblwKKyAgICBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2hcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZFxuXAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZVxuXAorICAgIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZVxuXAorICAgIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGVcblwKKyAgICBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGVcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKIFxuXAogQ3J5cHRvZ3JhcGh5XG5cCiBcblwKLUNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZVxuXAotY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLFxuXAotYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRVxuXAotdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsXG5cCi1yZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZFxuXAotcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC5cblwKK0NvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZSBjdXJyZW50bHlcblwKK21heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvXG5cCithbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSxcblwKK3BsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsXG5cCitwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXNcblwKK3Blcm1pdHRlZC5cblwKIFxuXAotSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgorSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlXG5cCitVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KICMjIyMjIyMjIyMjIGVuZCBvZiBsaWNlbnNlIHByb3BlcnR5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9saWNlbnNlLmh0bWwKaW5kZXggY2VjZjEzNy4uYWZiMmYzNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL2xpY2Vuc2UuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLWZlYXR1cmUvbGljZW5zZS5odG1sCkBAIC0xLDEwNiArMSwxOTAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNDQpaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwvbm90aWNlLmh0bWwgLS0+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CiAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+CiA8dGl0bGU+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2hlYWQ+Cis8L2hlYWQ+CiAKIDxib2R5IGxhbmc9IkVOLVVTIj4KLTxoMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L2gyPgotPHA+QXByaWwgOSwgMjAxNDwvcD4KKwk8aDI+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9oMj4KKwk8cD5Ob3ZlbWJlciAyMiwgMjAxNzwvcD4KIAotPGgzPlVzYWdlIE9mIENvbnRlbnQ8L2gzPgorCTxoMz5Vc2FnZSBPZiBDb250ZW50PC9oMz4KIAotPHA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCi0gICAoQ09MTEVDVElWRUxZICJDT05URU5UIikuICBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFCi0gICBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUgotICAgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC48L3A+CisJPHA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sCisJCUlORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCisJCShDT0xMRUNUSVZFTFkgJnF1b3Q7Q09OVEVOVCZxdW90OykuIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWQorCQlUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKKwkJQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTCisJCUdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZCisJCUFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQKKwkJQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMKKwkJQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRQorCQlBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QKKwkJVVNFIFRIRSBDT05URU5ULjwvcD4KIAotPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgorCTxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KIAotPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAotICAgKCJFUEwiKS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgotICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgorCTxwPgorCQlVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQorCQlFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlCisJCUVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KKwkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgorCTwvcD4KIAotPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZQotICAgcmVwb3NpdG9yeSAoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS48L3A+CisJPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0CisJCWNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBzb3VyY2UgY29kZSByZXBvc2l0b3J5ICgmcXVvdDtSZXBvc2l0b3J5JnF1b3Q7KSBpbiBzb2Z0d2FyZQorCQltb2R1bGVzICgmcXVvdDtNb2R1bGVzJnF1b3Q7KSBhbmQgbWFkZSBhdmFpbGFibGUgYXMgZG93bmxvYWRhYmxlCisJCWFyY2hpdmVzICgmcXVvdDtEb3dubG9hZHMmcXVvdDspLjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuICBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLjwvbGk+Ci0gICAgICAgPGxpPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUiAoSmF2YZkgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLjwvbGk+Ci0gICAgICAgPGxpPkEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiAgRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucwotICAgICAgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+Ci0gICAgICAgPGxpPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8KKwkJCWZhY2lsaXRhdGUgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsCisJCQltb2R1bGVzIG1heSBpbmNsdWRlIHBsdWctaW5zICgmcXVvdDtQbHVnLWlucyZxdW90OyksIHBsdWctaW4KKwkJCWZyYWdtZW50cyAoJnF1b3Q7RnJhZ21lbnRzJnF1b3Q7KSwgYW5kIGZlYXR1cmVzCisJCQkoJnF1b3Q7RmVhdHVyZXMmcXVvdDspLjwvbGk+CisJCTxsaT5FYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeQorCQkJb3IgSkFSIChKYXZhJnRyYWRlOyBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZAorCQkJJnF1b3Q7cGx1Z2lucyZxdW90Oy48L2xpPgorCQk8bGk+QSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vcgorCQkJRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEKKwkJCXN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgJnF1b3Q7ZmVhdHVyZXMmcXVvdDsuIFdpdGhpbiBhCisJCQlGZWF0dXJlLCBmaWxlcyBuYW1lZCAmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YKKwkJCXRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzCisJCQlhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+CisJCTxsaT5GZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgmcXVvdDtJbmNsdWRlZAorCQkJRmVhdHVyZXMmcXVvdDspLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZAorCQkJJnF1b3Q7ZmVhdHVyZS54bWwmcXVvdDsgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbgorCQkJbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L2xpPgorCTwvdWw+CiAKLTxwPlRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAotSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gIEFib3V0cyBhbmQgRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CisJPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZAorCQliZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgJnF1b3Q7YWJvdXQuaHRtbCZxdW90OworCQkoJnF1b3Q7QWJvdXRzJnF1b3Q7KS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQKKwkJSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZAorCQkmcXVvdDtsaWNlbnNlLmh0bWwmcXVvdDsgKCZxdW90O0ZlYXR1cmUgTGljZW5zZXMmcXVvdDspLiBBYm91dHMgYW5kCisJCUZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yCisJCU1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAKLTx1bD4KLSAgICAgICA8bGk+VGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5PC9saT4KLSAgICAgICA8bGk+UGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXM8L2xpPgotICAgICAgIDxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KLSAgICAgICA8bGk+U3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluczwvbGk+Ci0gICAgICAgPGxpPkZlYXR1cmUgZGlyZWN0b3JpZXM8L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgorCQk8bGk+UGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXM8L2xpPgorCQk8bGk+SW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSczwvbGk+CisJCTxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtzcmMmcXVvdDsgb2YKKwkJCWNlcnRhaW4gUGx1Zy1pbnM8L2xpPgorCQk8bGk+RmVhdHVyZSBkaXJlY3RvcmllczwvbGk+CisJPC91bD4KIAotPHA+Tm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlCi1pbnN0YWxsYXRpb24gcHJvY2Vzcy4gIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLCB0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IKLWluZm9ybSB5b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4KLXRoYXQgZGlyZWN0b3J5LjwvcD4KKwk8cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcworCQlpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91CisJCW11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgmcXVvdDtGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlJnF1b3Q7KSBkdXJpbmcKKwkJdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywKKwkJdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcworCQlhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgdGhlIEluY2x1ZGVkIEZlYXR1cmVzIG9yIGluZm9ybSB5b3Ugd2hlcmUgeW91CisJCWNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZQorCQkmcXVvdDtsaWNlbnNlJnF1b3Q7IHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkCisJCSZxdW90O2ZlYXR1cmUucHJvcGVydGllcyZxdW90OyBmb3VuZCB3aXRoaW4gYSBGZWF0dXJlLiBTdWNoIEFib3V0cywKKwkJRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZAorCQljb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuCisJCXlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4gdGhhdCBkaXJlY3RvcnkuPC9wPgogCi08cD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiAgU09NRSBPRiBUSEVTRQotT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTo8L3A+CisJPHA+VEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWQorCQlSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQKKwkJQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVAorCQlBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5FY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbDwvYT4pPC9saT4KLSAgICAgICA8bGk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPik8L2xpPgotICAgICAgIDxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9hPik8L2xpPgotICAgICAgIDxsaT5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KTwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbDwvYT4pCisJCTwvbGk+CisJCTxsaT5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L2E+KQorCQk8L2xpPgorCQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9hPikKKwkJPC9saT4KKwkJPGxpPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KQorCQk8L2xpPgorCTwvdWw+CiAKLTxwPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiAgSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlCi1jb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LjwvcD4KKwk8cD5JVCBJUyBZT1VSIE9CTElHQVRJT04gVE8gUkVBRCBBTkQgQUNDRVBUIEFMTCBTVUNIIFRFUk1TIEFORAorCQlDT05ESVRJT05TIFBSSU9SIFRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwKKwkJb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdAorCQlwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgogCiAKLTxoMz5Vc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3k8L2gzPgorCTxoMz5Vc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3k8L2gzPgogCi08cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZQotICAgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3IKLSAgIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5ICJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8KLSAgIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KLSAgICgiU3BlY2lmaWNhdGlvbiIpLjwvcD4KKwk8cD4KKwkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcworCQlvZiB3aGljaCBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlCisJCU1hbmFnZXIgKCZxdW90O1Byb3Zpc2lvbmluZyBUZWNobm9sb2d5JnF1b3Q7KSBmb3IgdGhlIHB1cnBvc2Ugb2YKKwkJYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yCisJCW90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5ICZxdW90O0luc3RhbGxhYmxlIFNvZnR3YXJlJnF1b3Q7KS4gVGhpcworCQljYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvCisJCWluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0CisJCXBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWwiPmh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWw8L2E+CisJCSgmcXVvdDtTcGVjaWZpY2F0aW9uJnF1b3Q7KS4KKwk8L3A+CiAKLTxwPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUKLSAgIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUKLSAgIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvcD4KKwk8cD5Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvCisJCWluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcKKwkJdGhlIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQl0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcKKwkJVGVjaG5vbG9neSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZworCQlUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdCBhdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoCisJCXRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyIGFncmVlbWVudCB0bywgYW5kIHRoZQorCQlhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzo8L3A+CiAKLTxvbD4KLSAgICAgICA8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kKLSAgICAgICBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZAotICAgICAgIHByb2R1Y3QuPC9saT4KLSAgICAgICA8bGk+RHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG1heSBjYXVzZSB0aGlyZCBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZQotICAgICAgIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLjwvbGk+Ci0gICAgICAgPGxpPlB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQotICAgICAgIFNvZnR3YXJlICgiSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAotICAgICAgIE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4KLSAgICAgICB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaAotICAgICAgIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlLjwvbGk+Ci08L29sPgorCTxvbD4KKwkJPGxpPkEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgmcXVvdDtQcm92aXNpb25pbmcKKwkJCVByb2Nlc3MmcXVvdDspIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nCisJCQlUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoJnF1b3Q7VGFyZ2V0IE1hY2hpbmUmcXVvdDspIHdpdGggdGhlIGludGVudAorCQkJb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuCisJCQlFY2xpcHNlLWJhc2VkIHByb2R1Y3QuPC9saT4KKwkJPGxpPkR1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQorCQkJbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCisJCQlhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS48L2xpPgorCQk8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIKKwkJCXRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUgKCZxdW90O0luc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCZxdW90OykgYW5kIHN1Y2gKKwkJCUluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQKKwkJCU1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCisJCQl0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5CisJCQl0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUKKwkJCUFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUKKwkJCXByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUuPC9saT4KKwk8L29sPgogCi08aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KKwk8aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KIAotPHA+Q29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0bwotICAgYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsCi0gICBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KKwk8cD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoCisJCXlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQKKwkJdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4KKwkJQkVGT1JFIHVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLAorCQlyZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsCisJCWFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KIAotPHA+PHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguPC9zbWFsbD48L3A+Ci0KLQotPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisJPHA+CisJCTxzbWFsbD5KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mCisJCQlPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPgorCTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0tZmVhdHVyZS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL3BvbS54bWwKaW5kZXggMTY5MGJmNi4uYTZjMGFjMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS1mZWF0dXJlL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvYWJvdXQuaHRtbAppbmRleCA4MWI2NzJkLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+Tm92ZW1iZXIgMjYsIDIwMDc8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3BvbS54bWwKaW5kZXggYzIxZWY2Zi4uYWViZWFjZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9wb20ueG1sCkBAIC0zLDkgKzMsOSBAQAogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0VtZnR2bUFudFBsdWdpbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9FbWZ0dm1BbnRQbHVnaW4uamF2YQppbmRleCBlMWU2ZTBhLi43YzEyYWQ3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0VtZnR2bUFudFBsdWdpbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvRW1mdHZtQW50UGx1Z2luLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvQW50UHJvamVjdEhhbmRsZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0FudFByb2plY3RIYW5kbGVyLmphdmEKaW5kZXggZTljZDEwZC4uNGNmOWU3YiAxMDA3NTUKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvQW50UHJvamVjdEhhbmRsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9BbnRQcm9qZWN0SGFuZGxlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0NvbXBpbGVUYXNrLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Db21waWxlVGFzay5qYXZhCmluZGV4IGE5NjE3MjYuLmM0NzEyYjkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0NvbXBpbGVUYXNrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvQ29tcGlsZVRhc2suamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTggRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9FTUZUVk1CdWlsZExpc3RlbmVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9FTUZUVk1CdWlsZExpc3RlbmVyLmphdmEKaW5kZXggYmUyZmY2ZC4uN2U0NzlmZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvRU1GVFZNQnVpbGRMaXN0ZW5lci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0VNRlRWTUJ1aWxkTGlzdGVuZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9FTUZUVk1UYXNrLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9FTUZUVk1UYXNrLmphdmEKaW5kZXggYjk1OTE4Mi4uZjJlMDBkMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvRU1GVFZNVGFzay5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0VNRlRWTVRhc2suamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Jbk1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Jbk1vZGVsLmphdmEKaW5kZXggODI0ZDc3Ny4uZmRjNGQ5NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvSW5Nb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0luTW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Jbk91dE1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Jbk91dE1vZGVsLmphdmEKaW5kZXggZjBmNTZkYS4uNjk2YzIwNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvSW5PdXRNb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0luT3V0TW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTG9hZE1ldGFtb2RlbFRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0xvYWRNZXRhbW9kZWxUYXNrLmphdmEKaW5kZXggNDc3ZDIzMi4uMTA1ZWExMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTG9hZE1ldGFtb2RlbFRhc2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Mb2FkTWV0YW1vZGVsVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0xvYWRNb2RlbFRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L0xvYWRNb2RlbFRhc2suamF2YQppbmRleCA1NjJiNThhLi42ZDI1MjExIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Mb2FkTW9kZWxUYXNrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTG9hZE1vZGVsVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L01ldGFNb2RlbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTWV0YU1vZGVsLmphdmEKaW5kZXggOTAwY2Q4YS4uNjQ1MTBkNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTWV0YU1vZGVsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTWV0YU1vZGVsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvTW9kZWxFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Nb2RlbEVsZW1lbnQuamF2YQppbmRleCA4ZDk2NmUwLi45ZTk0NWY0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Nb2RlbEVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9Nb2RlbEVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9OZXdNb2RlbFRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L05ld01vZGVsVGFzay5qYXZhCmluZGV4IDQzMDhjMTYuLjZhMWY2NjcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L05ld01vZGVsVGFzay5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L05ld01vZGVsVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L091dE1vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9PdXRNb2RlbC5qYXZhCmluZGV4IDkwYjBhNWYuLjJjYzU0YTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L091dE1vZGVsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvT3V0TW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9SZWdpc3Rlck1ldGFtb2RlbFRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1JlZ2lzdGVyTWV0YW1vZGVsVGFzay5qYXZhCmluZGV4IDBmMDVmNGYuLjBiMDVhMzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1JlZ2lzdGVyTWV0YW1vZGVsVGFzay5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1JlZ2lzdGVyTWV0YW1vZGVsVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxOCBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1J1blRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1J1blRhc2suamF2YQppbmRleCAyZDUwM2NkLi42OGQ0ODQwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9SdW5UYXNrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvUnVuVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1NhdmVNb2RlbFRhc2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uYW50L3NyY19hbnQvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vYW50L1NhdmVNb2RlbFRhc2suamF2YQppbmRleCA5ZDk0NWZkLi45Mjk1MzJmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmFudC9zcmNfYW50L29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2FudC9TYXZlTW9kZWxUYXNrLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5hbnQvc3JjX2FudC9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9hbnQvU2F2ZU1vZGVsVGFzay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvYWJvdXQuaHRtbAppbmRleCA4MWI2NzJkLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDI2LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvcG9tLnhtbAppbmRleCAyZmQyMDZhLi41MjEwNzE3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29tcGlsZXIvQXRsUmVzb3VyY2VGYWN0b3J5SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29tcGlsZXIvQXRsUmVzb3VyY2VGYWN0b3J5SW1wbC5qYXZhCmluZGV4IDBiNThhYmEuLjNiMzMwYjAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbXBpbGVyL0F0bFJlc291cmNlRmFjdG9yeUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9BdGxSZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29tcGlsZXIvQXRsUmVzb3VyY2VJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9BdGxSZXNvdXJjZUltcGwuamF2YQppbmRleCAyMGVkM2QxLi43Y2Q0YTVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9BdGxSZXNvdXJjZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9BdGxSZXNvdXJjZUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9BdGxUb0VtZnR2bUNvbXBpbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9BdGxUb0VtZnR2bUNvbXBpbGVyLmphdmEKaW5kZXggNDU3ZjE0NC4uNTM5Y2NjMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29tcGlsZXIvQXRsVG9FbWZ0dm1Db21waWxlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbXBpbGVyL0F0bFRvRW1mdHZtQ29tcGlsZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIENvcHlyaWdodCAoYykgMjAxNy0yMDE4IERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbXBpbGVyL0VtZnR2bUNvbXBpbGVyUGx1Z2luLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmNvbXBpbGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb21waWxlci9FbWZ0dm1Db21waWxlclBsdWdpbi5qYXZhCmluZGV4IDE2N2I0YTYuLjVmMGE1NmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uY29tcGlsZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbXBpbGVyL0VtZnR2bUNvbXBpbGVyUGx1Z2luLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5jb21waWxlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29tcGlsZXIvRW1mdHZtQ29tcGlsZXJQbHVnaW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9hYm91dC5odG1sCmluZGV4IDgxYjY3MmQuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDI2LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3BvbS54bWwKaW5kZXggNjJiZDAwZi4uZWIwYWMyNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0FkZEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BZGRJdGVtUHJvdmlkZXIuamF2YQppbmRleCBiMWYzNjU1Li40ZjIzODQ3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0FkZEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQWRkSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbGxpbnN0SW5JdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQWxsaW5zdEluSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNjMwNmVkZC4uMmQxNTAxYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbGxpbnN0SW5JdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0FsbGluc3RJbkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQWxsaW5zdEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbGxpbnN0SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggMTk0MjZlNi4uMmRiMzgxNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbGxpbnN0SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbGxpbnN0SXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbmRJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQW5kSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOGNlYTVkMi4uMzkwMDJmYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9BbmRJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0FuZEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQnJhbmNoSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQnJhbmNoSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCBkMTg3NGMyLi4zZTY2YTcyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0JyYW5jaEluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9CcmFuY2hJbnN0cnVjdGlvbkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQ29kZUJsb2NrSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQ29kZUJsb2NrSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCBiM2UzZmUzLi4yM2ZmMWY5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0NvZGVCbG9ja0luc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Db2RlQmxvY2tJbnN0cnVjdGlvbkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQ29kZUJsb2NrSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0NvZGVCbG9ja0l0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDMzNDhhNTAuLjkxYmFhOTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvQ29kZUJsb2NrSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Db2RlQmxvY2tJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0RlbGV0ZUl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9EZWxldGVJdGVtUHJvdmlkZXIuamF2YQppbmRleCBhOGVkMDg5Li4yZDIxYWEzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0RlbGV0ZUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRGVsZXRlSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9EdXBJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRHVwSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYmM2NGQ4Yi4uNzNkNjFmNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9EdXBJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0R1cEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRHVwWDFJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRHVwWDFJdGVtUHJvdmlkZXIuamF2YQppbmRleCA3MjAzYjlkLi5lODk2MGZkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0R1cFgxSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9EdXBYMUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRW1mdHZtRWRpdFBsdWdpbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9FbWZ0dm1FZGl0UGx1Z2luLmphdmEKaW5kZXggMWE3ZTcyNy4uY2I2Zjc5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9FbWZ0dm1FZGl0UGx1Z2luLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9FbWZ0dm1FZGl0UGx1Z2luLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9FbWZ0dm1JdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9FbWZ0dm1JdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IDJkMjM2YjEuLjJmNjRmMGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRW1mdHZtSXRlbVByb3ZpZGVyQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0VtZnR2bUl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9FbmRpdGVyYXRlSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0VuZGl0ZXJhdGVJdGVtUHJvdmlkZXIuamF2YQppbmRleCBmODJkOWZiLi4xMWY3MDMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0VuZGl0ZXJhdGVJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0VuZGl0ZXJhdGVJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0V4ZWNFbnZJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRXhlY0Vudkl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDUwOGQ4MTcuLmRmNTkwZGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRXhlY0Vudkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRXhlY0Vudkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRmVhdHVyZUl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GZWF0dXJlSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggZDcxOWRhNC4uMTc2ZDc3ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GZWF0dXJlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GZWF0dXJlSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GaWVsZEluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpZWxkSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCBmNzc3MGFiLi4wZDUyNzhiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpZWxkSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpZWxkSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpZWxkSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpZWxkSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNGU0YTZlMS4uNTdlNzllOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GaWVsZEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRmllbGRJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpbmR0eXBlSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpbmR0eXBlSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOWExZmQwMC4uZDdkOWNhZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GaW5kdHlwZUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRmluZHR5cGVJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpbmR0eXBlU0l0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9GaW5kdHlwZVNJdGVtUHJvdmlkZXIuamF2YQppbmRleCBjM2IzNTczLi44NDg4MTc5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ZpbmR0eXBlU0l0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvRmluZHR5cGVTSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9HZXRJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggMWE0ZWI4ZC4uYjRjYjUzMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9HZXRJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0U3RhdGljSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldFN0YXRpY0l0ZW1Qcm92aWRlci5qYXZhCmluZGV4IGJlYzA1MDIuLmU2ZjU2OTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0U3RhdGljSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9HZXRTdGF0aWNJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldFRyYW5zSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldFRyYW5zSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNDMzMTlhZS4uODYxMGVlZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9HZXRUcmFuc0l0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0VHJhbnNJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldGNiSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldGNiSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggMjAzYTIyOS4uNWNlNzYzZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9HZXRjYkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0Y2JJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldGVudkl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9HZXRlbnZJdGVtUHJvdmlkZXIuamF2YQppbmRleCBiNGZhYzA3Li44ZTZhMDBlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldGVudkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0ZW52SXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0dldGVudnR5cGVJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0ZW52dHlwZUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDJkNDc5MWIuLmJlYTNkNWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0ZW52dHlwZUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR2V0ZW52dHlwZUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvR290b0l0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Hb3RvSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggMDUyMGVkMS4uNTNjOTc2YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Hb3RvSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Hb3RvSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZkl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZkl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDZiMjg2ZTkuLjllNzNkNjAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSWZJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0lmSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZm5JdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSWZuSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOTJkNWJkNy4uNGQ3ZWMzYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZm5JdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0lmbkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSWZ0ZUl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZnRlSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYWE5ODRjNC4uN2ZlN2NhYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZnRlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JZnRlSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbXBsaWVzSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ltcGxpZXNJdGVtUHJvdmlkZXIuamF2YQppbmRleCBiODk4NDdkLi5jYmRiOWMzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ltcGxpZXNJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ltcGxpZXNJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0lucHV0UnVsZUVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW5wdXRSdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDI0MzhiNTkuLmZmZDA2ZmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW5wdXRSdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW5wdXRSdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW5zZXJ0SXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0luc2VydEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IGE3MWI5NjQuLjZjZGZlYTMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW5zZXJ0SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnNlcnRJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0luc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0luc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggODIyYWNkMS4uNTBlOGM0NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnN0cnVjdGlvbkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZUFsbENic0l0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VBbGxDYnNJdGVtUHJvdmlkZXIuamF2YQppbmRleCBmZTI3MDQ4Li43NmRiNjRmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZUFsbENic0l0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlQWxsQ2JzSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VDYkl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VDYkl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDk5ZDVkNjUuLjJkMTMwYWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlQ2JJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZUNiSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VDYlNJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlQ2JTSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYTY2NjFlOS4uZDhkNDQ5MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VDYlNJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZUNiU0l0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCAyYjQ4ODNjLi5iZTY2N2E0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZUluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VJbnN0cnVjdGlvbkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IGEzYTBhNWEuLjZjMTY2YjUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOTQ3ZGExZC4uZWExZDNmNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VPcGVyYXRpb25JbnN0cnVjdGlvbkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlT3BlcmF0aW9uSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZVN0YXRpY0l0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VTdGF0aWNJdGVtUHJvdmlkZXIuamF2YQppbmRleCAwMGMwY2RiLi5mMjMzOGQ2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZVN0YXRpY0l0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlU3RhdGljSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VTdXBlckl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JbnZva2VTdXBlckl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDY4NDdmODcuLjg4YTQ1ZTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSW52b2tlU3VwZXJJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0ludm9rZVN1cGVySXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Jc251bGxJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSXNudWxsSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNjcwOGZiNy4uZjE0MWIxZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Jc251bGxJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0lzbnVsbEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvSXRlcmF0ZUl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JdGVyYXRlSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOTQ0ZTUyYy4uYWQ4MjFmMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JdGVyYXRlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9JdGVyYXRlSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9MaW5lTnVtYmVySXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0xpbmVOdW1iZXJJdGVtUHJvdmlkZXIuamF2YQppbmRleCA1MGU1MGIyLi5kMjRiYTFmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0xpbmVOdW1iZXJJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0xpbmVOdW1iZXJJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0xvYWRJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9hZEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDljMzRhY2IuLjYyMWY0MDkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9hZEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9hZEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0xvY2FsVmFyaWFibGVJbnN0cnVjdGlvbkl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IGU5ZjQ1NTguLjRiNjZjNzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Mb2NhbFZhcmlhYmxlSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL0xvY2FsVmFyaWFibGVJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9jYWxWYXJpYWJsZUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDcxMjQwNTUuLmJkZGE4NWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9jYWxWYXJpYWJsZUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTG9jYWxWYXJpYWJsZUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTWF0Y2hJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTWF0Y2hJdGVtUHJvdmlkZXIuamF2YQppbmRleCAyNzhhMGQ0Li4yM2E1ZDJmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01hdGNoSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9NYXRjaEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTWF0Y2hTSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01hdGNoU0l0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDYwMTkxMjUuLjNiNzhkMTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTWF0Y2hTSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9NYXRjaFNJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01ldGFtb2RlbEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9NZXRhbW9kZWxJdGVtUHJvdmlkZXIuamF2YQppbmRleCBkN2FkYmNlLi45MmEyNmM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01ldGFtb2RlbEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTWV0YW1vZGVsSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Nb2RlbERlY2xhcmF0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZGVsRGVjbGFyYXRpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCAxYzI1MDQzLi42ZWIzOTVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZGVsRGVjbGFyYXRpb25JdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZGVsRGVjbGFyYXRpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZGVsSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZGVsSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYjU5ZDE3Yy4uNDlmYWNkNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Nb2RlbEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTW9kZWxJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZHVsZUl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Nb2R1bGVJdGVtUHJvdmlkZXIuamF2YQppbmRleCBlNzYxOGY0Li40MzdjMmExIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL01vZHVsZUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTW9kdWxlSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9OYW1lZEVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTmFtZWRFbGVtZW50SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNzMyOTFjNC4uOGQxMjQ1ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9OYW1lZEVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL05hbWVkRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTmV3SXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL05ld0l0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDkwNjJjOGYuLjU1YjM4MzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTmV3SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9OZXdJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL05ld1NJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTmV3U0l0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDhhNWJlOTIuLmE2MGJmZWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTmV3U0l0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTmV3U0l0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTm90SXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL05vdEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDBkMDMzOTMuLmQzZDEzMDEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvTm90SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Ob3RJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL09wZXJhdGlvbkl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9PcGVyYXRpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCA3M2Y5NDdjLi45MzgzZWQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL09wZXJhdGlvbkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvT3BlcmF0aW9uSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Pckl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Pckl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDIwNzk4ZTguLjZhNzhmMWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvT3JJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL09ySXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9PdXRwdXRSdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9PdXRwdXRSdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDA5YjU5N2YuLmI4ODQxNDUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvT3V0cHV0UnVsZUVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL091dHB1dFJ1bGVFbGVtZW50SXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9QYXJhbWV0ZXJJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUGFyYW1ldGVySXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYjk3MDY2Mi4uNTYwNTM3YSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9QYXJhbWV0ZXJJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1BhcmFtZXRlckl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUG9wSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1BvcEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDJjYjRmOTIuLmQxMzg5ZTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUG9wSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Qb3BJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1B1c2hJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDhjZGU3OTQuLjNhY2JhYTcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaGZJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaGZJdGVtUHJvdmlkZXIuamF2YQppbmRleCA5OTA1ZTliLi40MWYyZGRjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1B1c2hmSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9QdXNoZkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaHRJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUHVzaHRJdGVtUHJvdmlkZXIuamF2YQppbmRleCA1Y2RlYmQxLi41YzVlZDA1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1B1c2h0SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9QdXNodEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUmVtb3ZlSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1JlbW92ZUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDNiNTY3NjMuLjllZGJhODIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUmVtb3ZlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9SZW1vdmVJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1JldHVybkl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9SZXR1cm5JdGVtUHJvdmlkZXIuamF2YQppbmRleCA0NDAxZWRiLi44OGI4ODA5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1JldHVybkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUmV0dXJuSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9SdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9SdWxlRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDBlZWZmYWEuLjJkMTM2MWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvUnVsZUVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1J1bGVFbGVtZW50SXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9SdWxlSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1J1bGVJdGVtUHJvdmlkZXIuamF2YQppbmRleCA4MDQ5ODk1Li40Njk1OGQ1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1J1bGVJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1J1bGVJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1NldEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9TZXRJdGVtUHJvdmlkZXIuamF2YQppbmRleCAyOTZhYjEzLi4zYTBiMmIzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1NldEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvU2V0SXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9TZXRTdGF0aWNJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvU2V0U3RhdGljSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYWJjYzAyMi4uN2IyNWU3NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9TZXRTdGF0aWNJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1NldFN0YXRpY0l0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvU3RvcmVJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvU3RvcmVJdGVtUHJvdmlkZXIuamF2YQppbmRleCBiMTczZmM5Li40NWE2MDM1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1N0b3JlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9TdG9yZUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvU3dhcEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Td2FwSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOGQxOGY0OC4uYjNjZTg2MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Td2FwSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Td2FwSXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Td2FwWDFJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvU3dhcFgxSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggZTc5OTYxNS4uZmU4NzY2NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Td2FwWDFJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1N3YXBYMUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvVHlwZWRFbGVtZW50SXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1R5cGVkRWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDgzYjk2MTUuLjY5NDc4ZWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvVHlwZWRFbGVtZW50SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9UeXBlZEVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1hvckl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm92aWRlci9Yb3JJdGVtUHJvdmlkZXIuamF2YQppbmRleCA2YjBjMWYxLi44NWM2NmE5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb3ZpZGVyL1hvckl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvdmlkZXIvWG9ySXRlbVByb3ZpZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3IvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL2Fib3V0Lmh0bWwKaW5kZXggODFiNjcyZC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3IvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDI2LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9wb20ueG1sCmluZGV4IDNlOWE4ZjYuLjYyYWU0ZWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3IvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtQWN0aW9uQmFyQ29udHJpYnV0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtQWN0aW9uQmFyQ29udHJpYnV0b3IuamF2YQppbmRleCBiMGNjZDUzLi42Y2VmNjMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJlc2VudGF0aW9uL0VtZnR2bUFjdGlvbkJhckNvbnRyaWJ1dG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1BY3Rpb25CYXJDb250cmlidXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtRWRpdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJlc2VudGF0aW9uL0VtZnR2bUVkaXRvci5qYXZhCmluZGV4IGUxZTIwMzYuLjA5ZmYyNTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtRWRpdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1FZGl0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJlc2VudGF0aW9uL0VtZnR2bUVkaXRvclBsdWdpbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1FZGl0b3JQbHVnaW4uamF2YQppbmRleCA1MzlmZGZiLi44NWJmZDRlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJlc2VudGF0aW9uL0VtZnR2bUVkaXRvclBsdWdpbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtRWRpdG9yUGx1Z2luLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1Nb2RlbFdpemFyZC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1Nb2RlbFdpemFyZC5qYXZhCmluZGV4IDk1NDFkNjEuLmM4NTU3MmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtTW9kZWxXaXphcmQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJlc2VudGF0aW9uL0VtZnR2bU1vZGVsV2l6YXJkLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1WYWxpZGF0ZUFjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3ByZXNlbnRhdGlvbi9FbWZ0dm1WYWxpZGF0ZUFjdGlvbi5qYXZhCmluZGV4IDhjODgyYzAuLjVkMjQ2ZTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0uZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcmVzZW50YXRpb24vRW1mdHZtVmFsaWRhdGVBY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJlc2VudGF0aW9uL0VtZnR2bVZhbGlkYXRlQWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL2Fib3V0Lmh0bWwKaW5kZXggODFiNjcyZC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyNiwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3BvbS54bWwKaW5kZXggNWFjNTE5Yi4uMThlNTJjYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUNvbnNvbGVUcmFja2VyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9FTUZUVk1Db25zb2xlVHJhY2tlci5qYXZhCmluZGV4IDg3NDk2MTMuLjMyNGZmYjkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUNvbnNvbGVUcmFja2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNQ29uc29sZVRyYWNrZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9FTUZUVk1MYXVuY2hDb25maWd1cmF0aW9uRGVsZWdhdGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUxhdW5jaENvbmZpZ3VyYXRpb25EZWxlZ2F0ZS5qYXZhCmluZGV4IDM3MGY0NWUuLjIzZjY4NjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUxhdW5jaENvbmZpZ3VyYXRpb25EZWxlZ2F0ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUxhdW5jaENvbmZpZ3VyYXRpb25EZWxlZ2F0ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUxhdW5jaENvbmZpZ3VyYXRpb25UYWJHcm91cC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNTGF1bmNoQ29uZmlndXJhdGlvblRhYkdyb3VwLmphdmEKaW5kZXggNGQ5OTUxMy4uYjk0NzFjNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNTGF1bmNoQ29uZmlndXJhdGlvblRhYkdyb3VwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNTGF1bmNoQ29uZmlndXJhdGlvblRhYkdyb3VwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTQgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTUxhdW5jaENvbnN0YW50cy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNTGF1bmNoQ29uc3RhbnRzLmphdmEKaW5kZXggNTM0ODgxZS4uMWE0ZjkxNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNTGF1bmNoQ29uc3RhbnRzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNTGF1bmNoQ29uc3RhbnRzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTQgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VNRlRWTVBhcmFtZXRlclRhYi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNUGFyYW1ldGVyVGFiLmphdmEKaW5kZXggYzE1YmRlYi4uOTMwYmZkZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNUGFyYW1ldGVyVGFiLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRU1GVFZNUGFyYW1ldGVyVGFiLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0LTIwMTQgSU5SSUEgYW5kIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIE1pa2FlbCBCYXJiZXJvIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VtZnR2bUxhdW5jaGVySW1hZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9FbWZ0dm1MYXVuY2hlckltYWdlcy5qYXZhCmluZGV4IDIyNTVhMjMuLjZlNWJjYjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VtZnR2bUxhdW5jaGVySW1hZ2VzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRW1mdHZtTGF1bmNoZXJJbWFnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9FbWZ0dm1MYXVuY2hlclBsdWdpbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvRW1mdHZtTGF1bmNoZXJQbHVnaW4uamF2YQppbmRleCBkMWJiOTA4Li40MjYwNDdlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9FbWZ0dm1MYXVuY2hlclBsdWdpbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0VtZnR2bUxhdW5jaGVyUGx1Z2luLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvTGF1bmNoQWRhcHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvTGF1bmNoQWRhcHRlci5qYXZhCmluZGV4IGVhM2RiNWQuLjQ2ZDk5NjggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL0xhdW5jaEFkYXB0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9MYXVuY2hBZGFwdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvTWFpbkVNRlRWTVRhYi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvTWFpbkVNRlRWTVRhYi5qYXZhCmluZGV4IDdhM2JmMGUuLjA4NjFlYTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL01haW5FTUZUVk1UYWIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9NYWluRU1GVFZNVGFiLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBIGFuZCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgTWlrYWVsIEJhcmJlcm8gKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvY29tcGF0L0VNRlRWTVVJTGF1bmNoZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2NvbXBhdC9FTUZUVk1VSUxhdW5jaGVyLmphdmEKaW5kZXggZDgzN2NhYi4uNmEwZjJlNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvY29tcGF0L0VNRlRWTVVJTGF1bmNoZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9jb21wYXQvRU1GVFZNVUlMYXVuY2hlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9kZWJ1Zy9BRFdQRGVidWdnZWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2RlYnVnL0FEV1BEZWJ1Z2dlZS5qYXZhCmluZGV4IGQwM2ZlNDYuLjQ1MDhmZWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2RlYnVnL0FEV1BEZWJ1Z2dlZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2RlYnVnL0FEV1BEZWJ1Z2dlZS5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9kZWJ1Zy9Mb2NhbE9iamVjdFJlZmVyZW5jZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvZGVidWcvTG9jYWxPYmplY3RSZWZlcmVuY2UuamF2YQppbmRleCBmYjAzOTZkLi5jM2M2OTNhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9kZWJ1Zy9Mb2NhbE9iamVjdFJlZmVyZW5jZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2RlYnVnL0xvY2FsT2JqZWN0UmVmZXJlbmNlLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2RlYnVnL05ldHdvcmtEZWJ1Z2dlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvZGVidWcvTmV0d29ya0RlYnVnZ2VyLmphdmEKaW5kZXggOTVhYzliMC4uMGU4MGU2ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvZGVidWcvTmV0d29ya0RlYnVnZ2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvZGVidWcvTmV0d29ya0RlYnVnZ2VyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL3Byb2ZpbGVyL1Byb2ZpbGluZ0xhdW5jaEFkYXB0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0ubGF1bmNoZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL3Byb2ZpbGVyL1Byb2ZpbGluZ0xhdW5jaEFkYXB0ZXIuamF2YQppbmRleCA0NDVkMTI0Li5iMTE1OThiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLmxhdW5jaGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9wcm9maWxlci9Qcm9maWxpbmdMYXVuY2hBZGFwdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS5sYXVuY2hlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbGF1bmNoZXIvcHJvZmlsZXIvUHJvZmlsaW5nTGF1bmNoQWRhcHRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNCBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UuZWRpdC9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS5lZGl0L2Fib3V0Lmh0bWwKaW5kZXggODFiNjcyZC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS5lZGl0L2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS5lZGl0L2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+Tm92ZW1iZXIgMjYsIDIwMDc8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS5lZGl0L3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLmVkaXQvcG9tLnhtbAppbmRleCBiY2FkMzc4Li5kYTU0ZTlhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLmVkaXQvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLmVkaXQvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UuZWRpdG9yL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLmVkaXRvci9hYm91dC5odG1sCmluZGV4IDgxYjY3MmQuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UuZWRpdG9yL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS5lZGl0b3IvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyNiwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLmVkaXRvci9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS5lZGl0b3IvcG9tLnhtbAppbmRleCA3YWRhZWRlLi43NWJlYjAwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLmVkaXRvci9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UuZWRpdG9yL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL2Fib3V0Lmh0bWwKaW5kZXggODFiNjcyZC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyNiwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3BvbS54bWwKaW5kZXggMWMwY2MzNS4uNmU5YmViMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1NvdXJjZUVsZW1lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1NvdXJjZUVsZW1lbnQuamF2YQppbmRleCAzMTJlM2FjLi5hMTIwNzM1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9Tb3VyY2VFbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvU291cmNlRWxlbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1NvdXJjZUVsZW1lbnRMaXN0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9Tb3VyY2VFbGVtZW50TGlzdC5qYXZhCmluZGV4IDY3OGI3ZGQuLjM4NTUwZGMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1NvdXJjZUVsZW1lbnRMaXN0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvU291cmNlRWxlbWVudExpc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UYXJnZXRFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UYXJnZXRFbGVtZW50LmphdmEKaW5kZXggYTZkN2Q4Mi4uNTViOGMzOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVGFyZ2V0RWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RhcmdldEVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UcmFjZUVsZW1lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlRWxlbWVudC5qYXZhCmluZGV4IGNlNTE2NDAuLjU3YTU2YTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlRWxlbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VGYWN0b3J5LmphdmEKaW5kZXggYjA0NmFhNS4uZDk3ODIyOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VGYWN0b3J5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VMaW5rLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UcmFjZUxpbmsuamF2YQppbmRleCBhOGM1NjA3Li41M2EzNWQ0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UcmFjZUxpbmsuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UcmFjZUxpbmsuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UcmFjZUxpbmtTZXQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlTGlua1NldC5qYXZhCmluZGV4IDZlZTdhMWIuLjYwNDFkMWYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlTGlua1NldC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlTGlua1NldC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlUGFja2FnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VQYWNrYWdlLmphdmEKaW5kZXggMzI0MGJmZC4uMjU0NjViMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VQYWNrYWdlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VQYWNrYWdlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VkUnVsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvVHJhY2VkUnVsZS5qYXZhCmluZGV4IDFmYjc3ZWEuLmVmODU0N2IgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL1RyYWNlZFJ1bGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9UcmFjZWRSdWxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9Tb3VyY2VFbGVtZW50SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9Tb3VyY2VFbGVtZW50SW1wbC5qYXZhCmluZGV4IDFiNzMyYTIuLjc2ZmQwNTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvU291cmNlRWxlbWVudEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1NvdXJjZUVsZW1lbnRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9Tb3VyY2VFbGVtZW50TGlzdEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvU291cmNlRWxlbWVudExpc3RJbXBsLmphdmEKaW5kZXggMzFjMGQyZC4uMzI4Y2M1NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9Tb3VyY2VFbGVtZW50TGlzdEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1NvdXJjZUVsZW1lbnRMaXN0SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVGFyZ2V0RWxlbWVudEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVGFyZ2V0RWxlbWVudEltcGwuamF2YQppbmRleCBhN2NkODdmLi40OTUwMzQxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RhcmdldEVsZW1lbnRJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UYXJnZXRFbGVtZW50SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVHJhY2VFbGVtZW50SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUVsZW1lbnRJbXBsLmphdmEKaW5kZXggZDc3OWZlYi4uMzcwMWUzOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUVsZW1lbnRJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUVsZW1lbnRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUZhY3RvcnlJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RyYWNlRmFjdG9yeUltcGwuamF2YQppbmRleCBmNzk4NDlmLi4yNmE2MTcxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RyYWNlRmFjdG9yeUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RyYWNlRmFjdG9yeUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RyYWNlTGlua0ltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVHJhY2VMaW5rSW1wbC5qYXZhCmluZGV4IDRiMTRhZTUuLjc3MWMxMjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVHJhY2VMaW5rSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVHJhY2VMaW5rSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVHJhY2VMaW5rU2V0SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUxpbmtTZXRJbXBsLmphdmEKaW5kZXggNGY4MTU0NC4uNjcyOWFmZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUxpbmtTZXRJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZUxpbmtTZXRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZVBhY2thZ2VJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RyYWNlUGFja2FnZUltcGwuamF2YQppbmRleCBhNzAwNmFkNy4uOTY3ZDFlYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZVBhY2thZ2VJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZVBhY2thZ2VJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZWRSdWxlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvaW1wbC9UcmFjZWRSdWxlSW1wbC5qYXZhCmluZGV4IGVhZTA2NjQuLjM5ZDdlODYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL2ltcGwvVHJhY2VkUnVsZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS9pbXBsL1RyYWNlZFJ1bGVJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdXRpbC9UcmFjZUFkYXB0ZXJGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS91dGlsL1RyYWNlQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBjOWNkYzM0Li45ZmZjMmZjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS91dGlsL1RyYWNlQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS91dGlsL1RyYWNlQWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS91dGlsL1RyYWNlU3dpdGNoLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS91dGlsL1RyYWNlU3dpdGNoLmphdmEKaW5kZXggODEwZWQ1Ny4uYjEyMjczNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdXRpbC9UcmFjZVN3aXRjaC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2Uvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3V0aWwvVHJhY2VTd2l0Y2guamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL2Fib3V0Lmh0bWwKaW5kZXggODFiNjcyZC4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyNiwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL2RvYy9FTUZUVk0ueGxzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9kb2MvRU1GVFZNLnhscwppbmRleCAzMGI5YTA1Li4zZTc4MmE3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL2RvYy9FTUZUVk0ueGxzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vZG9jL0VNRlRWTS54bHMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9wb20ueG1sCmluZGV4IGIyNWFjMTQuLjAzNzM2M2MgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9BZGQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0FkZC5qYXZhCmluZGV4IDg0OGRhZDYuLjYxNzY3YWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0FkZC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0FkZC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0FsbGluc3QuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0FsbGluc3QuamF2YQppbmRleCBlODg3NjVmLi43NzViYjZmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9BbGxpbnN0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQWxsaW5zdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0FsbGluc3RJbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQWxsaW5zdEluLmphdmEKaW5kZXggMmJmZDdkYi4uOTZiZmRhYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQWxsaW5zdEluLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQWxsaW5zdEluLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQW5kLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9BbmQuamF2YQppbmRleCBmZmUyOTQyLi42NTc2YTQ2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9BbmQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9BbmQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9CcmFuY2hJbnN0cnVjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQnJhbmNoSW5zdHJ1Y3Rpb24uamF2YQppbmRleCA5ODY4Mzk2Li5iMzMwNDYxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9CcmFuY2hJbnN0cnVjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0JyYW5jaEluc3RydWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQ29kZUJsb2NrLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Db2RlQmxvY2suamF2YQppbmRleCBkMWFjZDVhLi45MWNmMzI2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Db2RlQmxvY2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Db2RlQmxvY2suamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Db2RlQmxvY2tJbnN0cnVjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQ29kZUJsb2NrSW5zdHJ1Y3Rpb24uamF2YQppbmRleCAwMTcxN2ZmLi41MDkxMDk0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Db2RlQmxvY2tJbnN0cnVjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0NvZGVCbG9ja0luc3RydWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQ29uc3RhbnRUYWcuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0NvbnN0YW50VGFnLmphdmEKaW5kZXggOGJlM2RhZS4uMTBiNWUxMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vQ29uc3RhbnRUYWcuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Db25zdGFudFRhZy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0RlbGV0ZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRGVsZXRlLmphdmEKaW5kZXggMGNkYjRiNi4uZTZmMWNiZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRGVsZXRlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRGVsZXRlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRHVwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9EdXAuamF2YQppbmRleCBhZTAwOWY2Li44MjMyOGY1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9EdXAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9EdXAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9EdXBYMS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRHVwWDEuamF2YQppbmRleCA3YWY5Yjc1Li5jMmU3NDA0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9EdXBYMS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0R1cFgxLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRW1mdHZtRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRW1mdHZtRmFjdG9yeS5qYXZhCmluZGV4IDY3NTJkMTYuLmNhZWU1MjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0VtZnR2bUZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9FbWZ0dm1GYWN0b3J5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9FbWZ0dm1QYWNrYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9FbWZ0dm1QYWNrYWdlLmphdmEKaW5kZXggMDlhOWIzMS4uMmVjMjhjNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRW1mdHZtUGFja2FnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0VtZnR2bVBhY2thZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0VuZGl0ZXJhdGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0VuZGl0ZXJhdGUuamF2YQppbmRleCBjMzhiOThlLi44Mzc5YTVkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9FbmRpdGVyYXRlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRW5kaXRlcmF0ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0V4ZWNFbnYuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0V4ZWNFbnYuamF2YQppbmRleCBkODk3OTA0Li4yNmRjMjRjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9FeGVjRW52LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRXhlY0Vudi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GZWF0dXJlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GZWF0dXJlLmphdmEKaW5kZXggOTU3YTllNC4uMDljMjk2OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRmVhdHVyZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZlYXR1cmUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GZWF0dXJlVGFnLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GZWF0dXJlVGFnLmphdmEKaW5kZXggMzYxNzkyMy4uMDI5ZDQ3YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRmVhdHVyZVRhZy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZlYXR1cmVUYWcuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GaWVsZC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRmllbGQuamF2YQppbmRleCAwOWUwZjNiLi5mODc4ZGQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GaWVsZC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpZWxkLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpZWxkSW5zdHJ1Y3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpZWxkSW5zdHJ1Y3Rpb24uamF2YQppbmRleCA0NTM5YjUyLi4yM2I1Y2M1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GaWVsZEluc3RydWN0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRmllbGRJbnN0cnVjdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpbmR0eXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GaW5kdHlwZS5qYXZhCmluZGV4IGIxYmI4ZDMuLmY4Mzk1MGMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpbmR0eXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vRmluZHR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9GaW5kdHlwZVMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpbmR0eXBlUy5qYXZhCmluZGV4IDFiMzYxZDguLjA2YjI2MzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpbmR0eXBlUy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ZpbmR0eXBlUy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0dldC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0LmphdmEKaW5kZXggODgxYzMyNS4uMTZhODI5MyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0U3RhdGljLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRTdGF0aWMuamF2YQppbmRleCA2OTBiNDY3Li5mZTBhMWEwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRTdGF0aWMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRTdGF0aWMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRUcmFucy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0VHJhbnMuamF2YQppbmRleCA4MTliNmYxLi40YWFjZDJiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRUcmFucy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0dldFRyYW5zLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0Y2IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0dldGNiLmphdmEKaW5kZXggNWUwMjNjOS4uNzg1ZDQyYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0Y2IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRjYi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0dldGVudi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0ZW52LmphdmEKaW5kZXggMGNjYzY4NC4uZDIxZjYxOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0ZW52LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0ZW52LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRlbnZ0eXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9HZXRlbnZ0eXBlLmphdmEKaW5kZXggOTM3Y2U1My4uZmRjZjA0NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR2V0ZW52dHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0dldGVudnR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Hb3RvLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Hb3RvLmphdmEKaW5kZXggM2UwMmJiOC4uMmRiODkzMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vR290by5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0dvdG8uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSWYuamF2YQppbmRleCBjMzcxNmNhLi40ZDg5MDdhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0lmLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSWZuLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZm4uamF2YQppbmRleCA2MjA0OThmLi4wMjk0NTEwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZm4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZm4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZnRlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JZnRlLmphdmEKaW5kZXggNzU3MTFkNi4uZGRiNTM4MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSWZ0ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0lmdGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbXBsaWVzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbXBsaWVzLmphdmEKaW5kZXggNGJlNWYwOS4uNmU3OGJhZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW1wbGllcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ltcGxpZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnB1dFJ1bGVFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnB1dFJ1bGVFbGVtZW50LmphdmEKaW5kZXggYzVjODgwYy4uMWU5YjY2YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW5wdXRSdWxlRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0lucHV0UnVsZUVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnNlcnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0luc2VydC5qYXZhCmluZGV4IDM2ZjE2NTAuLjFmYjU5ZmYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0luc2VydC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0luc2VydC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0luc3RydWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnN0cnVjdGlvbi5qYXZhCmluZGV4IGY4ODkwZTEuLjU2N2I5NzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0luc3RydWN0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW5zdHJ1Y3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnZva2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZS5qYXZhCmluZGV4IDBiNDA4OGUuLjhlYzE5MWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZUFsbENicy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQWxsQ2JzLmphdmEKaW5kZXggMDVkZmNiMC4uNzMyNDNjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQWxsQ2JzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQWxsQ2JzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQ2IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZUNiLmphdmEKaW5kZXggNDIzZjUwOS4uNzc2ZTJiMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQ2IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnZva2VDYi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZUNiUy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQ2JTLmphdmEKaW5kZXggYjMxNGI3Ny4uOTJkNDAwZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQ2JTLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlQ2JTLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlSW5zdHJ1Y3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZUluc3RydWN0aW9uLmphdmEKaW5kZXggZDRjMWM1NS4uZTgyODQxMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlSW5zdHJ1Y3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnZva2VJbnN0cnVjdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnZva2VPcGVyYXRpb25JbnN0cnVjdGlvbi5qYXZhCmluZGV4IGQ1MGVlMjcuLmQ5ZjA2ZGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlT3BlcmF0aW9uSW5zdHJ1Y3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnZva2VTdGF0aWMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZVN0YXRpYy5qYXZhCmluZGV4IGVhNTU0MzcuLjYxMWQwMDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZVN0YXRpYy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZVN0YXRpYy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZVN1cGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JbnZva2VTdXBlci5qYXZhCmluZGV4IDUyY2ZlZWQuLmY0YzlhMjMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0ludm9rZVN1cGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSW52b2tlU3VwZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Jc251bGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0lzbnVsbC5qYXZhCmluZGV4IGUwMjA3ZjAuLjRlNWI3NmYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0lzbnVsbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0lzbnVsbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0l0ZXJhdGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0l0ZXJhdGUuamF2YQppbmRleCA0NWUyMDEwLi5lMTg0ZTE0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9JdGVyYXRlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vSXRlcmF0ZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xpbmVOdW1iZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xpbmVOdW1iZXIuamF2YQppbmRleCBhZDM2YTcxLi4yYWYzYjBhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9MaW5lTnVtYmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTGluZU51bWJlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xvYWQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xvYWQuamF2YQppbmRleCA5ZWU2M2E1Li43YWJkM2UwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Mb2FkLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTG9hZC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xvY2FsVmFyaWFibGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xvY2FsVmFyaWFibGUuamF2YQppbmRleCA3MTBmYTdkLi40YWFkNmY0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Mb2NhbFZhcmlhYmxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTG9jYWxWYXJpYWJsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL0xvY2FsVmFyaWFibGVJbnN0cnVjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uLmphdmEKaW5kZXggYzFkNzlkMi4uMDk3YjFmNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWF0Y2guamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01hdGNoLmphdmEKaW5kZXggM2M1NWMzZS4uZTEzYjk2NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWF0Y2guamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9NYXRjaC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01hdGNoUy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWF0Y2hTLmphdmEKaW5kZXggYjAzOTI4Zi4uMmNmMjRjNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWF0Y2hTLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWF0Y2hTLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01lc3NhZ2VzLmphdmEKaW5kZXggMzE0MzA0Mi4uZWMyN2E4ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTWVzc2FnZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9NZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9NZXRhbW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01ldGFtb2RlbC5qYXZhCmluZGV4IDllMWFjODMuLmI4MjQ1Y2QgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01ldGFtb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01ldGFtb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZGVsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Nb2RlbC5qYXZhCmluZGV4IGY5ZDQwNmYuLjk0YjdjYzIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZGVsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTW9kZWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Nb2RlbERlY2xhcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Nb2RlbERlY2xhcmF0aW9uLmphdmEKaW5kZXggNDM0YTgyYi4uMzg1OTU5OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTW9kZWxEZWNsYXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZGVsRGVjbGFyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Nb2RlbERlY2xhcmF0aW9uVGFnLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Nb2RlbERlY2xhcmF0aW9uVGFnLmphdmEKaW5kZXggNzI0Y2RkMi4uMGNkMjczZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTW9kZWxEZWNsYXJhdGlvblRhZy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZGVsRGVjbGFyYXRpb25UYWcuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Nb2R1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZHVsZS5qYXZhCmluZGV4IDFjZGY1MjkuLmQ1ZWZkNzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZHVsZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL01vZHVsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL05hbWVkRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTmFtZWRFbGVtZW50LmphdmEKaW5kZXggZDMyOTRlMi4uOTAwNmY0OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTmFtZWRFbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTmFtZWRFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTmV3LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9OZXcuamF2YQppbmRleCBlOGNkMWExLi45YWQwNjI2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9OZXcuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9OZXcuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9OZXdTLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9OZXdTLmphdmEKaW5kZXggNjA2MzZlMi4uY2E0YTdhNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vTmV3Uy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL05ld1MuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Ob3QuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL05vdC5qYXZhCmluZGV4IGMwZDc0ODguLjg2YWJlNzcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL05vdC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL05vdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL09wY29kZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vT3Bjb2RlLmphdmEKaW5kZXggYzk5NzM1Yi4uZDAzMDk5YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vT3Bjb2RlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vT3Bjb2RlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9PcGVyYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL09wZXJhdGlvbi5qYXZhCmluZGV4IDdmNjFjMjAuLjRlYWYyYzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL09wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL09wZXJhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL09yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Pci5qYXZhCmluZGV4IDEyNjMxYzQuLjYwOWQxZTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL09yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vT3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9PdXRwdXRSdWxlRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vT3V0cHV0UnVsZUVsZW1lbnQuamF2YQppbmRleCA0ZGJiZTM1Li5hZWE0ZTQ1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9PdXRwdXRSdWxlRWxlbWVudC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL091dHB1dFJ1bGVFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUGFyYW1ldGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QYXJhbWV0ZXIuamF2YQppbmRleCBmZGU1NjRhLi45ODI2NWUxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QYXJhbWV0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QYXJhbWV0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Qb3AuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1BvcC5qYXZhCmluZGV4IDIzOThjZTIuLmRmYzQ2NDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1BvcC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1BvcC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1B1c2guamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1B1c2guamF2YQppbmRleCA1NmQ3YzA5Li43NDU1M2IwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QdXNoLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUHVzaC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1B1c2hmLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QdXNoZi5qYXZhCmluZGV4IGRmOTVlNGEuLjhhMDcyM2YgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1B1c2hmLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUHVzaGYuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QdXNodC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUHVzaHQuamF2YQppbmRleCAyZTNmNjUzLi41NzhmMjc5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9QdXNodC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1B1c2h0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUmVtb3ZlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SZW1vdmUuamF2YQppbmRleCBiZDJhOTY4Li41NmY0ZDcwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SZW1vdmUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SZW1vdmUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SZXR1cm4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1JldHVybi5qYXZhCmluZGV4IDAzY2UyN2MuLjA4MjYzYmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1JldHVybi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1JldHVybi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1J1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1J1bGUuamF2YQppbmRleCBhNWYyOWMyLi42YTg4OGE2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SdWxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUnVsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1J1bGVFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SdWxlRWxlbWVudC5qYXZhCmluZGV4IGNkOWNiN2EuLmUzNWQ3NjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1J1bGVFbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUnVsZUVsZW1lbnQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SdWxlTW9kZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vUnVsZU1vZGUuamF2YQppbmRleCBkNzFiODFhLi41OTBlM2JlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9SdWxlTW9kZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1J1bGVNb2RlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vU2V0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9TZXQuamF2YQppbmRleCBiMDk3MjI2Li43N2I5ZmM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9TZXQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9TZXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9TZXRTdGF0aWMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1NldFN0YXRpYy5qYXZhCmluZGV4IDczYjY5MTAuLjAxMjJkM2IgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1NldFN0YXRpYy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1NldFN0YXRpYy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1N0b3JlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9TdG9yZS5qYXZhCmluZGV4IDcxODRlYWQuLmY0ZDZjOTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1N0b3JlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vU3RvcmUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Td2FwLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Td2FwLmphdmEKaW5kZXggYmI1NGNmNS4uMzZiNmEyNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vU3dhcC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1N3YXAuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Td2FwWDEuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1N3YXBYMS5qYXZhCmluZGV4IDhjNTA5MGYuLmQ5ZmM2ODIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1N3YXBYMS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1N3YXBYMS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL1R5cGVkRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vVHlwZWRFbGVtZW50LmphdmEKaW5kZXggNGUzZWYxNy4uZDMzZWU4YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vVHlwZWRFbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vVHlwZWRFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vWG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Yb3IuamF2YQppbmRleCA4OGRlNzhkLi4zM2ZmNDRkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Yb3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9Yb3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb25zdHJhaW50cy9TdGFja1VuZGVyZmxvd0NvbnN0cmFpbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbnN0cmFpbnRzL1N0YWNrVW5kZXJmbG93Q29uc3RyYWludC5qYXZhCmluZGV4IDQzOThmM2EuLmNiY2JlN2MgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbnN0cmFpbnRzL1N0YWNrVW5kZXJmbG93Q29uc3RyYWludC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbnN0cmFpbnRzL1N0YWNrVW5kZXJmbG93Q29uc3RyYWludC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvU3RhY2tVbmRlcmZsb3dWYWxpZGF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbnN0cmFpbnRzL1N0YWNrVW5kZXJmbG93VmFsaWRhdG9yLmphdmEKaW5kZXggYTEwM2I1My4uOTNmNTI5NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvU3RhY2tVbmRlcmZsb3dWYWxpZGF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb25zdHJhaW50cy9TdGFja1VuZGVyZmxvd1ZhbGlkYXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMi0yMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvVmFsaWRDb2RlQmxvY2tTdGFja0xldmVsQ29uc3RyYWludC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvVmFsaWRDb2RlQmxvY2tTdGFja0xldmVsQ29uc3RyYWludC5qYXZhCmluZGV4IDAwY2FkMzQuLjY4Njk5ZDQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbnN0cmFpbnRzL1ZhbGlkQ29kZUJsb2NrU3RhY2tMZXZlbENvbnN0cmFpbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb25zdHJhaW50cy9WYWxpZENvZGVCbG9ja1N0YWNrTGV2ZWxDb25zdHJhaW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTMgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2NvbnN0cmFpbnRzL1ZhbGlkQ29kZUJsb2NrU3RhY2tMZXZlbFZhbGlkYXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvVmFsaWRDb2RlQmxvY2tTdGFja0xldmVsVmFsaWRhdG9yLmphdmEKaW5kZXggZmY0ZmVmNC4uMzkzN2MwYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvVmFsaWRDb2RlQmxvY2tTdGFja0xldmVsVmFsaWRhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvVmFsaWRDb2RlQmxvY2tTdGFja0xldmVsVmFsaWRhdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vY29uc3RyYWludHMvVmFsaWRhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb25zdHJhaW50cy9WYWxpZGF0b3IuamF2YQppbmRleCAyNWY4NjViLi44MDRlMWNlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb25zdHJhaW50cy9WYWxpZGF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9jb25zdHJhaW50cy9WYWxpZGF0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTMgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0FkZEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQWRkSW1wbC5qYXZhCmluZGV4IDg2ZjUwOGIuLmQyZWQxZjkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQWRkSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQWRkSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQWxsaW5zdEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQWxsaW5zdEltcGwuamF2YQppbmRleCA5YjcwODlmLi4wZGFkMTBmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0FsbGluc3RJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9BbGxpbnN0SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQWxsaW5zdEluSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9BbGxpbnN0SW5JbXBsLmphdmEKaW5kZXggZTUyNWE0ZS4uNmIyN2IzMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9BbGxpbnN0SW5JbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9BbGxpbnN0SW5JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9BbmRJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0FuZEltcGwuamF2YQppbmRleCA3YWNiNzQzLi5kMTA3ZDNiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0FuZEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0FuZEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0JyYW5jaEluc3RydWN0aW9uSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9CcmFuY2hJbnN0cnVjdGlvbkltcGwuamF2YQppbmRleCBhYTE3YzYyLi42NjY4MTlhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0JyYW5jaEluc3RydWN0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQnJhbmNoSW5zdHJ1Y3Rpb25JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Db2RlQmxvY2tJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0NvZGVCbG9ja0ltcGwuamF2YQppbmRleCBjNmUyY2I4Li5lNzI4Yjg3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0NvZGVCbG9ja0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0NvZGVCbG9ja0ltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQ29kZUJsb2NrSW5zdHJ1Y3Rpb25JbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0NvZGVCbG9ja0luc3RydWN0aW9uSW1wbC5qYXZhCmluZGV4IDdkMGQ2ZGEuLjBiZmNiOTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvQ29kZUJsb2NrSW5zdHJ1Y3Rpb25JbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Db2RlQmxvY2tJbnN0cnVjdGlvbkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0RlbGV0ZUltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRGVsZXRlSW1wbC5qYXZhCmluZGV4IDRmNTYzNDUuLmRjMmM2ZjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRGVsZXRlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRGVsZXRlSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRHVwSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9EdXBJbXBsLmphdmEKaW5kZXggZGViNzRjZS4uNWMzMWE5YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9EdXBJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9EdXBJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9EdXBYMUltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRHVwWDFJbXBsLmphdmEKaW5kZXggNTk2Njc2My4uNjI5OWJhZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9EdXBYMUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0R1cFgxSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRW1mdHZtRmFjdG9yeUltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRW1mdHZtRmFjdG9yeUltcGwuamF2YQppbmRleCAxZDRiZWU2Li42YTg5OGEwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0VtZnR2bUZhY3RvcnlJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9FbWZ0dm1GYWN0b3J5SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9FbWZ0dm1QYWNrYWdlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9FbWZ0dm1QYWNrYWdlSW1wbC5qYXZhCmluZGV4IDY5ODJhYzYuLmIyZmZhOWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRW1mdHZtUGFja2FnZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0VtZnR2bVBhY2thZ2VJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0VuZGl0ZXJhdGVJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0VuZGl0ZXJhdGVJbXBsLmphdmEKaW5kZXggODg0OWNlMi4uZTllNDViMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9FbmRpdGVyYXRlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRW5kaXRlcmF0ZUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0V4ZWNFbnZJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0V4ZWNFbnZJbXBsLmphdmEKaW5kZXggYzFjMDgwYi4uYzViYmEyNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9FeGVjRW52SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRXhlY0VudkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxOCBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GZWF0dXJlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GZWF0dXJlSW1wbC5qYXZhCmluZGV4IDdlNmQzNTcuLjU0YmI0OTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRmVhdHVyZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZlYXR1cmVJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GaWVsZEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRmllbGRJbXBsLmphdmEKaW5kZXggNmY3ZTMzZS4uYzdkNGUzZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GaWVsZEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpZWxkSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpZWxkSW5zdHJ1Y3Rpb25JbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpZWxkSW5zdHJ1Y3Rpb25JbXBsLmphdmEKaW5kZXggZGUzYzdjZS4uMTJjMmI0MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GaWVsZEluc3RydWN0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRmllbGRJbnN0cnVjdGlvbkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpbmR0eXBlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GaW5kdHlwZUltcGwuamF2YQppbmRleCA2MDg2ZmRjLi5jNTBkZGEwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpbmR0eXBlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvRmluZHR5cGVJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9GaW5kdHlwZVNJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpbmR0eXBlU0ltcGwuamF2YQppbmRleCAyNjgyNDY4Li5mN2U3NDJlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpbmR0eXBlU0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ZpbmR0eXBlU0ltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0dldEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0SW1wbC5qYXZhCmluZGV4IDI3ZjA4YjIuLmViMGEzMjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0U3RhdGljSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRTdGF0aWNJbXBsLmphdmEKaW5kZXggYTQ3YTUyZS4uZTJiZTNkZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRTdGF0aWNJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRTdGF0aWNJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRUcmFuc0ltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0VHJhbnNJbXBsLmphdmEKaW5kZXggOGYzZjIyMi4uNDE2NWU1NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRUcmFuc0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0dldFRyYW5zSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0Y2JJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0dldGNiSW1wbC5qYXZhCmluZGV4IDk1MDNkY2MuLjE1OTRlZWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0Y2JJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRjYkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0dldGVudkltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0ZW52SW1wbC5qYXZhCmluZGV4IGY2NGM3NWYuLjdhYmE5ZjkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0ZW52SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0ZW52SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRlbnZ0eXBlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9HZXRlbnZ0eXBlSW1wbC5qYXZhCmluZGV4IDA4MzBlZWQuLmQ5MThhNzcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR2V0ZW52dHlwZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0dldGVudnR5cGVJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Hb3RvSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Hb3RvSW1wbC5qYXZhCmluZGV4IGMzNmFkYjEuLjE2MDE2MWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvR290b0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0dvdG9JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZkltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSWZJbXBsLmphdmEKaW5kZXggNzY2ODdmZC4uMmJiY2FlZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZkltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0lmSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSWZuSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZm5JbXBsLmphdmEKaW5kZXggNTc2NzlmNy4uMjM0MWQ2MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZm5JbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZm5JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZnRlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JZnRlSW1wbC5qYXZhCmluZGV4IGJmMjhlNGUuLmYzMDlmZTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSWZ0ZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0lmdGVJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbXBsaWVzSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbXBsaWVzSW1wbC5qYXZhCmluZGV4IDhjNTdlMmQuLjYyNjUzOGYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW1wbGllc0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ltcGxpZXNJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnB1dFJ1bGVFbGVtZW50SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnB1dFJ1bGVFbGVtZW50SW1wbC5qYXZhCmluZGV4IDAxMDRhODEuLjJkNTQ1ZTcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW5wdXRSdWxlRWxlbWVudEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0lucHV0UnVsZUVsZW1lbnRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnNlcnRJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0luc2VydEltcGwuamF2YQppbmRleCAwN2VkNTAxLi45YjM2YTU1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0luc2VydEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0luc2VydEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0luc3RydWN0aW9uSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnN0cnVjdGlvbkltcGwuamF2YQppbmRleCBhZTdkMGJkLi4zZjE4ZmUzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0luc3RydWN0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW5zdHJ1Y3Rpb25JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VBbGxDYnNJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUFsbENic0ltcGwuamF2YQppbmRleCA3ZWQ1OThjLi4yMDJlZWE5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUFsbENic0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUFsbENic0ltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUNiSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VDYkltcGwuamF2YQppbmRleCA5YmE3MjAxLi4yNTY2NWU2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUNiSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlQ2JJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VDYlNJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUNiU0ltcGwuamF2YQppbmRleCAzMjM5ODY0Li5lZjg3NmE0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUNiU0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUNiU0ltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlSW1wbC5qYXZhCmluZGV4IDVlNmU4ODMuLmYyZDRjMGMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlSW5zdHJ1Y3Rpb25JbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZUluc3RydWN0aW9uSW1wbC5qYXZhCmluZGV4IDIxMmFmNjAuLjhmYjQzNzIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlSW5zdHJ1Y3Rpb25JbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VJbnN0cnVjdGlvbkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VPcGVyYXRpb25JbnN0cnVjdGlvbkltcGwuamF2YQppbmRleCAyYzJmNjQ3Li5hMTcxNWYzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlT3BlcmF0aW9uSW5zdHJ1Y3Rpb25JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VTdGF0aWNJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZVN0YXRpY0ltcGwuamF2YQppbmRleCA4MmE5ZGQ0Li5mY2NkMWMzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZVN0YXRpY0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZVN0YXRpY0ltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZVN1cGVySW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JbnZva2VTdXBlckltcGwuamF2YQppbmRleCBhOTRiNmZlLi4zZTU4NWM1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0ludm9rZVN1cGVySW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSW52b2tlU3VwZXJJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Jc251bGxJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0lzbnVsbEltcGwuamF2YQppbmRleCBlMmU5OTJmLi44OWMxOWFlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0lzbnVsbEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0lzbnVsbEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0l0ZXJhdGVJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0l0ZXJhdGVJbXBsLmphdmEKaW5kZXggNGE0Zjk1OS4uZjkxYjU3MyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9JdGVyYXRlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvSXRlcmF0ZUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0xpbmVOdW1iZXJJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0xpbmVOdW1iZXJJbXBsLmphdmEKaW5kZXggYmY5MGRkMi4uZWE1NmJlYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9MaW5lTnVtYmVySW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTGluZU51bWJlckltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0xvYWRJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0xvYWRJbXBsLmphdmEKaW5kZXggNmUyMzZmZS4uZWJlZTFhYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Mb2FkSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTG9hZEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0xvY2FsVmFyaWFibGVJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL0xvY2FsVmFyaWFibGVJbXBsLmphdmEKaW5kZXggOTA4MGI0Mi4uNWRjODRiZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Mb2NhbFZhcmlhYmxlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTG9jYWxWYXJpYWJsZUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Mb2NhbFZhcmlhYmxlSW5zdHJ1Y3Rpb25JbXBsLmphdmEKaW5kZXggOGQwNzc2ZS4uNjIwY2ZmOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Mb2NhbFZhcmlhYmxlSW5zdHJ1Y3Rpb25JbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Mb2NhbFZhcmlhYmxlSW5zdHJ1Y3Rpb25JbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9NYXRjaEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTWF0Y2hJbXBsLmphdmEKaW5kZXggNmQ2MzQ4My4uMjkzZjU1ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9NYXRjaEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01hdGNoSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTWF0Y2hTSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9NYXRjaFNJbXBsLmphdmEKaW5kZXggOGQxNjU3OS4uZWYwZGM1YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9NYXRjaFNJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9NYXRjaFNJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9NZXRhbW9kZWxJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01ldGFtb2RlbEltcGwuamF2YQppbmRleCBhMDFkNTgyLi40ODUxZWY1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01ldGFtb2RlbEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01ldGFtb2RlbEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZGVsRGVjbGFyYXRpb25JbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZGVsRGVjbGFyYXRpb25JbXBsLmphdmEKaW5kZXggZGVlMDhhZC4uM2I4M2Y2YSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Nb2RlbERlY2xhcmF0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTW9kZWxEZWNsYXJhdGlvbkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZGVsSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Nb2RlbEltcGwuamF2YQppbmRleCAwMGJmYWM0Li43MWNjNWJiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZGVsSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTW9kZWxJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Nb2R1bGVJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZHVsZUltcGwuamF2YQppbmRleCBhNmIwMGI1Li44YTE3OTFiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZHVsZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL01vZHVsZUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL05hbWVkRWxlbWVudEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTmFtZWRFbGVtZW50SW1wbC5qYXZhCmluZGV4IDJmYjAyMDguLmIyZDcwYWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTmFtZWRFbGVtZW50SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTmFtZWRFbGVtZW50SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTmV3SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9OZXdJbXBsLmphdmEKaW5kZXggNWEzMDYwMS4uMmFmNmMzOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9OZXdJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9OZXdJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9OZXdTSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9OZXdTSW1wbC5qYXZhCmluZGV4IDIxN2Q3MTcuLjExNzM3YTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvTmV3U0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL05ld1NJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Ob3RJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL05vdEltcGwuamF2YQppbmRleCA0N2EwOTJhLi43MGMxOGEzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL05vdEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL05vdEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL09wZXJhdGlvbkltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvT3BlcmF0aW9uSW1wbC5qYXZhCmluZGV4IDE1ZDRlMzEuLjg1MjYzZWYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvT3BlcmF0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvT3BlcmF0aW9uSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvT3JJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL09ySW1wbC5qYXZhCmluZGV4IGVjNWJhNWMuLmYxYTg3NWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvT3JJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9PckltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL091dHB1dFJ1bGVFbGVtZW50SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9PdXRwdXRSdWxlRWxlbWVudEltcGwuamF2YQppbmRleCA3MDZkYjczLi40YjFkZGFlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL091dHB1dFJ1bGVFbGVtZW50SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvT3V0cHV0UnVsZUVsZW1lbnRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9QYXJhbWV0ZXJJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1BhcmFtZXRlckltcGwuamF2YQppbmRleCAwMmU2NGM0Li40MWRjOWRkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1BhcmFtZXRlckltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1BhcmFtZXRlckltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1BvcEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUG9wSW1wbC5qYXZhCmluZGV4IGYwNWQzZTguLmVmMTBlYTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUG9wSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUG9wSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUHVzaEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUHVzaEltcGwuamF2YQppbmRleCBmYzJkMWFkLi5mNDNiZmFlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1B1c2hJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9QdXNoSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUHVzaGZJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1B1c2hmSW1wbC5qYXZhCmluZGV4IDE4YWU5MmEuLmNhOGUwMmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUHVzaGZJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9QdXNoZkltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1B1c2h0SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9QdXNodEltcGwuamF2YQppbmRleCBjZjkzMDE2Li41OTgwYWY2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1B1c2h0SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUHVzaHRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9SZW1vdmVJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1JlbW92ZUltcGwuamF2YQppbmRleCA4NWMxZjhjLi40YjExMTdhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1JlbW92ZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1JlbW92ZUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1JldHVybkltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUmV0dXJuSW1wbC5qYXZhCmluZGV4IDIwMzIyMGEuLjJmNTg0MjkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUmV0dXJuSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUmV0dXJuSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUnVsZUVsZW1lbnRJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1J1bGVFbGVtZW50SW1wbC5qYXZhCmluZGV4IGYxZWU3OTIuLjlhYTgzNjUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUnVsZUVsZW1lbnRJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9SdWxlRWxlbWVudEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1J1bGVJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1J1bGVJbXBsLmphdmEKaW5kZXggYjRhZGFkOC4uNmRmMDA1YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9SdWxlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvUnVsZUltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIENvcHlyaWdodCAoYykgMjAxNy0yMDE4IERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvU2V0SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9TZXRJbXBsLmphdmEKaW5kZXggNTJhNDBkNy4uOGI1NDI0MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9TZXRJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9TZXRJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9TZXRTdGF0aWNJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1NldFN0YXRpY0ltcGwuamF2YQppbmRleCA5MGVkYWIxLi4xMDYzMmU1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1NldFN0YXRpY0ltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1NldFN0YXRpY0ltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1N0b3JlSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9TdG9yZUltcGwuamF2YQppbmRleCBkNjQyZGIwLi43OTZkZDMyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1N0b3JlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvU3RvcmVJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Td2FwSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Td2FwSW1wbC5qYXZhCmluZGV4IDI3ZjQyNmYuLjdhYmU5YTggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvU3dhcEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1N3YXBJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Td2FwWDFJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1N3YXBYMUltcGwuamF2YQppbmRleCAzNzBiZGY3Li44ODE1MWMyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1N3YXBYMUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1N3YXBYMUltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL1R5cGVkRWxlbWVudEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvVHlwZWRFbGVtZW50SW1wbC5qYXZhCmluZGV4IGFkYTA5YmQuLjgwNzJmOWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvVHlwZWRFbGVtZW50SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvVHlwZWRFbGVtZW50SW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvWG9ySW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Yb3JJbXBsLmphdmEKaW5kZXggZGUxNWNjOC4uMGYxOWZiYiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Yb3JJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9Yb3JJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9Db25zdGFudFBvb2wuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvcmVzb3VyY2UvQ29uc3RhbnRQb29sLmphdmEKaW5kZXggOTg3ODE3OC4uODBhMDRlYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9Db25zdGFudFBvb2wuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL3Jlc291cmNlL0NvbnN0YW50UG9vbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvcmVzb3VyY2UvRU1GVFZNUmVzb3VyY2VGYWN0b3J5SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9FTUZUVk1SZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEKaW5kZXggZmM0YTM1ZC4uMGM4NzBkNCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9FTUZUVk1SZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9FTUZUVk1SZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9FTUZUVk1SZXNvdXJjZUltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvcmVzb3VyY2UvRU1GVFZNUmVzb3VyY2VJbXBsLmphdmEKaW5kZXggMDcxZDc2OS4uZjkxOTkxZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9FTUZUVk1SZXNvdXJjZUltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL3Jlc291cmNlL0VNRlRWTVJlc291cmNlSW1wbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ltcGwvcmVzb3VyY2UvTG9hZEluc3RydWN0aW9uUGFyYW1ldGVyc1N3aXRjaC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9Mb2FkSW5zdHJ1Y3Rpb25QYXJhbWV0ZXJzU3dpdGNoLmphdmEKaW5kZXggMTI0NGNiNC4uY2ZmMzM0YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9Mb2FkSW5zdHJ1Y3Rpb25QYXJhbWV0ZXJzU3dpdGNoLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9Mb2FkSW5zdHJ1Y3Rpb25QYXJhbWV0ZXJzU3dpdGNoLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaW1wbC9yZXNvdXJjZS9TYXZlSW5zdHJ1Y3Rpb25QYXJhbWV0ZXJzU3dpdGNoLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL3Jlc291cmNlL1NhdmVJbnN0cnVjdGlvblBhcmFtZXRlcnNTd2l0Y2guamF2YQppbmRleCA4MzE2Nzc3Li5kNDRiNGRlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL3Jlc291cmNlL1NhdmVJbnN0cnVjdGlvblBhcmFtZXRlcnNTd2l0Y2guamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9pbXBsL3Jlc291cmNlL1NhdmVJbnN0cnVjdGlvblBhcmFtZXRlcnNTd2l0Y2guamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9qaXQvQnl0ZUNvZGVTd2l0Y2guamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ppdC9CeXRlQ29kZVN3aXRjaC5qYXZhCmluZGV4IGE4Y2E0NGEuLmY3MzdhNTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ppdC9CeXRlQ29kZVN3aXRjaC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ppdC9CeXRlQ29kZVN3aXRjaC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDE0IERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9qaXQvQ29kZUJsb2NrSklULmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9qaXQvQ29kZUJsb2NrSklULmphdmEKaW5kZXggYTBhZmViYy4uZTc4NmJmMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaml0L0NvZGVCbG9ja0pJVC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ppdC9Db2RlQmxvY2tKSVQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNCBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaml0L0pJVENvZGVCbG9jay5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaml0L0pJVENvZGVCbG9jay5qYXZhCmluZGV4IGQwMzg4NTYuLmI0NzMwZjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ppdC9KSVRDb2RlQmxvY2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9qaXQvSklUQ29kZUJsb2NrLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTQgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2ppdC9MYWJlbFN3aXRjaC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaml0L0xhYmVsU3dpdGNoLmphdmEKaW5kZXggMDA5MTc3ZC4uOWZiZmE4OSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaml0L0xhYmVsU3dpdGNoLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vaml0L0xhYmVsU3dpdGNoLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9sYXVuY2hlci9jb21wYXQvRU1GVFZNTGF1bmNoZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2NvbXBhdC9FTUZUVk1MYXVuY2hlci5qYXZhCmluZGV4IGFiYTNiNzIuLjZhNWQ3NjggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2NvbXBhdC9FTUZUVk1MYXVuY2hlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL2xhdW5jaGVyL2NvbXBhdC9FTUZUVk1MYXVuY2hlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vbWVzc2FnZXMucHJvcGVydGllcwppbmRleCA1ZWVmMTc1Li5jNjk4NjM3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9tZXNzYWdlcy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMTcgRGVubmlzIFdhZ2VsYWFyLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIERlbm5pcyBXYWdlbGFhcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvZmlsZXIvUHJvZmlsZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb2ZpbGVyL1Byb2ZpbGVyLmphdmEKaW5kZXggMTU2ZTE3OS4uM2VmMTdhMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvZmlsZXIvUHJvZmlsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS9wcm9maWxlci9Qcm9maWxlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNCBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Byb2ZpbGVyL1N0b3BXYXRjaC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvZmlsZXIvU3RvcFdhdGNoLmphdmEKaW5kZXggOTFlOGQ0OC4uMzZjYjM2MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvZmlsZXIvU3RvcFdhdGNoLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vcHJvZmlsZXIvU3RvcFdhdGNoLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDE0IERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9DbGFzc01vZHVsZVJlc29sdmVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0NsYXNzTW9kdWxlUmVzb2x2ZXIuamF2YQppbmRleCBiN2M2ZmYzLi4xYjg3M2IwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0NsYXNzTW9kdWxlUmVzb2x2ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0NsYXNzTW9kdWxlUmVzb2x2ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogICogQ29weXJpZ2h0IChjKSAyMDEzIEhlYWx0aENvbm5lY3QgQ1ZCQS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCi0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvDQogICoNCiAgKiBDb250cmlidXRvcnM6DQogICogICAgIERlbm5pcyBXYWdlbGFhciwgSGVhbHRoQ29ubmVjdCAtIGluaXRpYWwgQVBJIGFuZA0KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRGVmYXVsdE1vZHVsZVJlc29sdmVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0RlZmF1bHRNb2R1bGVSZXNvbHZlci5qYXZhCmluZGV4IDQzYWUyODMuLjg3MjFhYTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRGVmYXVsdE1vZHVsZVJlc29sdmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9EZWZhdWx0TW9kdWxlUmVzb2x2ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0RlZmF1bHRNb2R1bGVSZXNvbHZlckZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRGVmYXVsdE1vZHVsZVJlc29sdmVyRmFjdG9yeS5qYXZhCmluZGV4IDFiYmIyZTAuLjZlODBkYTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRGVmYXVsdE1vZHVsZVJlc29sdmVyRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRGVmYXVsdE1vZHVsZVJlc29sdmVyRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRHVwbGljYXRlRW50cnlFeGNlcHRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRHVwbGljYXRlRW50cnlFeGNlcHRpb24uamF2YQppbmRleCBhNjE0MTk3Li5hNGY1N2ZlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0R1cGxpY2F0ZUVudHJ5RXhjZXB0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9EdXBsaWNhdGVFbnRyeUV4Y2VwdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRU1GVFZNVXRpbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FTUZUVk1VdGlsLmphdmEKaW5kZXggY2ZkYmIxMS4uZDQ3OTMxNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FTUZUVk1VdGlsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FTUZUVk1VdGlsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTggRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW1mdHZtQWRhcHRlckZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW1mdHZtQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBhNGE0NDM2Li5mOWM1YTI5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VtZnR2bUFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FbWZ0dm1BZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW1mdHZtU3dpdGNoLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VtZnR2bVN3aXRjaC5qYXZhCmluZGV4IDBkOWNhMjYuLjg5MDRhMjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW1mdHZtU3dpdGNoLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FbWZ0dm1Td2l0Y2guamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VudW1Db252ZXJzaW9uTGlzdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FbnVtQ29udmVyc2lvbkxpc3QuamF2YQppbmRleCAyOThjYjU4Li41OTk4MjNlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VudW1Db252ZXJzaW9uTGlzdC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW51bUNvbnZlcnNpb25MaXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTMgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VudW1Db252ZXJzaW9uTGlzdE9uTGlzdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FbnVtQ29udmVyc2lvbkxpc3RPbkxpc3QuamF2YQppbmRleCA3MTNlMzYzLi5kZTg1NzRmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VudW1Db252ZXJzaW9uTGlzdE9uTGlzdC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW51bUNvbnZlcnNpb25MaXN0T25MaXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTMgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VudW1Db252ZXJzaW9uU2V0T25TZXQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW51bUNvbnZlcnNpb25TZXRPblNldC5qYXZhCmluZGV4IGYwZGM1Y2IuLjQyY2ZlZmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW51bUNvbnZlcnNpb25TZXRPblNldC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW51bUNvbnZlcnNpb25TZXRPblNldC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEzIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FbnVtTGl0ZXJhbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FbnVtTGl0ZXJhbC5qYXZhCmluZGV4IDU5MWViMzAuLmJjYTAwOTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRW51bUxpdGVyYWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0VudW1MaXRlcmFsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTMgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRXhlY0VudlBvb2wuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRXhlY0VudlBvb2wuamF2YQppbmRleCBhMTRhMmUwLi5lMWJhOWE4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0V4ZWNFbnZQb29sLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9FeGVjRW52UG9vbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRmllbGRDb250YWluZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvRmllbGRDb250YWluZXIuamF2YQppbmRleCA4ZGRjZWRlLi4xMjI1MWM2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0ZpZWxkQ29udGFpbmVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9GaWVsZENvbnRhaW5lci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUJhZy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5QmFnLmphdmEKaW5kZXggOTI2NzQxZi4uNzEyNzk0MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5QmFnLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5QmFnLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5QmFnT25Db2xsZWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlCYWdPbkNvbGxlY3Rpb24uamF2YQppbmRleCA1NjNmNzM0Li44ZTFlMTQ2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlCYWdPbkNvbGxlY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlCYWdPbkNvbGxlY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlDb2xsZWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlDb2xsZWN0aW9uLmphdmEKaW5kZXggZTI2NGI1OC4uNTU0OTNkZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5Q29sbGVjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUNvbGxlY3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxNSBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5Q29sbGVjdGlvbnMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUNvbGxlY3Rpb25zLmphdmEKaW5kZXggMWQyOWJjMC4uMDA4ODgwOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5Q29sbGVjdGlvbnMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlDb2xsZWN0aW9ucy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMiBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUxpc3QuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUxpc3QuamF2YQppbmRleCBhZTJhNzFiLi5hNWVjMmJlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlMaXN0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5TGlzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5TGlzdE9uQ29sbGVjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5TGlzdE9uQ29sbGVjdGlvbi5qYXZhCmluZGV4IDViYzIwODAuLmIwMzdmOWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUxpc3RPbkNvbGxlY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlMaXN0T25Db2xsZWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5TGlzdE9uTGlzdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5TGlzdE9uTGlzdC5qYXZhCmluZGV4IGYwZmVkOGIuLmNlOWFlYmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eUxpc3RPbkxpc3QuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlMaXN0T25MaXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5T3JkZXJlZFNldC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5T3JkZXJlZFNldC5qYXZhCmluZGV4IDYzMmFkZTUuLjI2OTY4NmEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eU9yZGVyZWRTZXQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlPcmRlcmVkU2V0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlTZXQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eVNldC5qYXZhCmluZGV4IDUyZTU1MjMuLjY0NjFhOGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eVNldC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eVNldC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eVNldE9uU2V0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL0xhenlTZXRPblNldC5qYXZhCmluZGV4IGY5MjgwZDMuLjRjYjc0YzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTGF6eVNldE9uU2V0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9MYXp5U2V0T25TZXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01ldGhvZFNpZ25hdHVyZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9NZXRob2RTaWduYXR1cmUuamF2YQppbmRleCBmMTUwYzBmLi4xNmUzOWVjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01ldGhvZFNpZ25hdHVyZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTWV0aG9kU2lnbmF0dXJlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMTcgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01vZHVsZU5vdEZvdW5kRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01vZHVsZU5vdEZvdW5kRXhjZXB0aW9uLmphdmEKaW5kZXggY2FiN2E5NS4uZTBmYWJlYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9Nb2R1bGVOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTW9kdWxlTm90Rm91bmRFeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01vZHVsZVJlc29sdmVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01vZHVsZVJlc29sdmVyLmphdmEKaW5kZXggYmQyZjhlMi4uOGM1ZTg5MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9Nb2R1bGVSZXNvbHZlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTW9kdWxlUmVzb2x2ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01vZHVsZVJlc29sdmVyRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9Nb2R1bGVSZXNvbHZlckZhY3RvcnkuamF2YQppbmRleCAyMTgzNTEzLi43NGRmOTM3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL01vZHVsZVJlc29sdmVyRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTW9kdWxlUmVzb2x2ZXJGYWN0b3J5LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9OYXRpdmVDb2RlQmxvY2suamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTmF0aXZlQ29kZUJsb2NrLmphdmEKaW5kZXggMzM2NDllYi4uMjM5OWFiOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9OYXRpdmVDb2RlQmxvY2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL05hdGl2ZUNvZGVCbG9jay5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL05hdGl2ZVR5cGVzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL05hdGl2ZVR5cGVzLmphdmEKaW5kZXggODBlYjZiNy4uYTEwZGMxOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9OYXRpdmVUeXBlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvTmF0aXZlVHlwZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL09DTE9wZXJhdGlvbnMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvT0NMT3BlcmF0aW9ucy5qYXZhCmluZGV4IDY3ZGMwMjUuLjRjYWI5NjUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvT0NMT3BlcmF0aW9ucy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvT0NMT3BlcmF0aW9ucy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQ29weXJpZ2h0IChjKSAyMDE3IERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvUmVzb3VyY2VJdGVyYWJsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9SZXNvdXJjZUl0ZXJhYmxlLmphdmEKaW5kZXggYWFkMzA3YS4uMGM5M2FiYyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9SZXNvdXJjZUl0ZXJhYmxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9SZXNvdXJjZUl0ZXJhYmxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TaW5nbGV0b25Nb2R1bGVSZXNvbHZlckZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvU2luZ2xldG9uTW9kdWxlUmVzb2x2ZXJGYWN0b3J5LmphdmEKaW5kZXggYTU2YjY3NC4uNjA4ZjYyMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TaW5nbGV0b25Nb2R1bGVSZXNvbHZlckZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1NpbmdsZXRvbk1vZHVsZVJlc29sdmVyRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTMgSGVhbHRoQ29ubmVjdCBDVkJBLg0KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjANCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8NCiAgKg0KICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBIZWFsdGhDb25uZWN0IC0gaW5pdGlhbCBBUEkgYW5kDQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TdGFjay5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TdGFjay5qYXZhCmluZGV4IGU4OWI5ZTYuLjlhMDAzNzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvU3RhY2suamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1N0YWNrLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvU3RhY2tGcmFtZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TdGFja0ZyYW1lLmphdmEKaW5kZXggODY3YWY3Yy4uODRiZmMxMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TdGFja0ZyYW1lLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9TdGFja0ZyYW1lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTIgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVGltaW5nRGF0YS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UaW1pbmdEYXRhLmphdmEKaW5kZXggOWIyMWRjYS4uNzAwNzg3NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UaW1pbmdEYXRhLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UaW1pbmdEYXRhLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UdXBsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UdXBsZS5qYXZhCmluZGV4IGViNGViYWYuLmVkYWU0Y2IgMTAwNzU1Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVHVwbGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1R1cGxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLTIwMTcgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVHlwZUhhc2hNYXAuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVHlwZUhhc2hNYXAuamF2YQppbmRleCAzM2M0ZjMxLi4wNjdiOTNlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1R5cGVIYXNoTWFwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UeXBlSGFzaE1hcC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVHlwZU1hcC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UeXBlTWFwLmphdmEKaW5kZXggMjZkZjJjOS4uN2MyM2YwMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UeXBlTWFwLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UeXBlTWFwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UeXBlcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9UeXBlcy5qYXZhCmluZGV4IDZlNjVjNmIuLjE3ZjViYzkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVHlwZXMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1R5cGVzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1ZNRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1ZNRXhjZXB0aW9uLmphdmEKaW5kZXggZmZkNDQ4OS4uMzFkZDFkNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9WTUV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVk1FeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1ZNTW9uaXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9WTU1vbml0b3IuamF2YQppbmRleCA2MzI2ZDA0Li5lMTVmM2Q5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1ZNTW9uaXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvVk1Nb25pdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9Xb3Jrc3BhY2VVdGlsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1dvcmtzcGFjZVV0aWwuamF2YQppbmRleCBjNGE4NDAzLi5lYTUwN2RhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1dvcmtzcGFjZVV0aWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1dvcmtzcGFjZVV0aWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1dvcmtzcGFjZVV0aWxJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL1dvcmtzcGFjZVV0aWxJbXBsLmphdmEKaW5kZXggN2Q3Mjg2Ny4uMDQ1YmIzMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC9Xb3Jrc3BhY2VVdGlsSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvV29ya3NwYWNlVXRpbEltcGwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9hYm91dC5odG1sCmluZGV4IDJiOWJjZmIuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk1heSAzMCwgMjAwNzwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvZXBsLXYxMC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL2VwbC12MTAuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2IxMDczYS4uMDAwMDAwMAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvZXBsLXYxMC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzA0ICswLDAgQEAKLTwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAvL0VOIj4KLTxodG1sIHhtbG5zOm89InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOm9mZmljZSIKLXhtbG5zOnc9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOndvcmQiCi14bWxucz0iaHR0cDovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+Ci0KLTxoZWFkPgotPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+Ci08bGluayByZWw9RmlsZS1MaXN0Ci1ocmVmPSIuL0VjbGlwc2UlMjBFUEwlMjAyMDAzXzExXzEwJTIwRmluYWxfZmlsZXMvZmlsZWxpc3QueG1sIj4KLTx0aXRsZT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gVmVyc2lvbiAxLjA8L3RpdGxlPgotPHN0eWxlPgotPCEtLQotIC8qIEZvbnQgRGVmaW5pdGlvbnMgKi8KLUBmb250LWZhY2UKLQl7Ci0JcGFub3NlLTE6MiAxMSA2IDQgMyA1IDQgNCAyIDQ7Ci0JbXNvLWZvbnQtY2hhcnNldDowOwotCW1zby1mb250LXBpdGNoOnZhcmlhYmxlOwotCW1zby1mb250LXNpZ25hdHVyZTo1NTM2Nzk0OTUgLTIxNDc0ODM2NDggOCAwIDY2MDQ3IDA7fQotIC8qIFN0eWxlIERlZmluaXRpb25zICovCi1wLk1zb05vcm1hbCwgbGkuTXNvTm9ybWFsLCBkaXYuTXNvTm9ybWFsCi0Je21zby1zdHlsZS1wYXJlbnQ6IiI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZToxMi4wcHQ7Ci0JfQotcAotCXttYXJnaW4tcmlnaHQ6MGluOwotCW1zby1tYXJnaW4tdG9wLWFsdDphdXRvOwotCW1zby1tYXJnaW4tYm90dG9tLWFsdDphdXRvOwotCW1hcmdpbi1sZWZ0OjBpbjsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQl9Ci1wLkJhbGxvb25UZXh0LCBsaS5CYWxsb29uVGV4dCwgZGl2LkJhbGxvb25UZXh0Ci0Je21zby1zdHlsZS1uYW1lOiJCYWxsb29uIFRleHQiOwotCW1hcmdpbjowaW47Ci0JbWFyZ2luLWJvdHRvbTouMDAwMXB0OwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6OC4wcHQ7Ci0JCi0JfQotQHBhZ2UgU2VjdGlvbjEKLQl7c2l6ZTo4LjVpbiAxMS4waW47Ci0JbWFyZ2luOjEuMGluIDEuMjVpbiAxLjBpbiAxLjI1aW47Ci0JbXNvLWhlYWRlci1tYXJnaW46LjVpbjsKLQltc28tZm9vdGVyLW1hcmdpbjouNWluOwotCW1zby1wYXBlci1zb3VyY2U6MDt9Ci1kaXYuU2VjdGlvbjEKLQl7cGFnZTpTZWN0aW9uMTt9Ci0tLT4KLTwvc3R5bGU+Ci08L2hlYWQ+Ci0KLTxib2R5IGxhbmc9IkVOLVVTIiBzdHlsZT0ndGFiLWludGVydmFsOi41aW4nPgotCi08ZGl2IGNsYXNzPVNlY3Rpb24xPgotCi08cCBhbGlnbj1jZW50ZXIgc3R5bGU9J3RleHQtYWxpZ246Y2VudGVyJz48Yj5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAxLjA8L2I+Ci08L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIKLVRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UgUFVCTElDIExJQ0VOU0UgKCZxdW90O0FHUkVFTUVOVCZxdW90OykuIEFOWSBVU0UsCi1SRVBST0RVQ1RJT04gT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UKLU9GIFRISVMgQUdSRUVNRU5ULjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+MS4gREVGSU5JVElPTlM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtDb250cmlidXRpb24mcXVvdDsgbWVhbnM6PC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1pbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29kZSBhbmQgZG9jdW1lbnRhdGlvbgotZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZDxiciBjbGVhcj1sZWZ0PgotYikgaW4gdGhlIGNhc2Ugb2YgZWFjaCBzdWJzZXF1ZW50IENvbnRyaWJ1dG9yOjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmkpCi1jaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paSkKLWFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz53aGVyZQotc3VjaCBjaGFuZ2VzIGFuZC9vciBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0gb3JpZ2luYXRlIGZyb20gYW5kIGFyZSBkaXN0cmlidXRlZAotYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbiAnb3JpZ2luYXRlcycgZnJvbSBhIENvbnRyaWJ1dG9yCi1pZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbgotc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlCi1Qcm9ncmFtIHdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24KLXdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKSBhcmUgbm90IGRlcml2YXRpdmUKLXdvcmtzIG9mIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+JnF1b3Q7Q29udHJpYnV0b3ImcXVvdDsgbWVhbnMgYW55IHBlcnNvbiBvcgotZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0uPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtMaWNlbnNlZCBQYXRlbnRzICZxdW90OyBtZWFuIHBhdGVudAotY2xhaW1zIGxpY2Vuc2FibGUgYnkgYSBDb250cmlidXRvciB3aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2UKLW9yIHNhbGUgb2YgaXRzIENvbnRyaWJ1dGlvbiBhbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtQcm9ncmFtJnF1b3Q7IG1lYW5zIHRoZSBDb250cmlidXRpb25zCi1kaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcyBBZ3JlZW1lbnQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtSZWNpcGllbnQmcXVvdDsgbWVhbnMgYW55b25lIHdobwotcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Mi4gR1JBTlQgT0YgUklHSFRTPC9zcGFuPjwvYj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQKLWEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG88c3Bhbgotc3R5bGU9J2NvbG9yOnJlZCc+IDwvc3Bhbj5yZXByb2R1Y2UsIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3JrcyBvZiwgcHVibGljbHkKLWRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIGRpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi1Db250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBkZXJpdmF0aXZlIHdvcmtzLCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUKLWZvcm0uPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YikKLVN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoIENvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMKLVJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSw8c3BhbiBzdHlsZT0nY29sb3I6Z3JlZW4nPiA8L3NwYW4+cm95YWx0eS1mcmVlCi1wYXRlbnQgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwgaW1wb3J0Ci1hbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwgaWYgYW55LCBpbiBzb3VyY2UKLWNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uCi1vZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUgUHJvZ3JhbSBpZiwgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZAotYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24KLXRvIGJlIGNvdmVyZWQgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8KLWFueSBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIgc2UgaXMKLWxpY2Vuc2VkIGhlcmV1bmRlci4gPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YykKLVJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMKLUNvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcyBhcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yCi10aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZSBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5Ci1yaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4gRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQKLWZvciBjbGFpbXMgYnJvdWdodCBieSBhbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwKLXByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQKLWxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5Ci10byBzZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvciBleGFtcGxlLAotaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQgdG8gZGlzdHJpYnV0ZQotdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZQotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmQpCi1FYWNoIENvbnRyaWJ1dG9yIHJlcHJlc2VudHMgdGhhdCB0byBpdHMga25vd2xlZGdlIGl0IGhhcyBzdWZmaWNpZW50IGNvcHlyaWdodAotcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbgotdGhpcyBBZ3JlZW1lbnQuIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4zLiBSRVFVSVJFTUVOVFM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5BIENvbnRyaWJ1dG9yIG1heSBjaG9vc2UgdG8gZGlzdHJpYnV0ZSB0aGUKLVByb2dyYW0gaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciBpdHMgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBwcm92aWRlZCB0aGF0Ojwvc3Bhbj4KLTwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWl0IGNvbXBsaWVzIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50OyBhbmQ8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKQotaXRzIGxpY2Vuc2UgYWdyZWVtZW50Ojwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmkpCi1lZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIHdhcnJhbnRpZXMgYW5kCi1jb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcyBvciBjb25kaXRpb25zIG9mIHRpdGxlCi1hbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcyBvciBjb25kaXRpb25zIG9mIG1lcmNoYW50YWJpbGl0eQotYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOyA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5paSkKLWVmZmVjdGl2ZWx5IGV4Y2x1ZGVzIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzIGFsbCBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsCi1pbmNsdWRpbmcgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwgaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoCi1hcyBsb3N0IHByb2ZpdHM7IDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpaSkKLXN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMgQWdyZWVtZW50IGFyZSBvZmZlcmVkIGJ5IHRoYXQKLUNvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyIHBhcnR5OyBhbmQ8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5pdikKLXN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUgZnJvbSBzdWNoIENvbnRyaWJ1dG9yLCBhbmQKLWluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYSByZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEKLW1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZS48c3BhbiBzdHlsZT0nY29sb3I6Ymx1ZSc+IDwvc3Bhbj48L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+V2hlbiB0aGUgUHJvZ3JhbSBpcyBtYWRlIGF2YWlsYWJsZSBpbiBzb3VyY2UKLWNvZGUgZm9ybTo8L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQ7IGFuZCA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKSBhCi1jb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoIGNvcHkgb2YgdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Db250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55Ci1jb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUKLW9yaWdpbmF0b3Igb2YgaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzCi1zdWJzZXF1ZW50IFJlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5Ci1hY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzCi1hbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZQotb2YgdGhlIFByb2dyYW0sIHRoZSBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCi1wcm9kdWN0IG9mZmVyaW5nIHNob3VsZCBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUgcG90ZW50aWFsCi1saWFiaWxpdHkgZm9yIG90aGVyIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yIGluY2x1ZGVzIHRoZQotUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvciAoJnF1b3Q7Q29tbWVyY2lhbAotQ29udHJpYnV0b3ImcXVvdDspIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZCBpbmRlbW5pZnkgZXZlcnkgb3RoZXIKLUNvbnRyaWJ1dG9yICgmcXVvdDtJbmRlbW5pZmllZCBDb250cmlidXRvciZxdW90OykgYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZAotY29zdHMgKGNvbGxlY3RpdmVseSAmcXVvdDtMb3NzZXMmcXVvdDspIGFyaXNpbmcgZnJvbSBjbGFpbXMsIGxhd3N1aXRzIGFuZCBvdGhlcgotbGVnYWwgYWN0aW9ucyBicm91Z2h0IGJ5IGEgdGhpcmQgcGFydHkgYWdhaW5zdCB0aGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgdG8KLXRoZSBleHRlbnQgY2F1c2VkIGJ5IHRoZSBhY3RzIG9yIG9taXNzaW9ucyBvZiBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4KLWNvbm5lY3Rpb24gd2l0aCBpdHMgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0Ci1vZmZlcmluZy4gVGhlIG9ibGlnYXRpb25zIGluIHRoaXMgc2VjdGlvbiBkbyBub3QgYXBwbHkgdG8gYW55IGNsYWltcyBvciBMb3NzZXMKLXJlbGF0aW5nIHRvIGFueSBhY3R1YWwgb3IgYWxsZWdlZCBpbnRlbGxlY3R1YWwgcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlcgotdG8gcXVhbGlmeSwgYW4gSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZSBDb21tZXJjaWFsCi1Db250cmlidXRvciBpbiB3cml0aW5nIG9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvcgotdG8gY29udHJvbCwgYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZSBhbmQKLWFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlCi1pbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZQotUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQotQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKLXdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLiBVbmRlciB0aGlzCi1zZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUKLW90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEKLWNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZQotQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+NS4gTk8gV0FSUkFOVFk8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTCi1BR1JFRU1FTlQsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOICZxdW90O0FTIElTJnF1b3Q7IEJBU0lTLCBXSVRIT1VUCi1XQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAotV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAotTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZCBkaXN0cmlidXRpbmcgdGhlCi1Qcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsCi1jb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvcgotZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuIDwvc3Bhbj48L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMKLUFHUkVFTUVOVCwgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUgotQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0oSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKLU5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GCi1USEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GCi1USEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLjwvc3Bhbj4gPC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+Ny4gR0VORVJBTDwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZAotb3IgdW5lbmZvcmNlYWJsZSB1bmRlciBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IKLWVuZm9yY2VhYmlsaXR5IG9mIHRoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dAotZnVydGhlciBhY3Rpb24gYnkgdGhlIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUKLW1pbmltdW0gZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uCi1hZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpCi1hbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZiAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoCi1vdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2gKLVJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlIGRhdGUKLXN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQKLXNoYWxsIHRlcm1pbmF0ZSBpZiBpdCBmYWlscyB0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yCi1jb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUKLXBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzCi1yaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQKLWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsCi1SZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkKLVJlY2lwaWVudCByZWxhdGluZyB0byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlCi1jb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMKLWNvcHlyaWdodGVkIGFuZCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlIEFncmVlbWVudAotU3Rld2FyZCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZyByZXZpc2lvbnMpIG9mCi10aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcwotdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbAotQWdyZWVtZW50IFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8KLXNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcgdmVyc2lvbgotb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuIFRoZSBQcm9ncmFtCi0oaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgZGlzdHJpYnV0ZWQgc3ViamVjdCB0byB0aGUgdmVyc2lvbiBvZgotdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuIEluIGFkZGl0aW9uLCBhZnRlciBhIG5ldyB2ZXJzaW9uIG9mCi10aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwgQ29udHJpYnV0b3IgbWF5IGVsZWN0IHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0KLShpbmNsdWRpbmcgaXRzIENvbnRyaWJ1dGlvbnMpIHVuZGVyIHRoZSBuZXcgdmVyc2lvbi4gRXhjZXB0IGFzIGV4cHJlc3NseSBzdGF0ZWQKLWluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudCByZWNlaXZlcyBubyByaWdodHMgb3IgbGljZW5zZXMgdG8KLXRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55IENvbnRyaWJ1dG9yIHVuZGVyIHRoaXMgQWdyZWVtZW50LCB3aGV0aGVyCi1leHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLCBlc3RvcHBlbCBvciBvdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90Ci1leHByZXNzbHkgZ3JhbnRlZCB1bmRlciB0aGlzIEFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUKLVN0YXRlIG9mIE5ldyBZb3JrIGFuZCB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YKLUFtZXJpY2EuIE5vIHBhcnR5IHRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcwotQWdyZWVtZW50IG1vcmUgdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcwotaXRzIHJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWw+PC9wPgotCi08L2Rpdj4KLQotPC9ib2R5PgotCi08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL2VwbC12MjAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNTgpaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtMi4wL0VQTC0yLjAuaHRtbCAtLT4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgCisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KKyAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorICAgICAgUFVCTElDIExJQ0VOU0UgKOKAnEFHUkVFTUVOVOKAnSkuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KKyAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KKyAgICA8cD7igJxDb250cmlidXRpb27igJ0gbWVhbnM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgICAgICAg4oCcb3JpZ2luYXRlc+KAnSBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KKyAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0CisgICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+4oCcQ29udHJpYnV0b3LigJ0gbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+CisgICAgPHA+4oCcTGljZW5zZWQgUGF0ZW50c+KAnSBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCisgICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCisgICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCisgICAgPC9wPgorICAgIDxwPuKAnFByb2dyYW3igJ0gbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKKyAgICAgIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPHA+4oCcUmVjaXBpZW504oCdIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCisgICAgPC9wPgorICAgIDxwPuKAnERlcml2YXRpdmUgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCisgICAgPC9wPgorICAgIDxwPuKAnE1vZGlmaWVkIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CisgICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKKyAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQorICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKKyAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKKyAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCisgICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCisgICAgICBXb3JrcyB0aGVyZW9mLgorICAgIDwvcD4KKyAgICA8cD7igJxEaXN0cmlidXRl4oCdIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCisgICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgorICAgIDwvcD4KKyAgICA8cD7igJxTb3VyY2UgQ29kZeKAnSBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCisgICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgPC9wPgorICAgIDxwPuKAnFNlY29uZGFyeSBMaWNlbnNl4oCdIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgIENvbnRyaWJ1dG9yLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKKyAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKKyAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKKyAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKKyAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAorICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAorICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKKyAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55CisgICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgorICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgICAgICA8L2xpPgorICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKKyAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCisgICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgICAgICA8L2xpPgorICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisgICAgICA8L2xpPgorICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgorICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAorICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQncyByZWNlaXB0IG9mIHRoZQorICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKKyAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+CisgICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQorICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQorICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCisgICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKKyAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQorICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCisgICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMnIHJpZ2h0cyBpbiB0aGUKKyAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQorICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQorICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQorICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bworICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAorICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKKyAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKKyAgICAgICjigJhub3RpY2Vz4oCZKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKKyAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKKyAgICAgIG5vdGljZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KKyAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcworICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCisgICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKKyAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKKyAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgorICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQorICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICjigJxDb21tZXJjaWFsIENvbnRyaWJ1dG9y4oCdKQorICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgorICAgICAgKOKAnEluZGVtbmlmaWVkIENvbnRyaWJ1dG9y4oCdKSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCisgICAgICAoY29sbGVjdGl2ZWx5IOKAnExvc3Nlc+KAnSkgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKKyAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50CisgICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCisgICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCisgICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZworICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCisgICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCisgICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCisgICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAorICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKyAgICA8L3A+CisgICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQorICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCisgICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKKyAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4KKyAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCisgICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCisgICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCisgICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiDigJxBUyBJU+KAnSBCQVNJUywgV0lUSE9VVAorICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKKyAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKKyAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQorICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKKyAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKKyAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKKyAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAorICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUworICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgorICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCisgICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCisgICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKKyAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKKyAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKyAgICA8L3A+CisgICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKKyAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCisgICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZAorICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisgICAgPC9wPgorICAgIDxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCisgICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCisgICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKKyAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCisgICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyCisgICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQorICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKyAgICA8L3A+CisgICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5CisgICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKKyAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAorICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAorICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcworICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCisgICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KKyAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCisgICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3CisgICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQorICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgorICAgIDwvcD4KKyAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKKyAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQorICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKKyAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKKyAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAorICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KKyAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSDigJMgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KKyAgICA8cD7igJxUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCisgICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCisgICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKKyAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS7igJ0KKyAgICA8L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCisgICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCisgICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCisgICAgICAgIHN1Y2ggYSBub3RpY2UuCisgICAgICA8L3A+CisgICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICAKKzxkaXYgaWQ9ImVpZC1jaHJvbWUtZXh0ZW5zaW9uLWlzLWluc3RhbGxlZCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwppbmRleCA0MGQ4MjcwLi4zNzA4NTA3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTMsOSArMyw5IEBACiAjICAqCiAjICAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1IEFUTEFTIEdyb3VwIChJTlJJQSAmIExJTkEpLgogIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAgKiAKICMgICogQ29udHJpYnV0b3JzOiAKICMgICogICBBVExBUyBHcm91cCAoSU5SSUEgJiBMSU5BKQpAQCAtMzcsMTQzICszNywxNjcgQEAKICMgImRlc2NyaXB0aW9uIiBwcm9wZXJ0eSAtIGRlc2NyaXB0aW9uIG9mIHRoZSBmZWF0dXJlCiBkZXNjcmlwdGlvbj1BVEwgRW5naW5lCiAKLSMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgotIyBkbyBub3QgdHJhbnNsYXRlIHZhbHVlIC0ganVzdCBjaGFuZ2UgdG8gcG9pbnQgdG8gYSBsb2NhbGUtc3BlY2lmaWMgSFRNTCBwYWdlCi1saWNlbnNlVVJMPWxpY2Vuc2UuaHRtbAorIyAidXBkYXRlU2l0ZU5hbWUiIHByb3BlcnR5IC0gbGFiZWwgZm9yIHRoZSB1cGRhdGUgc2l0ZQorTW9kZWxpbmdVcGRhdGVTaXRlTmFtZT1FY2xpcHNlIE1vZGVsaW5nCiAKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAjICUlJSBFTkQgT0YgVFJBTlNMQVRFRCBQUk9QRVJUSUVTICUlJQogIyBUaGUgYWJvdmUgcHJvcGVydGllcyBoYXZlIGJlZW4gc2hpcHBlZCBmb3IgdHJhbnNsYXRpb24uCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCitjb3B5cmlnaHRVUkwgPSBjb3B5cmlnaHQudHh0Citjb3B5cmlnaHQgPSBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMDkgSU5SSUEuIFxuXAorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCBcblwKK3doaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0IFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8gXG5cCisgXG5cCisgICAKKyMgImxpY2Vuc2VVUkwiIHByb3BlcnR5IC0gVVJMIG9mIHRoZSAiRmVhdHVyZSBMaWNlbnNlIgorIyBkbyBub3QgdHJhbnNsYXRlIHZhbHVlIC0ganVzdCBjaGFuZ2UgdG8gcG9pbnQgdG8gYSBsb2NhbGUtc3BlY2lmaWMgSFRNTCBwYWdlCitsaWNlbnNlVVJMPWxpY2Vuc2UuaHRtbAorCiAjICJsaWNlbnNlIiBwcm9wZXJ0eSAtIHRleHQgb2YgdGhlICJGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIgogIyBzaG91bGQgYmUgcGxhaW4gdGV4dCB2ZXJzaW9uIG9mIGxpY2Vuc2UgYWdyZWVtZW50IHBvaW50ZWQgdG8gYmUgImxpY2Vuc2VVUkwiCiBsaWNlbnNlPVwKIEVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudFxuXAotRmVicnVhcnkgMSwgMjAxMVxuXAorXG5cCitOb3ZlbWJlciAyMiwgMjAxN1xuXAogXG5cCiBVc2FnZSBPZiBDb250ZW50XG5cCiBcblwKLVRIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTiBBTkQvT1JcblwKLU9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLlxuXAotVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTXG5cCi1BR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1JcblwKLU5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VXG5cCi1BR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UXG5cCi1BTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UU1xuXAotT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCi1URVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TXG5cCi1PRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAotQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAorVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OXG5cCitBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuIFVTRSBPRlxuXAorVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEVcblwKK1RFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCitCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEXG5cCitCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0VcblwKK0FHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKK1RFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZXG5cCitBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVVxuXAorTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCiBcblwKIEFwcGxpY2FibGUgTGljZW5zZXNcblwKIFxuXAotVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZVxuXAotRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2ZcblwKLXRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzXG5cCi1wcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwuXG5cCi1Gb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKK1VubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uXG5cCitpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlXG5cCitWZXJzaW9uIDIuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzb1xuXAorYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC4gRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsXG5cCisiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAogXG5cCi1Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSxcblwKLWRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZVxuXAotcmVwb3NpdG9yeSAoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZVxuXAotYXMgZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCitDb250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvblxuXAorYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZSByZXBvc2l0b3J5XG5cCisoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZSBhc1xuXAorZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuXG5cCiBcblwKLSAgICAgICAtIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsXG5cCi0gICAgICAgICBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksXG5cCi0gICAgICAgICBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLlxuXAotICAgICAgIC0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhKFRNKSBBUmNoaXZlKVxuXAotICAgICAgICAgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAotICAgICAgIC0gQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuXG5cCi0gICAgICAgICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLlxuXAotICAgICAgICAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uXG5cCi0gICAgICAgICBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCi0gICAgICAgLSBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXNcblwKLSAgICAgICAgIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAorLSAgIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlXG5cCisgICAgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5XG5cCisgICAgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZFxuXAorICAgIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKKy0gICBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVJcblwKKyAgICAoSmF2YVx1MjEyMiBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCistICAgQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kXG5cCisgICAgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYVxuXAorICAgIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heVxuXAorICAgIGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3JcblwKKyAgICBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKKy0gICBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGFcblwKKyAgICBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kXG5cCisgICAgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAogXG5cCi1UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlXG5cCi1jb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmRcblwKLWNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkXG5cCi1pbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlXG5cCi1MaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlXG5cCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluXG5cCitmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlc1xuXAorYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCJcblwKKygiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55XG5cCitkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZ1xuXAorbG9jYXRpb25zOlxuXAogXG5cCi0gICAgICAgLSBUaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3RvcnlcblwKLSAgICAgICAtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi0gICAgICAgLSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi0gICAgICAgLSBTdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zXG5cCi0gICAgICAgLSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAorLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKIFxuXAotTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZVxuXAotUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFxuXAotVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWluc1xuXAotSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKLXdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtXG5cCi15b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluXG5cCi10aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuXG5cCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlXG5cCi10ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0XG5cCi1nb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZ1xuXAordGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlXG5cCisoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZVxuXAorY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKK3dpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdVxuXAord2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSJcblwKK3Byb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2hcblwKK0Fib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZlxuXAordGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKIFxuXAotVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUExcblwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRVxuXAorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKIFxuXAotICAgICAgIC0gRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbClcblwKLSAgICAgICAtIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sKVxuXAotICAgICAgIC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi0gICAgICAgLSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXG5cCi0gICAgICAgLSBNZXRybyBMaW5rIFB1YmxpYyBMaWNlbnNlIDEuMDAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb3Blbm1vdGlmL3N1cHBvcnRlcnMvbWV0cm9saW5rL2xpY2Vuc2UuaHRtbClcblwKLSAgICAgICAtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCistICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwpXG5cCistICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAorLSAgIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gICBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCiBcblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZVxuXAotaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnNcblwKLWdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE9cblwKK1VTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpc1xuXAorcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKIFxuXAotXG5cVXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKIFxuXAotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLFxuXAotYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3JcblwKLXRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vclxuXAotb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoXG5cCi10aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy5cblwKLUluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXRcblwKK1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2hcblwKK2luY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlclxuXAorKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsXG5cCitzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5XG5cCisiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZ1xuXAorc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvblxuXAorYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAogaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKIFxuXAotWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAotWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlXG5cCi1JbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAotaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZFxuXAotbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXJcblwKLWFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbFxuXAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGVcblwKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmRcblwKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcblwKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdFxuXAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGVcblwKK2ZvbGxvd2luZzpcblwKIFxuXAotICAgICAgIDEuIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGVcblwKLSAgICAgICAgICB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgiVGFyZ2V0IE1hY2hpbmUiKSB3aXRoIHRoZSBpbnRlbnQgb2YgaW5zdGFsbGluZyxcblwKLSAgICAgICAgICBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAotICAgICAgIDIuIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHlcblwKLSAgICAgICAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS5cblwKLSAgICAgICAzLiBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAotICAgICAgICAgIGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoXG5cCi0gICAgICAgICAgSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldCBNYWNoaW5lIGluIGFjY29yZGFuY2VcblwKLSAgICAgICAgICB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGVcblwKLSAgICAgICAgICB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5XG5cCi0gICAgICAgICAgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoXG5cCi0gICAgICAgICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvblxuXAotICAgICAgICAgIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKKzEuICBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heVxuXAorICAgIGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGVcblwKKyAgICBpbnRlbnQgb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuXG5cCisgICAgRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAorMi4gIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmRcblwKKyAgICBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvXG5cCisgICAgdGhlIFRhcmdldCBNYWNoaW5lLlxuXAorMy4gIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmVcblwKKyAgICBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2hcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZFxuXAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZVxuXAorICAgIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZVxuXAorICAgIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGVcblwKKyAgICBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGVcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKIFxuXAogQ3J5cHRvZ3JhcGh5XG5cCiBcblwKLUNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZVxuXAotY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLFxuXAotYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRVxuXAotdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsXG5cCi1yZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZFxuXAotcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC5cblwKK0NvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZSBjdXJyZW50bHlcblwKK21heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvXG5cCithbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSxcblwKK3BsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsXG5cCitwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXNcblwKK3Blcm1pdHRlZC5cblwKIFxuXAotSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgorSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlXG5cCitVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KICMjIyMjIyMjIyMjIGVuZCBvZiBsaWNlbnNlIHByb3BlcnR5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0KLSMgInVwZGF0ZVNpdGVOYW1lIiBwcm9wZXJ0eSAtIGxhYmVsIGZvciB0aGUgdXBkYXRlIHNpdGUKLU1vZGVsaW5nVXBkYXRlU2l0ZU5hbWU9RWNsaXBzZSBNb2RlbGluZwpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL2ZlYXR1cmUueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL2ZlYXR1cmUueG1sCmluZGV4IDEzYjRkYmQuLjFlZWRiZDEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTE0LDIyOCArMTQsMTQgQEAKIAk8ZGlzY292ZXJ5IGxhYmVsPSIlTW9kZWxpbmdVcGRhdGVTaXRlTmFtZSIgdXJsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGVsaW5nL3VwZGF0ZXMvIi8+CiA8L3VybD4KIAotICAgPGNvcHlyaWdodCB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj4KLSAgICAgIC8qICAKLSogQ29weXJpZ2h0IChjKSAyMDA0LCBJTlJJQS4KLSogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlCi12MS4wCi0qIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0qIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCi0qIAotKi8KKyAgIDxjb3B5cmlnaHQgdXJsPSIlY29weXJpZ2h0VVJMIj4KKyAgICAgICVjb3B5cmlnaHQKICAgIDwvY29weXJpZ2h0PgogCi0gICA8bGljZW5zZSB1cmw9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj4KLSAgICAgIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMAotVEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTCi1FQ0xJUFNFIFBVQkxJQyBMSUNFTlNFICgmcXVvdDtBR1JFRU1FTlQmcXVvdDspLiBBTlkgVVNFLCBSRVBST0RVQ1RJT04gT1IKLURJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBDT05TVElUVVRFUyBSRUNJUElFTlQmYXBvcztTIEFDQ0VQVEFOQ0UKLU9GIFRISVMgQUdSRUVNRU5ULgotMS4gREVGSU5JVElPTlMKLSZxdW90O0NvbnRyaWJ1dGlvbiZxdW90OyBtZWFuczoKLWEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZAotZG9jdW1lbnRhdGlvbiBkaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCi1iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6Ci1pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQKLWlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07Ci13aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUKLWZyb20gYW5kIGFyZSBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uCi0mYXBvcztvcmlnaW5hdGVzJmFwb3M7IGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0KLWJ5IHN1Y2ggQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvciZhcG9zO3MKLWJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW0KLXdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4gY29uanVuY3Rpb24KLXdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKQotYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBQcm9ncmFtLgotJnF1b3Q7Q29udHJpYnV0b3ImcXVvdDsgbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUKLVByb2dyYW0uCi0mcXVvdDtMaWNlbnNlZCBQYXRlbnRzICZxdW90OyBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yCi13aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uCi1hbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCi0mcXVvdDtQcm9ncmFtJnF1b3Q7IG1lYW5zIHRoZSBDb250cmlidXRpb25zIGRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aAotdGhpcyBBZ3JlZW1lbnQuCi0mcXVvdDtSZWNpcGllbnQmcXVvdDsgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzCi1BZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLgotMi4gR1JBTlQgT0YgUklHSFRTCi1hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKLWdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKLWxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3Mgb2YsIHB1YmxpY2x5IGRpc3BsYXksCi1wdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24KLW9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4gc291cmNlCi1jb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLgotYikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5Ci1ncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLCByb3lhbHR5LWZyZWUgcGF0ZW50Ci1saWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAotaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAotaWYgYW55LCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZQotc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtCi1pZiwgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsCi1zdWNoIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8KLWJlIGNvdmVyZWQgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbAotbm90IGFwcGx5IHRvIGFueSBvdGhlciBjb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLgotTm8gaGFyZHdhcmUgcGVyIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KLWMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzCi10aGUgbGljZW5zZXMgdG8gaXRzIENvbnRyaWJ1dGlvbnMgc2V0IGZvcnRoIGhlcmVpbiwgbm8gYXNzdXJhbmNlcwotYXJlIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlCi10aGUgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyCi1lbnRpdHkuIEVhY2ggQ29udHJpYnV0b3IgZGlzY2xhaW1zIGFueSBsaWFiaWxpdHkgdG8gUmVjaXBpZW50Ci1mb3IgY2xhaW1zIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQKLW9mIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbgotdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZCBsaWNlbnNlcyBncmFudGVkIGhlcmV1bmRlciwgZWFjaAotUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlcgotaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmCi1hIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0bwotZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50JmFwb3M7cyByZXNwb25zaWJpbGl0eSB0byBhY3F1aXJlCi10aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KLWQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKLWNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0Ci1saWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KLTMuIFJFUVVJUkVNRU5UUwotQSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaW4gb2JqZWN0Ci1jb2RlIGZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDoKLWEpIGl0IGNvbXBsaWVzIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQWdyZWVtZW50OwotYW5kCi1iKSBpdHMgbGljZW5zZSBhZ3JlZW1lbnQ6Ci1pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIHdhcnJhbnRpZXMKLWFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcyBvcgotY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcwotb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhcgotcHVycG9zZTsKLWlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgbGlhYmlsaXR5Ci1mb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKLWFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOwotaWlpKSBzdGF0ZXMgdGhhdCBhbnkgcHJvdmlzaW9ucyB3aGljaCBkaWZmZXIgZnJvbSB0aGlzIEFncmVlbWVudAotYXJlIG9mZmVyZWQgYnkgdGhhdCBDb250cmlidXRvciBhbG9uZSBhbmQgbm90IGJ5IGFueSBvdGhlciBwYXJ0eTsKLWFuZAotaXYpIHN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUgZnJvbQotc3VjaCBDb250cmlidXRvciwgYW5kIGluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYQotcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvcgotc29mdHdhcmUgZXhjaGFuZ2UuCi1XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06Ci1hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQKLWIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mCi10aGUgUHJvZ3JhbS4KLUNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0IG5vdGljZXMgY29udGFpbmVkCi13aXRoaW4gdGhlIFByb2dyYW0uCi1FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZSBvcmlnaW5hdG9yIG9mIGl0cwotQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3Mgc3Vic2VxdWVudAotUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLgotNC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT04KLUNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCi13aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlCi10aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YKLXRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlCi1wb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvcgotaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKLSgmcXVvdDtDb21tZXJjaWFsIENvbnRyaWJ1dG9yJnF1b3Q7KSBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5Ci1ldmVyeSBvdGhlciBDb250cmlidXRvciAoJnF1b3Q7SW5kZW1uaWZpZWQgQ29udHJpYnV0b3ImcXVvdDspIGFnYWluc3QgYW55Ci1sb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzIChjb2xsZWN0aXZlbHkgJnF1b3Q7TG9zc2VzJnF1b3Q7KSBhcmlzaW5nIGZyb20KLWNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5Ci1hZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUKLWFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCi13aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QKLW9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkKLWNsYWltcyBvciBMb3NzZXMgcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbAotcHJvcGVydHkgaW5mcmluZ2VtZW50LiBJbiBvcmRlciB0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvcgotbXVzdDogYSkgcHJvbXB0bHkgbm90aWZ5IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcKLW9mIHN1Y2ggY2xhaW0sIGFuZCBiKSBhbGxvdyB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLAotYW5kIGNvb3BlcmF0ZSB3aXRoIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZQotYW5kIGFueSByZWxhdGVkIHNldHRsZW1lbnQgbmVnb3RpYXRpb25zLiBUaGUgSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IKLW1heSBwYXJ0aWNpcGF0ZSBpbiBhbnkgc3VjaCBjbGFpbSBhdCBpdHMgb3duIGV4cGVuc2UuCi1Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsCi1Db250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCi1jbGFpbXMgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciZhcG9zO3MgcmVzcG9uc2liaWxpdHkKLWFsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUKLXRvIGRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UKLXBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55Ci1vdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsCi1Db250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgotNS4gTk8gV0FSUkFOVFkKLUVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBUSEUgUFJPR1JBTQotSVMgUFJPVklERUQgT04gQU4gJnF1b3Q7QVMgSVMmcXVvdDsgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TCi1PRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwKLUFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWQotT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aAotaXRzIGV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90Ci1saW1pdGVkIHRvIHRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2UKLXdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvcgotZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCi02LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWQotRVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIE5FSVRIRVIgUkVDSVBJRU5UCi1OT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SIEFOWSBESVJFQ1QsCi1JTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORAotT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCi1PUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQotT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRQotT0YgQU5ZIFJJR0hUUyBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWQotT0YgU1VDSCBEQU1BR0VTLgotNy4gR0VORVJBTAotSWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUKLXVuZGVyIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eQotb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0Ci1mdXJ0aGVyIGFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlCi1yZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24KLXZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KLUlmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eQotKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nCi10aGF0IHRoZSBQcm9ncmFtIGl0c2VsZiAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbQotd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50JmFwb3M7cyBwYXRlbnQocyksCi10aGVuIHN1Y2ggUmVjaXBpZW50JmFwb3M7cyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwKLXRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCi1BbGwgUmVjaXBpZW50JmFwb3M7cyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmCi1pdCBmYWlscyB0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMKLW9mIHRoaXMgQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUKLXBlcmlvZCBvZiB0aW1lIGFmdGVyIGJlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYKLWFsbCBSZWNpcGllbnQmYXBvcztzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudAotYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMKLXJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCZhcG9zO3Mgb2JsaWdhdGlvbnMgdW5kZXIKLXRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcKLXRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgotRXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAotYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZAotYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50Ci1TdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nCi1yZXZpc2lvbnMpIG9mIHRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIKLXRoYW4gdGhlIEFncmVlbWVudCBTdGV3YXJkIGhhcyB0aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LgotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyB0aGUgaW5pdGlhbCBBZ3JlZW1lbnQgU3Rld2FyZC4gVGhlCi1FY2xpcHNlIEZvdW5kYXRpb24gbWF5IGFzc2lnbiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gc2VydmUgYXMKLXRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhIHN1aXRhYmxlIHNlcGFyYXRlIGVudGl0eS4gRWFjaCBuZXcKLXZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlIGdpdmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbgotbnVtYmVyLiBUaGUgUHJvZ3JhbSAoaW5jbHVkaW5nIENvbnRyaWJ1dGlvbnMpIG1heSBhbHdheXMgYmUgZGlzdHJpYnV0ZWQKLXN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB1bmRlciB3aGljaCBpdCB3YXMgcmVjZWl2ZWQuCi1JbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbiBvZiB0aGUgQWdyZWVtZW50IGlzIHB1Ymxpc2hlZCwKLUNvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChpbmNsdWRpbmcgaXRzCi1Db250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkCi1pbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8gcmlnaHRzCi1vciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlcgotdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3IKLW90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIKLXRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4KLVRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yawotYW5kIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLgotTm8gcGFydHkgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuCi1FYWNoIHBhcnR5IHdhaXZlcyBpdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nCi1saXRpZ2F0aW9uLgorICAgPGxpY2Vuc2UgdXJsPSIlbGljZW5zZVVSTCI+CisgICAgICAlbGljZW5zZQogICAgPC9saWNlbnNlPgogCi0gICA8cmVxdWlyZXM+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuY29yZS5ydW50aW1lIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMiLz4KLSAgICAgIDxpbXBvcnQgcGx1Z2luPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pIi8+Ci0gICAgICA8aW1wb3J0IHBsdWdpbj0ib3JnLmFudGxyLnJ1bnRpbWUiIHZlcnNpb249IjMuMC4wIiBtYXRjaD0iZ3JlYXRlck9yRXF1YWwiLz4KLSAgICAgIDxpbXBvcnQgcGx1Z2luPSJvcmcuZWNsaXBzZS51aSIvPgotICAgICAgPGltcG9ydCBwbHVnaW49Im9yZy5lY2xpcHNlLnVpLmlkZSIvPgotICAgICAgPGltcG9ydCBwbHVnaW49Im9yZy5lY2xpcHNlLmVtZi5jb21tb24iLz4KLSAgIDwvcmVxdWlyZXM+Ci0KICAgIDxwbHVnaW4KICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZSIKICAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvbGljZW5zZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL2xpY2Vuc2UuaHRtbAppbmRleCBmMTljNDgzLi5jMzVkODM0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvbGljZW5zZS5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9saWNlbnNlLmh0bWwKQEAgLTIxLDggKzIxLDggQEAKIAogPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgogCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMAorICAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KICAgIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9yb290ZmlsZXMvZXBsLXYxMC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTA3M2EuLjAwMDAwMDAKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL3Jvb3RmaWxlcy9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTxsaW5rIHJlbD1GaWxlLUxpc3QKLWhyZWY9Ii4vRWNsaXBzZSUyMEVQTCUyMDIwMDNfMTFfMTAlMjBGaW5hbF9maWxlcy9maWxlbGlzdC54bWwiPgotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGU+Ci08IS0tCi0gLyogRm9udCBEZWZpbml0aW9ucyAqLwotQGZvbnQtZmFjZQotCXsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQl9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQkKLQl9Ci1AcGFnZSBTZWN0aW9uMQotCXtzaXplOjguNWluIDExLjBpbjsKLQltYXJnaW46MS4waW4gMS4yNWluIDEuMGluIDEuMjVpbjsKLQltc28taGVhZGVyLW1hcmdpbjouNWluOwotCW1zby1mb290ZXItbWFyZ2luOi41aW47Ci0JbXNvLXBhcGVyLXNvdXJjZTowO30KLWRpdi5TZWN0aW9uMQotCXtwYWdlOlNlY3Rpb24xO30KLS0tPgotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiIHN0eWxlPSd0YWItaW50ZXJ2YWw6LjVpbic+Ci0KLTxkaXYgY2xhc3M9U2VjdGlvbjE+Ci0KLTxwIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPjxiPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMDwvYj4KLTwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUgotVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRSBQVUJMSUMgTElDRU5TRSAoJnF1b3Q7QUdSRUVNRU5UJnF1b3Q7KS4gQU5ZIFVTRSwKLVJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRQotT0YgVEhJUyBBR1JFRU1FTlQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4xLiBERUZJTklUSU9OUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dGlvbiZxdW90OyBtZWFuczo8L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uCi1kaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPGJyIGNsZWFyPWxlZnQ+Ci1iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPndoZXJlCi1zdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbSBhbmQgYXJlIGRpc3RyaWJ1dGVkCi1ieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJyBmcm9tIGEgQ29udHJpYnV0b3IKLWlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uCi1zdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGFkZGl0aW9ucyB0byB0aGUKLVByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCBpbiBjb25qdW5jdGlvbgotd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIGFuZCAoaWkpIGFyZSBub3QgZGVyaXZhdGl2ZQotd29ya3Mgb2YgdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtDb250cmlidXRvciZxdW90OyBtZWFucyBhbnkgcGVyc29uIG9yCi1lbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0xpY2Vuc2VkIFBhdGVudHMgJnF1b3Q7IG1lYW4gcGF0ZW50Ci1jbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZQotb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1Byb2dyYW0mcXVvdDsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMKLWRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzIEFncmVlbWVudC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1JlY2lwaWVudCZxdW90OyBtZWFucyBhbnlvbmUgd2hvCi1yZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGFsbCBDb250cmlidXRvcnMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4yLiBHUkFOVCBPRiBSSUdIVFM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudAotYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0bzxzcGFuCi1zdHlsZT0nY29sb3I6cmVkJz4gPC9zcGFuPnJlcHJvZHVjZSwgcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mLCBwdWJsaWNseQotZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgZGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLUNvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluIHNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZQotZm9ybS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKQotU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cwotUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLDxzcGFuIHN0eWxlPSdjb2xvcjpncmVlbic+IDwvc3Bhbj5yb3lhbHR5LWZyZWUKLXBhdGVudCBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLCBpbXBvcnQKLWFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLCBpZiBhbnksIGluIHNvdXJjZQotY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbCBhcHBseSB0byB0aGUgY29tYmluYXRpb24KLW9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLCBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkCi1ieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2ggYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbgotdG8gYmUgY292ZXJlZCBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0bwotYW55IG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcwotbGljZW5zZWQgaGVyZXVuZGVyLiA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5jKQotUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlIGxpY2Vuc2VzIHRvIGl0cwotQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IKLXRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkKLXJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudAotZm9yIGNsYWltcyBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZAotbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkKLXRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsCi1pZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0byBkaXN0cmlidXRlCi10aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+ZCkKLUVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0Ci1yaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluCi10aGlzIEFncmVlbWVudC4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjMuIFJFUVVJUkVNRU5UUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZQotUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9zcGFuPgotPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQ7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1pdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQKLWNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUKLWFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5Ci1hbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7IDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywKLWluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2gKLWFzIGxvc3QgcHJvZml0czsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWlpKQotc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQgYXJlIG9mZmVyZWQgYnkgdGhhdAotQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPml2KQotc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2ggQ29udHJpYnV0b3IsIGFuZAotaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQotbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLjxzcGFuIHN0eWxlPSdjb2xvcjpibHVlJz4gPC9zcGFuPjwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZQotY29kZSBmb3JtOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpIGEKLWNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkKLWNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZQotb3JpZ2luYXRvciBvZiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3MKLXN1YnNlcXVlbnQgUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkKLWFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMKLWFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlCi1vZiB0aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwKLWxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmcXVvdDtDb21tZXJjaWFsCi1Db250cmlidXRvciZxdW90OykgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlcgotQ29udHJpYnV0b3IgKCZxdW90O0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnF1b3Q7KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kCi1jb3N0cyAoY29sbGVjdGl2ZWx5ICZxdW90O0xvc3NlcyZxdW90OykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyCi1sZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0bwotdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbgotY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QKLW9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyCi10byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCi10byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZAotYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUKLWluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuIFVuZGVyIHRoaXMKLXNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZQotb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYQotY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz41LiBOTyBXQVJSQU5UWTwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMKLUFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJnF1b3Q7QVMgSVMmcXVvdDsgQkFTSVMsIFdJVEhPVVQKLVdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi1XSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi1NRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUKLVByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMKLUFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywKLWNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yCi1lcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi1PRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwotTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YKLVRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YKLVRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz43LiBHRU5FUkFMPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkCi1vciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvcgotZW5mb3JjZWFiaWxpdHkgb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0Ci1mdXJ0aGVyIGFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZQotbWluaW11bSBleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24KLWFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkKLWFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGgKLW90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKSBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaAotUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZQotc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IKLWNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZQotcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MKLXJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZAotZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwKLVJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieQotUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUKLWNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcwotY29weXJpZ2h0ZWQgYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50Ci1TdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YKLXRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzCi10aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsCi1BZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0bwotc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uCi1vZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLShpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mCi10aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQotKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZAotaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0bwotdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIKLWV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QKLWV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZQotU3RhdGUgb2YgTmV3IFlvcmsgYW5kIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZgotQW1lcmljYS4gTm8gcGFydHkgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzCi1pdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uPC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbD48L3A+Ci0KLTwvZGl2PgotCi08L2JvZHk+Ci0KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MjAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9yb290ZmlsZXMvZXBsLXYyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvcm9vdGZpbGVzL2VwbC12MjAuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1OClodHRwczovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC0yLjAvRVBMLTIuMC5odG1sIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgICAKKyAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOworICAgICAgfQorICAgICAgaDF7CisgICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKKyAgICAgIH0KKyAgICAgIGgyeworICAgICAgICBmb250LXNpemU6MWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOworICAgICAgICBtYXJnaW4tdG9wOjFlbTsKKyAgICAgIH0KKyAgICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOworICAgICAgfQorICAgICAgdWwsIG9seworICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPGRpdiBpZD0iZWlkLWNocm9tZS1leHRlbnNpb24taXMtaW5zdGFsbGVkIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLWZlYXR1cmUvcm9vdGZpbGVzL25vdGljZS5odG1sCmluZGV4IDc0MTIyYjIuLjZkZGU5NWYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUtZmVhdHVyZS9yb290ZmlsZXMvbm90aWNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS1mZWF0dXJlL3Jvb3RmaWxlcy9ub3RpY2UuaHRtbApAQCAtMjAsOCArMjAsOCBAQAogCiA8aDM+QXBwbGljYWJsZSBMaWNlbnNlczwvaDM+CiAKLTxwPlVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAKLSAgICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCis8cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wCisgICAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2Uub3JnIENWUyByZXBvc2l0b3J5ICgmcXVvdDtSZXBvc2l0b3J5JnF1b3Q7KSBpbiBDVlMKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwpAQCAtMiw0ICsyLDQgQEAKIGZvcm1hdHRlcl9wcm9maWxlPV9BVEwKIGZvcm1hdHRlcl9zZXR0aW5nc192ZXJzaW9uPTExCiBvcmcuZWNsaXBzZS5qZHQudWkuamF2YWRvYz1mYWxzZQotb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CitvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cHNcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9hYm91dC5odG1sCmluZGV4IGI2MzgwZDQuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5TZXB0ZW1iZXIgMSwgMjAwNTwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvcG9tLnhtbAppbmRleCAyOTI1NDE2Li4wNGQwOGZhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL0VNRlZNVUlMYXVuY2hlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9FTUZWTVVJTGF1bmNoZXIuamF2YQppbmRleCA2MTcxOTQ5Li4xY2NjY2Q1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL0VNRlZNVUlMYXVuY2hlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvRU1GVk1VSUxhdW5jaGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9kZWJ1Zy9BRFdQRGVidWdnZWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvZGVidWcvQURXUERlYnVnZ2VlLmphdmEKaW5kZXggNGNiNDAwOC4uM2M3MDFhNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9kZWJ1Zy9BRFdQRGVidWdnZWUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL2RlYnVnL0FEV1BEZWJ1Z2dlZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9kZWJ1Zy9Mb2NhbE9iamVjdFJlZmVyZW5jZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9kZWJ1Zy9Mb2NhbE9iamVjdFJlZmVyZW5jZS5qYXZhCmluZGV4IGYzYjgwODEuLjljMzhiMmEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvZGVidWcvTG9jYWxPYmplY3RSZWZlcmVuY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL2RlYnVnL0xvY2FsT2JqZWN0UmVmZXJlbmNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL2RlYnVnL05ldHdvcmtEZWJ1Z2dlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS5sYXVuY2gvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9kZWJ1Zy9OZXR3b3JrRGVidWdnZXIuamF2YQppbmRleCAwMTE2N2NjLi4xMzgzZTlmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLmxhdW5jaC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL2RlYnVnL05ldHdvcmtEZWJ1Z2dlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0ubGF1bmNoL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvZGVidWcvTmV0d29ya0RlYnVnZ2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwpAQCAtMiw0ICsyLDQgQEAKIGZvcm1hdHRlcl9wcm9maWxlPV9BVEwKIGZvcm1hdHRlcl9zZXR0aW5nc192ZXJzaW9uPTExCiBvcmcuZWNsaXBzZS5qZHQudWkuamF2YWRvYz1mYWxzZQotb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CitvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cHNcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vYWJvdXQuaHRtbAppbmRleCA4MWI2NzJkLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDI2LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vcG9tLnhtbAppbmRleCA1YTk5OWMwLi40NjZlMjU1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQVNNLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9BU00uamF2YQppbmRleCAwYzQxOTFhLi5hZWQzNGNiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9BU00uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9BU00uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9BU01PcGVyYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTU9wZXJhdGlvbi5qYXZhCmluZGV4IDk5MzJiYzMuLjU0Njk5NTEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTU9wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTU9wZXJhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNywgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTVhNTFJlYWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQVNNWE1MUmVhZGVyLmphdmEKaW5kZXggZWFlYTU0MC4uNWFlMjY5YSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQVNNWE1MUmVhZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQVNNWE1MUmVhZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9BU01YTUxSZWFkZXJFeGNlcHRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTVhNTFJlYWRlckV4Y2VwdGlvbi5qYXZhCmluZGV4IDIxNTVkMzguLmExMDJhNGEgMTAwNzU1Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTVhNTFJlYWRlckV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0FTTVhNTFJlYWRlckV4Y2VwdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQXRsU3VwZXJpbXBvc2VNb2R1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0F0bFN1cGVyaW1wb3NlTW9kdWxlLmphdmEKaW5kZXggNDk0MGY3NS4uYjgyZDdmMyAxMDA3NTUKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQXRsU3VwZXJpbXBvc2VNb2R1bGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9BdGxTdXBlcmltcG9zZU1vZHVsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRGVubmlzIFdhZ2VsYWFyIChWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0J5dGVjb2RlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9CeXRlY29kZS5qYXZhCmluZGV4IGM4MTFlMTMuLjRiNDViYmUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL0J5dGVjb2RlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vQnl0ZWNvZGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL01lc3NhZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9NZXNzYWdlcy5qYXZhCmluZGV4IGExMDJiZjMuLmIxNDc0ZDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL01lc3NhZ2VzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vTWVzc2FnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gTWVzc2FnZXMgZXh0ZXJuYWxpemF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9TdGFja0ZyYW1lLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9TdGFja0ZyYW1lLmphdmEKaW5kZXggYTBiNmQ2MC4uNmIzMjZmMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vU3RhY2tGcmFtZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL1N0YWNrRnJhbWUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL1ZNRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9WTUV4Y2VwdGlvbi5qYXZhCmluZGV4IDY2MGZkMDguLmMwMWY0ZWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL1ZNRXhjZXB0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vVk1FeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2FkYXB0ZXIvRU1GTW9kZWxBZGFwdGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9hZGFwdGVyL0VNRk1vZGVsQWRhcHRlci5qYXZhCmluZGV4IDcyZjM1MWUuLmM5OTlhZGUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2FkYXB0ZXIvRU1GTW9kZWxBZGFwdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vYWRhcHRlci9FTUZNb2RlbEFkYXB0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKgogICogQ29weXJpZ2h0IChjKSAyMDA4IElOUklBIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2FkYXB0ZXIvSU1vZGVsQWRhcHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vYWRhcHRlci9JTW9kZWxBZGFwdGVyLmphdmEKaW5kZXggNGExZGFlZi4uNWZiYTI1NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vYWRhcHRlci9JTW9kZWxBZGFwdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vYWRhcHRlci9JTW9kZWxBZGFwdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioKICAqIENvcHlyaWdodCAoYykgMjAwOCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vYWRhcHRlci9VTUwyTW9kZWxBZGFwdGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9hZGFwdGVyL1VNTDJNb2RlbEFkYXB0ZXIuamF2YQppbmRleCA3NmI3MWVmLi5iNjBiOWVhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9hZGFwdGVyL1VNTDJNb2RlbEFkYXB0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9hZGFwdGVyL1VNTDJNb2RlbEFkYXB0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvRU1GVk1MYXVuY2hlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL0VNRlZNTGF1bmNoZXIuamF2YQppbmRleCBjODgzYzNhLi43YWQxMDJkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvRU1GVk1MYXVuY2hlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xhdW5jaC9FTUZWTUxhdW5jaGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGF1bmNoL0lUb29sLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvSVRvb2wuamF2YQppbmRleCA2YzA5NzU1Li5hM2ZiNzg0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvSVRvb2wuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9sYXVuY2gvSVRvb2wuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9BU01Nb2R1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9BU01Nb2R1bGUuamF2YQppbmRleCBhNjMwYzIwLi5lODE2Y2M4MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0FTTU1vZHVsZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9BU01Nb2R1bGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9BYnN0cmFjdFN0YWNrRnJhbWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9BYnN0cmFjdFN0YWNrRnJhbWUuamF2YQppbmRleCA5NWI1NDk0Li41Njc1MjQ2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvQWJzdHJhY3RTdGFja0ZyYW1lLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0Fic3RyYWN0U3RhY2tGcmFtZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0JhZy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0JhZy5qYXZhCmluZGV4IDQxZjNiYTUuLjQxZDlmZTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9CYWcuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvQmFnLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGJhZyBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0VudW1MaXRlcmFsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvRW51bUxpdGVyYWwuamF2YQppbmRleCBjOWEyNTBkLi5kNTYwMzRkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvRW51bUxpdGVyYWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvRW51bUxpdGVyYWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9FeGVjRW52LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvRXhlY0Vudi5qYXZhCmluZGV4IDdjOGRlNDguLjIzOWIzMmEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9FeGVjRW52LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0V4ZWNFbnYuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIElOUklBIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvSGFzRmllbGRzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvSGFzRmllbGRzLmphdmEKaW5kZXggMDRhYWMzMC4uM2RlYmMxNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0hhc0ZpZWxkcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9IYXNGaWVsZHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9MaWJFeHRlbnNpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9MaWJFeHRlbnNpb24uamF2YQppbmRleCA2MGU5ZGNmLi5hZDZiZjIwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvTGliRXh0ZW5zaW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL0xpYkV4dGVuc2lvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09jbFBhcmFtZXRyaXplZFR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9PY2xQYXJhbWV0cml6ZWRUeXBlLmphdmEKaW5kZXggOWMzZjcwNi4uMDQ2YjIzNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09jbFBhcmFtZXRyaXplZFR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT2NsUGFyYW1ldHJpemVkVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQSBhbmQgb3RoZXJzLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT2NsU2ltcGxlVHlwZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09jbFNpbXBsZVR5cGUuamF2YQppbmRleCAxZTcyMTUxLi4yZjg2MTU4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT2NsU2ltcGxlVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9PY2xTaW1wbGVUeXBlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBIGFuZCBvdGhlcnMuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9PY2xUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT2NsVHlwZS5qYXZhCmluZGV4IGNmYzlhNGMuLjkwODFlZDUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9PY2xUeXBlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09jbFR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEgYW5kIG90aGVycy4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09jbFVuZGVmaW5lZC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09jbFVuZGVmaW5lZC5qYXZhCmluZGV4IGVjZDY2NTguLjFkM2NhZTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9PY2xVbmRlZmluZWQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT2NsVW5kZWZpbmVkLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvT3BlcmF0aW9uLmphdmEKaW5kZXggNTIxNmZiNy4uNjg2NDY2NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL09wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9PcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9UcmFuc2llbnRMaW5rLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvVHJhbnNpZW50TGluay5qYXZhCmluZGV4IDdhZjBkMTMuLjBjZmZlZTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9UcmFuc2llbnRMaW5rLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL1RyYW5zaWVudExpbmsuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9UcmFuc2llbnRMaW5rU2V0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvVHJhbnNpZW50TGlua1NldC5qYXZhCmluZGV4IDQyYzY2OTQuLjFjYzdhYTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9UcmFuc2llbnRMaW5rU2V0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL1RyYW5zaWVudExpbmtTZXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9UdXBsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL1R1cGxlLmphdmEKaW5kZXggMDk3ZjA1YS4uMjRjY2UxNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL1R1cGxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL1R1cGxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvcGFja2FnZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbGliL3BhY2thZ2UuaHRtbAppbmRleCBmN2YzZjJhLi4xYjAxYjc0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9saWIvcGFja2FnZS5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL2xpYi9wYWNrYWdlLmh0bWwKQEAgLTYsOSArNiw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbWVzc2FnZXMucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2VtZnZtL21lc3NhZ2VzLnByb3BlcnRpZXMKaW5kZXggMTM3ZjNkYy4uMDY5OGQ2OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZW1mdm0vbWVzc2FnZXMucHJvcGVydGllcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9lbWZ2bS9tZXNzYWdlcy5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9hYm91dC5odG1sCmluZGV4IGI2MzgwZDQuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+U2VwdGVtYmVyIDEsIDIwMDU8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9wb20ueG1sCmluZGV4IGUzNjlhZWUuLmQzZDYyMzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9leHRyYWN0b3JzL0V4dHJhY3Rvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvZXh0cmFjdG9ycy9FeHRyYWN0b3IuamF2YQppbmRleCBhOGViMzdjLi5hNmU3N2ZmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9leHRyYWN0b3JzL0V4dHJhY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2V4dHJhY3RvcnMvRXh0cmFjdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9leHRyYWN0b3JzL3htbC9YTUxFeHRyYWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2V4dHJhY3RvcnMveG1sL1hNTEV4dHJhY3Rvci5qYXZhCmluZGV4IGExNjkyYzAuLjU3ZWZjMGQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2V4dHJhY3RvcnMveG1sL1hNTEV4dHJhY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2V4dHJhY3RvcnMveG1sL1hNTEV4dHJhY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvaW5qZWN0b3JzL0luamVjdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9pbmplY3RvcnMvSW5qZWN0b3IuamF2YQppbmRleCA3NjMzZDI4Li4yOWUzYTlkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9pbmplY3RvcnMvSW5qZWN0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9pbmplY3RvcnMvSW5qZWN0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMTQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2luamVjdG9ycy94bWwvUHJvdGVjdGVkSGFuZGxlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvaW5qZWN0b3JzL3htbC9Qcm90ZWN0ZWRIYW5kbGVyLmphdmEKaW5kZXggZjc5NThkMC4uYzc5ODRkNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvaW5qZWN0b3JzL3htbC9Qcm90ZWN0ZWRIYW5kbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvaW5qZWN0b3JzL3htbC9Qcm90ZWN0ZWRIYW5kbGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9pbmplY3RvcnMveG1sL1hNTEluamVjdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9pbmplY3RvcnMveG1sL1hNTEluamVjdG9yLmphdmEKaW5kZXggOThmZjgyYi4uMjBiNWQxOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvaW5qZWN0b3JzL3htbC9YTUxJbmplY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2luamVjdG9ycy94bWwvWE1MSW5qZWN0b3IuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FDVEludGVycHJldGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BQ1RJbnRlcnByZXRlci5qYXZhCmluZGV4IDhjNzg5NjMuLmM3MWQzNDMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FDVEludGVycHJldGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQUNUSW50ZXJwcmV0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FDVEludGVycHJldGVyRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BQ1RJbnRlcnByZXRlckV4Y2VwdGlvbi5qYXZhCmluZGV4IDljZGE0ZjMuLmU2ZDllYjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FDVEludGVycHJldGVyRXhjZXB0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQUNUSW50ZXJwcmV0ZXJFeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNLmphdmEKaW5kZXggMTRlZmE4ZS4uZGZlMmY2ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01FbWl0dGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01FbWl0dGVyLmphdmEKaW5kZXggOGQ2MTY1Yy4uZGFjY2UxMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNRW1pdHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUVtaXR0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUVuZ2luZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNRW5naW5lLmphdmEKaW5kZXggMmYzMGJmNC4uNDdkYzc0MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNRW5naW5lLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNRW5naW5lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01FeGVjRW52LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01FeGVjRW52LmphdmEKaW5kZXggOGZlZTFhOC4uNmJmMmI0ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNRXhlY0Vudi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUV4ZWNFbnYuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUZpZWxkLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01GaWVsZC5qYXZhCmluZGV4IGYwZjBmZTEuLmFkYjNkNDQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUZpZWxkLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNRmllbGQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUluc3RydWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01JbnN0cnVjdGlvbi5qYXZhCmluZGV4IDVkYTZjZTYuLjZiMjkwN2IgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUluc3RydWN0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNSW5zdHJ1Y3Rpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUluc3RydWN0aW9uV2l0aE9wZXJhbmQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUluc3RydWN0aW9uV2l0aE9wZXJhbmQuamF2YQppbmRleCBiODNmMWFmLi40NDExNjNkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01JbnN0cnVjdGlvbldpdGhPcGVyYW5kLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNSW5zdHJ1Y3Rpb25XaXRoT3BlcmFuZC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNSW50ZXJwcmV0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUludGVycHJldGVyLmphdmEKaW5kZXggNDM1OTI1Ni4uYWY2MGI0YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNSW50ZXJwcmV0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01JbnRlcnByZXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNSW50ZXJwcmV0ZXJFeGNlcHRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTUludGVycHJldGVyRXhjZXB0aW9uLmphdmEKaW5kZXggZTYwYjdhOS4uOWU5Zjg3ZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNSW50ZXJwcmV0ZXJFeGNlcHRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01JbnRlcnByZXRlckV4Y2VwdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01PcGVyYXRpb24uamF2YQppbmRleCAyZGE5MjdlLi4xNjU0ZDFmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01PcGVyYXRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01PcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVBhcmFtZXRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNUGFyYW1ldGVyLmphdmEKaW5kZXggOTlmNDU3Yi4uM2VmNGM2MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNUGFyYW1ldGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNUGFyYW1ldGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01Qcm9qZWN0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVByb2plY3Rvci5qYXZhCmluZGV4IDBmYWI2ZTcuLmY2YjA4NDQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVByb2plY3Rvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVByb2plY3Rvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNUmVhZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01SZWFkZXIuamF2YQppbmRleCBiMTA0YzliLi4wNjJkNDViIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01SZWFkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01SZWFkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVN0YWNrRnJhbWUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVN0YWNrRnJhbWUuamF2YQppbmRleCAzMWVlNzcxLi4zMjkyMWZjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01TdGFja0ZyYW1lLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNU3RhY2tGcmFtZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNVGV4dHVhbFdyaXRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNVGV4dHVhbFdyaXRlci5qYXZhCmluZGV4IDI3NjJlZmEuLmI2MWY2ZmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVRleHR1YWxXcml0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01UZXh0dWFsV3JpdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01Xcml0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVdyaXRlci5qYXZhCmluZGV4IDFiNDQyZGQuLjI2NjQ4OTMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVdyaXRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVdyaXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNWE1MUmVhZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01YTUxSZWFkZXIuamF2YQppbmRleCBkZjEyOTU4Li44NDllZWRjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01YTUxSZWFkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01YTUxSZWFkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVhNTFJlYWRlckV4Y2VwdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNWE1MUmVhZGVyRXhjZXB0aW9uLmphdmEKaW5kZXggNzlmZjM3NS4uYWIxNWJjNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNWE1MUmVhZGVyRXhjZXB0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVNNWE1MUmVhZGVyRXhjZXB0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BU01YTUxXcml0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVhNTFdyaXRlci5qYXZhCmluZGV4IGM2NTlhNDcuLmFmMzk4Y2IgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVhNTFdyaXRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FTTVhNTFdyaXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVRMVk1QbHVnaW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FUTFZNUGx1Z2luLmphdmEKaW5kZXggMzExZWNjNy4uYjY3MTA1ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVRMVk1QbHVnaW4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BVExWTVBsdWdpbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVRMVk1Ub29scy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQVRMVk1Ub29scy5qYXZhCmluZGV4IDg2ZTM3MTQuLjQ3NjQwNjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0FUTFZNVG9vbHMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BVExWTVRvb2xzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA2IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0F0bExhdW5jaGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BdGxMYXVuY2hlci5qYXZhCmluZGV4IGM2ZGVhNjMuLmJjY2E3ZjEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0F0bExhdW5jaGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQXRsTGF1bmNoZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQXRsTW9kZWxIYW5kbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BdGxNb2RlbEhhbmRsZXIuamF2YQppbmRleCA2Y2QzODJmLi4xMGY0NGVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BdGxNb2RlbEhhbmRsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BdGxNb2RlbEhhbmRsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0F0bFN1cGVyaW1wb3NlTW9kdWxlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BdGxTdXBlcmltcG9zZU1vZHVsZS5qYXZhCmluZGV4IGE2MTQyYzcuLmJmNTMyODcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0F0bFN1cGVyaW1wb3NlTW9kdWxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQXRsU3VwZXJpbXBvc2VNb2R1bGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQtMjAwOCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRGVubmlzIFdhZ2VsYWFyIChWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0F0bFZNTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0F0bFZNTWVzc2FnZXMuamF2YQppbmRleCBkNGM1MGU3Li42MmU1ZDI5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9BdGxWTU1lc3NhZ2VzLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQXRsVk1NZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBNZXNzYWdlcyBleHRlcm5hbGl6YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0NsYXNzTmF0aXZlT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9DbGFzc05hdGl2ZU9wZXJhdGlvbi5qYXZhCmluZGV4IDliN2IyZDkuLmEwYzQwYWYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0NsYXNzTmF0aXZlT3BlcmF0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vQ2xhc3NOYXRpdmVPcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0RlYnVnZ2VyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9EZWJ1Z2dlci5qYXZhCmluZGV4IGExMDZjMTUuLjczZGFiZDggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0RlYnVnZ2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vRGVidWdnZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0R1bW15RGVidWdnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0R1bW15RGVidWdnZXIuamF2YQppbmRleCA2ZjFlMmM0Li4xZGNhZGVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9EdW1teURlYnVnZ2VyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vRHVtbXlEZWJ1Z2dlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vRXhlY0Vudi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vRXhlY0Vudi5qYXZhCmluZGV4IDhjY2MwM2IuLjY3ZmFjMzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0V4ZWNFbnYuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9FeGVjRW52LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9JbnN0YW5jZU5hdGl2ZU9wZXJhdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vSW5zdGFuY2VOYXRpdmVPcGVyYXRpb24uamF2YQppbmRleCAyZjYzYjFlLi44Zjg1MDA5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9JbnN0YW5jZU5hdGl2ZU9wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL0luc3RhbmNlTmF0aXZlT3BlcmF0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9Nb2RlbExvYWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vTW9kZWxMb2FkZXIuamF2YQppbmRleCAzOGVlNDMyLi4zOWU3N2M4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9Nb2RlbExvYWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL01vZGVsTG9hZGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9OYXRpdmVPcGVyYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL05hdGl2ZU9wZXJhdGlvbi5qYXZhCmluZGV4IDEwZDUyMjAuLjA1YmEyZTMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL05hdGl2ZU9wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL05hdGl2ZU9wZXJhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vTmF0aXZlU3RhY2tGcmFtZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vTmF0aXZlU3RhY2tGcmFtZS5qYXZhCmluZGV4IGIyNzkzYzQuLjA0YjIxNWUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL05hdGl2ZVN0YWNrRnJhbWUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9OYXRpdmVTdGFja0ZyYW1lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9PcGVyYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL09wZXJhdGlvbi5qYXZhCmluZGV4IDdjMmIzZDEuLmQ2MDU1YWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL09wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL09wZXJhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vUGx1Z2luQ2xhc3NMb2FkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL1BsdWdpbkNsYXNzTG9hZGVyLmphdmEKaW5kZXggMzNlYzQzMi4uZWNlYzc0NiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vUGx1Z2luQ2xhc3NMb2FkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9QbHVnaW5DbGFzc0xvYWRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vU2ltcGxlRGVidWdnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL1NpbXBsZURlYnVnZ2VyLmphdmEKaW5kZXggYmM5YjBkNS4uZmQ3YmI5YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vU2ltcGxlRGVidWdnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9TaW1wbGVEZWJ1Z2dlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vU3RhY2tGcmFtZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vU3RhY2tGcmFtZS5qYXZhCmluZGV4IDEzMTBjMjQuLmFlZjliOWEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL1N0YWNrRnJhbWUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9TdGFja0ZyYW1lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9WTUV4Y2VwdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vVk1FeGNlcHRpb24uamF2YQppbmRleCAxNzA5YTdjLi4yNTUxMWNiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9WTUV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL1ZNRXhjZXB0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbWVzc2FnZXMucHJvcGVydGllcwppbmRleCBlN2Y1ZTMzLi5jMTgxNWE2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9tZXNzYWdlcy5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQU1OLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQU1OLmphdmEKaW5kZXggNTAzMWRhOS4uZmZiM2NjZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FNTi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BTU4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01CYWcuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01CYWcuamF2YQppbmRleCA0MWVkMmE2Li44OWE3NjIxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNQmFnLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUJhZy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUJvb2xlYW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Cb29sZWFuLmphdmEKaW5kZXggM2EzYTNjNi4uOTZiYzdiMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUJvb2xlYW4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNQm9vbGVhbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUNvbGxlY3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Db2xsZWN0aW9uLmphdmEKaW5kZXggYzc2ZmYxZC4uOWU1NGY4NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUNvbGxlY3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNQ29sbGVjdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUVudW1MaXRlcmFsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNRW51bUxpdGVyYWwuamF2YQppbmRleCBiMzI3ZTJhLi43NDc2NTI3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNRW51bUxpdGVyYWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNRW51bUxpdGVyYWwuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01IYXNoTW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01IYXNoTW9kZWwuamF2YQppbmRleCBmYjMzNGQyLi5lOTRiMDYyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNSGFzaE1vZGVsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUhhc2hNb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUhhc2hNb2RlbEVsZW1lbnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01IYXNoTW9kZWxFbGVtZW50LmphdmEKaW5kZXggNTZjOGQ0OS4uOTE4ZGJiNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUhhc2hNb2RlbEVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNSGFzaE1vZGVsRWxlbWVudC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUludGVnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01JbnRlZ2VyLmphdmEKaW5kZXggZDczNDFlMy4uOTZiYzZkZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTUludGVnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNSW50ZWdlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU1hcC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU1hcC5qYXZhCmluZGV4IDNjMTQwNWYuLjdiMmY1YjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01NYXAuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTWFwLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2RlbC5qYXZhCmluZGV4IGFiZWY5YjMuLmVjYmRkYWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2RlbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU1vZGVsRWxlbWVudC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU1vZGVsRWxlbWVudC5qYXZhCmluZGV4IDMyNWY0NjIuLjU0Yjg4YmQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2RlbEVsZW1lbnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTW9kZWxFbGVtZW50LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTW9kZWxOYXZpZ2F0aW9uRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTW9kZWxOYXZpZ2F0aW9uRXhjZXB0aW9uLmphdmEKaW5kZXggYzQ2ZTQxYi4uNDg2NDM0YSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU1vZGVsTmF2aWdhdGlvbkV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2RlbE5hdmlnYXRpb25FeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2R1bGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01Nb2R1bGUuamF2YQppbmRleCBjYzhhODhmLi45ZTNlNDA3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTW9kdWxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU1vZHVsZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU5hdGl2ZU9iamVjdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU5hdGl2ZU9iamVjdC5qYXZhCmluZGV4IDczOTcwY2EuLjg0YTAwYzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01OYXRpdmVPYmplY3QuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTmF0aXZlT2JqZWN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTnVtYmVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNTnVtYmVyLmphdmEKaW5kZXggNDViZmQyNS4uMTRlOGQwMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU51bWJlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01OdW1iZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PY2xBbnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PY2xBbnkuamF2YQppbmRleCBlNmUyZTEwLi5lYzQ1OTljIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT2NsQW55LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbEFueS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFBhcmFtZXRyaXplZFR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PY2xQYXJhbWV0cml6ZWRUeXBlLmphdmEKaW5kZXggY2QxMDVjMi4uM2NmOGI2YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFBhcmFtZXRyaXplZFR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT2NsUGFyYW1ldHJpemVkVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFNpbXBsZVR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PY2xTaW1wbGVUeXBlLmphdmEKaW5kZXggODNlNWU5Ny4uM2NhZDA4NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFNpbXBsZVR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT2NsU2ltcGxlVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFR5cGUuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PY2xUeXBlLmphdmEKaW5kZXggYjgyYmMwNi4uOWIyYThkZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFR5cGUuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT2NsVHlwZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFVuZGVmaW5lZC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9jbFVuZGVmaW5lZC5qYXZhCmluZGV4IDZjYjFhZWEuLmI2MmQ2MzAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PY2xVbmRlZmluZWQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT2NsVW5kZWZpbmVkLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT3JkZXJlZFNldC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTU9yZGVyZWRTZXQuamF2YQppbmRleCA4ZTU0NTljLi4xZmQ5OWY3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNT3JkZXJlZFNldC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01PcmRlcmVkU2V0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNUmVhbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVJlYWwuamF2YQppbmRleCBiNWQxNTcyLi5lZjUyYWY5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNUmVhbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01SZWFsLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNU2VxdWVuY2UuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01TZXF1ZW5jZS5qYXZhCmluZGV4IDg0ZDU0MmEuLjczZjhjMjUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01TZXF1ZW5jZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01TZXF1ZW5jZS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVNldC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVNldC5qYXZhCmluZGV4IDQ2MDFhMzQuLmM0ZWY5MTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01TZXQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNU2V0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNU3RyaW5nLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNU3RyaW5nLmphdmEKaW5kZXggMWJiZGI1NC4uYmFkYWY2MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVN0cmluZy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01TdHJpbmcuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01UcmFuc2llbnRMaW5rLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNVHJhbnNpZW50TGluay5qYXZhCmluZGV4IDkwZWY2MjUuLjljOWNjNTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01UcmFuc2llbnRMaW5rLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVRyYW5zaWVudExpbmsuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01UcmFuc2llbnRMaW5rU2V0LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNVHJhbnNpZW50TGlua1NldC5qYXZhCmluZGV4IDIxMDY3MGQuLjU5NmQzM2YgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01UcmFuc2llbnRMaW5rU2V0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVRyYW5zaWVudExpbmtTZXQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01UdXBsZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVR1cGxlLmphdmEKaW5kZXggNzk4N2NlZS4uOTYxOTQwZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVR1cGxlLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVR1cGxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNVHVwbGVUeXBlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvQVNNVHVwbGVUeXBlLmphdmEKaW5kZXggNGI0ZWE0ZC4uYWQ0NWM2MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL0FTTVR1cGxlVHlwZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9BU01UdXBsZVR5cGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9TT1RTRXhwcmVzc2lvbjIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9TT1RTRXhwcmVzc2lvbjIuamF2YQppbmRleCBhMDhlNDAwLi5iMThkNjc1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvU09UU0V4cHJlc3Npb24yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL1NPVFNFeHByZXNzaW9uMi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL3BhY2thZ2UuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL25hdGl2ZWxpYi9wYWNrYWdlLmh0bWwKaW5kZXggNjhlNGVjZS4uZWM4MjEwNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vbmF0aXZlbGliL3BhY2thZ2UuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9uYXRpdmVsaWIvcGFja2FnZS5odG1sCkBAIC02LDkgKzYsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL3BhY2thZ2UuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3ZtL3BhY2thZ2UuaHRtbAppbmRleCA2NjcyMTQ3Li44N2E3MmUzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS92bS9wYWNrYWdlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvdm0vcGFja2FnZS5odG1sCkBAIC02LDkgKzYsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvYWJvdXQuaHRtbAppbmRleCA5ZDllNWE2Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDUsIDIwMDQ8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9wb20ueG1sCmluZGV4IGI0OTBjZTIuLjIwZWExZDIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9NYXJrZXJNYWtlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvTWFya2VyTWFrZXIuamF2YQppbmRleCA5MDlmNTBkLi45YWNjMWM2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9NYXJrZXJNYWtlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL01hcmtlck1ha2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgVGFyaWsgSWRyaXNzaSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9NZXNzYWdlcy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvTWVzc2FnZXMuamF2YQppbmRleCA0NDg2YTM4Li40ZDE4MzFmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL01lc3NhZ2VzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIE1lc3NhZ2VzIGV4dGVybmFsaXphdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvUHJvYmxlbUNvbnZlcnRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvUHJvYmxlbUNvbnZlcnRlci5qYXZhCmluZGV4IDdhNzVjZjcuLmUwZGY4MTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL1Byb2JsZW1Db252ZXJ0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9Qcm9ibGVtQ29udmVydGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA2IElOUklBIGFuZCBvdGhlci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIE1hdHRoaWFzIEJvaGxlbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTS5qYXZhCmluZGV4IDg3ZDk1NTUuLmU0YWIzODggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU00uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRW1pdHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUVtaXR0ZXIuamF2YQppbmRleCBhNzkzNzU2Li5lYTJmNzJkIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRW1pdHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01FbWl0dGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRW1pdHRlckV4Y2VwdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUVtaXR0ZXJFeGNlcHRpb24uamF2YQppbmRleCBhZjk5ZTMzLi45MDBiNmViIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRW1pdHRlckV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01FbWl0dGVyRXhjZXB0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUZpZWxkLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRmllbGQuamF2YQppbmRleCAzYWEwNGQzLi5hN2EyM2FhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRmllbGQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNRmllbGQuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01JbnN0cnVjdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUluc3RydWN0aW9uLmphdmEKaW5kZXggODE5NzIxZS4uZmZkODgwYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUluc3RydWN0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUluc3RydWN0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNSW5zdHJ1Y3Rpb25XaXRoT3BlcmFuZC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTUluc3RydWN0aW9uV2l0aE9wZXJhbmQuamF2YQppbmRleCAwYzZkMDZhLi40ZWQ0YmY4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNSW5zdHJ1Y3Rpb25XaXRoT3BlcmFuZC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01JbnN0cnVjdGlvbldpdGhPcGVyYW5kLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNT3BlcmF0aW9uLmphdmEKaW5kZXggZjQyYzM4ZS4uMjFjYmQzZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTU9wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01PcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01QYXJhbWV0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01QYXJhbWV0ZXIuamF2YQppbmRleCBmNDMyNTU3Li41ODIyNGQzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNUGFyYW1ldGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTVBhcmFtZXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTVRleHR1YWxXcml0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01UZXh0dWFsV3JpdGVyLmphdmEKaW5kZXggZjQ0N2RjNS4uODg4NGQwZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTVRleHR1YWxXcml0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNVGV4dHVhbFdyaXRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNCBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogCSAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTVdyaXRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTVdyaXRlci5qYXZhCmluZGV4IDRmMGYzYjIuLmU1ZDY0YjYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01Xcml0ZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNV3JpdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAJICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNWE1MV3JpdGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vQVNNWE1MV3JpdGVyLmphdmEKaW5kZXggYTJjOTM1My4uMDUzMjVhOSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL0FTTVhNTFdyaXRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9BU01YTUxXcml0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9saWIvU09UU0V4cHJlc3Npb24yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9hc20vbGliL1NPVFNFeHByZXNzaW9uMi5qYXZhCmluZGV4IDZlNThkMzMuLmRkODg2MmMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2FzbS9saWIvU09UU0V4cHJlc3Npb24yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvYXNtL2xpYi9TT1RTRXhwcmVzc2lvbjIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqIAkgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL0F0bDIwMDRDb21waWxlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsMjAwNENvbXBpbGVyLmphdmEKaW5kZXggYmY1Y2I3NS4uOTYwNmIzOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsMjAwNENvbXBpbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsMjAwNENvbXBpbGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA2IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL0F0bENvbXBpbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9BdGxDb21waWxlci5qYXZhCmluZGV4IDJiYzgzOTYuLjEzNWUyNzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL0F0bENvbXBpbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsQ29tcGlsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMTQgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsRGVmYXVsdENvbXBpbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9BdGxEZWZhdWx0Q29tcGlsZXIuamF2YQppbmRleCBlYTAzOWU3Li5mMmM4ZDVlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9BdGxEZWZhdWx0Q29tcGlsZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9BdGxEZWZhdWx0Q29tcGlsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQsIDIwMTQgSU5SSUEgYW5kIG90aGVyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZXJpYyBKb3VhdWx0IChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL0F0bFN0YW5kYWxvbmVDb21waWxlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsU3RhbmRhbG9uZUNvbXBpbGVyLmphdmEKaW5kZXggODU5MzZkNC4uMTQ5ZjRhYSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsU3RhbmRhbG9uZUNvbXBpbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQXRsU3RhbmRhbG9uZUNvbXBpbGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA0LCAyMDE0IElOUklBIGFuZCBvdGhlci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIE1hdHRoaWFzIEJvaGxlbiAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQ29tcGlsZVRpbWVFcnJvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQ29tcGlsZVRpbWVFcnJvci5qYXZhCmluZGV4IDdhZmMzYjkuLjBiNDJiMTUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL0NvbXBpbGVUaW1lRXJyb3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9Db21waWxlVGltZUVycm9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA2IElOUklBIGFuZCBvdGhlci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgTWF0dGhpYXMgQm9obGVuIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9Db21waWxlck5vdEZvdW5kRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9Db21waWxlck5vdEZvdW5kRXhjZXB0aW9uLmphdmEKaW5kZXggNzIwMmU5ZC4uZGZlN2Y2OSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvQ29tcGlsZXJOb3RGb3VuZEV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL0NvbXBpbGVyTm90Rm91bmRFeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIG90aGVyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBNYXR0aGlhcyBCb2hsZW4gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL2F0bDIwMDYvQXRsMjAwNkNvbXBpbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9hdGwyMDA2L0F0bDIwMDZDb21waWxlci5qYXZhCmluZGV4IGQ4ZGNlNGYuLmFjNDY5NDQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL2F0bDIwMDYvQXRsMjAwNkNvbXBpbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvYXRsMjAwNi9BdGwyMDA2Q29tcGlsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDQgSU5SSUEgYW5kIG90aGVyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBJTlJJQSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvYXRsMjAxMC9BdGwyMDEwSW5QbGFjZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvY29tcGlsZXIvYXRsMjAxMC9BdGwyMDEwSW5QbGFjZS5qYXZhCmluZGV4IDM1NmZlNzEuLmZiZTg2NzQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL2NvbXBpbGVyL2F0bDIwMTAvQXRsMjAxMEluUGxhY2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9jb21waWxlci9hdGwyMDEwL0F0bDIwMTBJblBsYWNlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEwIElOUklBIGFuZCBvdGhlci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgSU5SSUEgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL21lc3NhZ2VzLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9tZXNzYWdlcy5wcm9wZXJ0aWVzCmluZGV4IDg0N2FiM2YuLjdhY2Q4NzMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL21lc3NhZ2VzLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvbWVzc2FnZXMucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL29jbC9PY2xFdmFsdWF0b3IuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL29jbC9PY2xFdmFsdWF0b3IuamF2YQppbmRleCA2YmY3Yzg1Li42NTM2NzYwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9vY2wvT2NsRXZhbHVhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvb2NsL09jbEV2YWx1YXRvci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNiBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGVyaWMgSm91YXVsdCAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9vY2wvT2NsSGVscGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9vY2wvT2NsSGVscGVyLmphdmEKaW5kZXggYjUwOWIxNi4uNjRhMzdlNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvb2NsL09jbEhlbHBlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL29jbC9PY2xIZWxwZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDYgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvb2NsL09jbFF1ZXJ5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9vY2wvT2NsUXVlcnkuamF2YQppbmRleCAzYTA2MWVmLi5mYmQ5ZTM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9vY2wvT2NsUXVlcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9vY2wvT2NsUXVlcnkuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDYgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRlcmljIEpvdWF1bHQgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvcGFja2FnZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvcGFja2FnZS5odG1sCmluZGV4IGY3ZDU5OTcuLjk4MmNjZjQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3BhY2thZ2UuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9wYWNrYWdlLmh0bWwKQEAgLTYsOSArNiw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvcGFyc2VyL0F0bFBhcnNlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvcGFyc2VyL0F0bFBhcnNlci5qYXZhCmluZGV4IDA4MjdiOTAuLjIzZTk4Y2UgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3BhcnNlci9BdGxQYXJzZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9wYXJzZXIvQXRsUGFyc2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvcGFyc2VyL0F0bFNvdXJjZU1hbmFnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW5naW5lL3BhcnNlci9BdGxTb3VyY2VNYW5hZ2VyLmphdmEKaW5kZXggOTk4MzllNS4uNDFjZGE0ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbmdpbmUvcGFyc2VyL0F0bFNvdXJjZU1hbmFnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VuZ2luZS9wYXJzZXIvQXRsU291cmNlTWFuYWdlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9hYm91dC5odG1sCmluZGV4IDJiOWJjZmIuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5NYXkgMzAsIDIwMDc8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvY29weXJpZ2h0LnR4dCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2NvcHlyaWdodC50eHQKaW5kZXggYzFjMjc3Yi4uZTIyNzhlOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvY29weXJpZ2h0LnR4dAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9jb3B5cmlnaHQudHh0CkBAIC0xLDUgKzEsNSBAQAogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQy1TLgogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2h0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvZXBsLXYxMC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvZXBsLXYxMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTU3ZjNlLi4wMDAwMDAwCi0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2VwbC12MTAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Ci08IS0tIHNhdmVkIGZyb20gdXJsPSgwMDQxKWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIC0tPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotCi08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gIGJvZHkgewotICAgIHNpemU6IDguNWluIDExLjBpbjsKLSAgICBtYXJnaW46IDAuMjVpbiAwLjVpbiAwLjI1aW4gMC41aW47Ci0gICAgdGFiLWludGVydmFsOiAwLjVpbjsKLSAgICB9Ci0gIHAgeyAgCQotICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwotICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKLSAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKLSAgICB9Ci0gIHAubGlzdCB7Ci0gIAltYXJnaW4tbGVmdDogMC41aW47Ci0gICAgbWFyZ2luLXRvcDogIDAuMDVlbTsKLSAgICBtYXJnaW4tYm90dG9tOiAwLjA1ZW07Ci0gICAgfQotICA8L3N0eWxlPgotCi08c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PC9oZWFkPgotCi08Ym9keSBsYW5nPSJFTi1VUyI+Ci0KLTxoMj5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAxLjA8L2gyPgotCi08cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQotUFVCTElDIExJQ0VOU0UgKCJBR1JFRU1FTlQiKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTCi1BR1JFRU1FTlQuPC9wPgotCi08cD48Yj4xLiBERUZJTklUSU9OUzwvYj48L3A+Ci0KLTxwPiJDb250cmlidXRpb24iIG1lYW5zOjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbAotY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBkaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPC9wPgotPHAgY2xhc3M9Imxpc3QiPmIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3A+Ci08cCBjbGFzcz0ibGlzdCI+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9wPgotPHAgY2xhc3M9Imxpc3QiPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9wPgotPHAgY2xhc3M9Imxpc3QiPndoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtCi1vcmlnaW5hdGUgZnJvbSBhbmQgYXJlIGRpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQQotQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZQotUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2gKLUNvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGFkZGl0aW9ucyB0byB0aGUKLVByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCBpbgotY29uanVuY3Rpb24gd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIGFuZCAoaWkpCi1hcmUgbm90IGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFByb2dyYW0uPC9wPgotCi08cD4iQ29udHJpYnV0b3IiIG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMKLXRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IkxpY2Vuc2VkIFBhdGVudHMiIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEKLUNvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cwotQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJQcm9ncmFtIiBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBkaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlCi13aXRoIHRoaXMgQWdyZWVtZW50LjwvcD4KLQotPHA+IlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlcgotdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLjwvcD4KLQotPHA+PGI+Mi4gR1JBTlQgT0YgUklHSFRTPC9iPjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoCi1Db250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKLXJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3Jrcwotb2YsIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIGRpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlCi1Db250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBkZXJpdmF0aXZlIHdvcmtzLCBpbgotc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2gKLUNvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLAotcm95YWx0eS1mcmVlIHBhdGVudCBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLAotb2ZmZXIgdG8gc2VsbCwgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi1Db250cmlidXRvciwgaWYgYW55LCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQKLWxpY2Vuc2Ugc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZQotUHJvZ3JhbSBpZiwgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsCi1zdWNoIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAotYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55IG90aGVyCi1jb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIgc2UgaXMKLWxpY2Vuc2VkIGhlcmV1bmRlci48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yCi1ncmFudHMgdGhlIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMKLWFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLXBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2gKLUNvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zIGJyb3VnaHQgYnkKLWFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMKLW9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZCBsaWNlbnNlcwotZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkgdG8KLXNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yCi1leGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudAotdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZQotdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdAotaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50Ci10aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LjwvcD4KLQotPHA+PGI+My4gUkVRVUlSRU1FTlRTPC9iPjwvcD4KLQotPHA+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaW4gb2JqZWN0IGNvZGUKLWZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzCi1BZ3JlZW1lbnQ7IGFuZDwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIGl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMKLWFsbCB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcwotb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcyBvcgotY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOzwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycwotYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi1pbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOzwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmlpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcwotQWdyZWVtZW50IGFyZSBvZmZlcmVkIGJ5IHRoYXQgQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIKLXBhcnR5OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5pdikgc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZQotZnJvbSBzdWNoIENvbnRyaWJ1dG9yLCBhbmQgaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhCi1yZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlCi1leGNoYW5nZS48L3A+Ci0KLTxwPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlIGNvZGUgZm9ybTo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2gKLWNvcHkgb2YgdGhlIFByb2dyYW0uPC9wPgotCi08cD5Db250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZAotd2l0aGluIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+RWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUgb3JpZ2luYXRvciBvZiBpdHMKLUNvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzIHN1YnNlcXVlbnQKLVJlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi48L3A+Ci0KLTxwPjxiPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9iPjwvcD4KLQotPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluCi1yZXNwb25zaWJpbGl0aWVzIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUKLWxpa2UuIFdoaWxlIHRoaXMgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZgotdGhlIFByb2dyYW0sIHRoZSBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCi1wcm9kdWN0IG9mZmVyaW5nIHNob3VsZCBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUKLXBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yCi1pbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvcgotKCJDb21tZXJjaWFsIENvbnRyaWJ1dG9yIikgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kCi1pbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IgKCJJbmRlbW5pZmllZCBDb250cmlidXRvciIpCi1hZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzIChjb2xsZWN0aXZlbHkgIkxvc3NlcyIpCi1hcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucyBicm91Z2h0IGJ5IGEgdGhpcmQKLXBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQgY2F1c2VkIGJ5IHRoZQotYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24gd2l0aCBpdHMKLWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4gVGhlCi1vYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4KLW9yZGVyIHRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeQotdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlCi1JbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93bgotZXhwZW5zZS48L3A+Ci0KLTxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCi1wcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UKLWNsYWltcyBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkKLWFsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8KLWRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UKLXBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyCi1Db250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCi1tdXN0IHBheSB0aG9zZSBkYW1hZ2VzLjwvcD4KLQotPHA+PGI+NS4gTk8gV0FSUkFOVFk8L2I+PC9wPgotCi08cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMKLVBST1ZJREVEIE9OIEFOICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TCi1PRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwKLUFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWQotT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKLWV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLXRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsCi1kYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgotaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuPC9wPgotCi08cD48Yj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvYj48L3A+Ci0KLTxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVAotTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLUlOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcKLVdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgotTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKLU5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IKLURJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVECi1IRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLjwvcD4KLQotPHA+PGI+Ny4gR0VORVJBTDwvYj48L3A+Ci0KLTxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi1hcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YKLXRoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbgotYnkgdGhlIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bQotZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS48L3A+Ci0KLTxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eQotKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlCi1Qcm9ncmFtIGl0c2VsZiAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyCi1zb2Z0d2FyZSBvciBoYXJkd2FyZSkgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2gKLVJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlCi1kYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC48L3A+Ci0KLTxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0Ci1mYWlscyB0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcwotQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUKLWFmdGVyIGJlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cwotdW5kZXIgdGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQKLWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsCi1SZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkKLVJlY2lwaWVudCByZWxhdGluZyB0byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS48L3A+Ci0KLTxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzCi1BZ3JlZW1lbnQsIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMKLWNvcHlyaWdodGVkIGFuZCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlCi1BZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZwotcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlCi1BZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UKLUZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50IFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5Ci1hc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhCi1zdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlCi1naXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbSAoaW5jbHVkaW5nCi1Db250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlCi1BZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbgotb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZQotUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcwotZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8KLXJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlcgotdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3IKLW90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcwotQWdyZWVtZW50IGFyZSByZXNlcnZlZC48L3A+Ci0KLTxwPlRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yayBhbmQKLXRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLiBObyBwYXJ0eQotdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzIEFncmVlbWVudCBtb3JlCi10aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzIGl0cwotcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uPC9wPgotCi0KLQotPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9lcGwtdjIwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2VwbC12MjAuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1OClodHRwczovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC0yLjAvRVBMLTIuMC5odG1sIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgICAKKyAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOworICAgICAgfQorICAgICAgaDF7CisgICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKKyAgICAgIH0KKyAgICAgIGgyeworICAgICAgICBmb250LXNpemU6MWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOworICAgICAgICBtYXJnaW4tdG9wOjFlbTsKKyAgICAgIH0KKyAgICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOworICAgICAgfQorICAgICAgdWwsIG9seworICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPGRpdiBpZD0iZWlkLWNocm9tZS1leHRlbnNpb24taXMtaW5zdGFsbGVkIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwppbmRleCAyZTVmMWU3Li45MjMwZjNmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCkBAIC0zLDkgKzMsOSBAQAogIyAgKgogIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSUJNIENvcnBvcmF0aW9uIGFuZCBvdGhlcnMuCiAjICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuICAgVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjICAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjICAqIAogIyAgKiBDb250cmlidXRvcnM6IAogIyAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpAQCAtMzcsOSArMzcsOSBAQAogY29weXJpZ2h0VVJMPWNvcHlyaWdodC50eHQKIGNvcHlyaWdodD1Db3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDLVMuXG5cCiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXG5cCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxuXAogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogCiAjICJ1cGRhdGVTaXRlTmFtZSIgcHJvcGVydHkgLSBsYWJlbCBmb3IgdGhlIHVwZGF0ZSBzaXRlCiBNb2RlbGluZ1VwZGF0ZVNpdGVOYW1lPUVjbGlwc2UgTW9kZWxpbmcKQEAgLTUyLDEyNiArNTIsMTQzIEBACiAjIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKIGxpY2Vuc2U9XAogRWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50XG5cCi1BcHJpbCA5LCAyMDE0XG5cCitcblwKK05vdmVtYmVyIDIyLCAyMDE3XG5cCiBcblwKIFVzYWdlIE9mIENvbnRlbnRcblwKIFxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1VcblwKLUFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlRcblwKLUFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTXG5cCi1PUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlNcblwKLU9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCi1CRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT05cblwKK0FORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gVVNFIE9GXG5cCitUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKK0JFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORURcblwKK0JZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRVxuXAorQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTllcblwKK0FQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VXG5cCitNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKIFxuXAogQXBwbGljYWJsZSBMaWNlbnNlc1xuXAogXG5cCi1Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlXG5cCi1FY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZlxuXAotdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKLXByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC5cblwKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAorVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb25cblwKK2lzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2VcblwKK1ZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvXG5cCithdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCxcblwKKyJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCiBcblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCi1hcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKK0NvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uXG5cCithbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnlcblwKKygiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzXG5cCitkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKIFxuXAotXHQtIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsXG5cCi1cdCAgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLFxuXAotXHQgIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCi1cdC0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhKFRNKSBBUmNoaXZlKVxuXAotXHQgIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKLVx0LSBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC5cblwKLVx0ICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLlxuXAotXHQgIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvblxuXAotXHQgIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKLVx0LSBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXNcblwKLVx0ICBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKKy0gICBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZVxuXAorICAgIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gVHlwaWNhbCBtb2R1bGVzIG1heVxuXAorICAgIGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmRcblwKKyAgICBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCistICAgRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSXG5cCisgICAgKEphdmFcdTIxMjIgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAorLSAgIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZFxuXAorICAgIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGFcblwKKyAgICBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXlcblwKKyAgICBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yXG5cCisgICAgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCistICAgRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhXG5cCisgICAgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZFxuXAorICAgIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKIFxuXAotVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZVxuXAotY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQgSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZFxuXAotaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQgRmVhdHVyZVxuXAotTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZVxuXAotaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6XG5cCitUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpblxuXAorZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXNcblwKK2FuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiXG5cCisoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueVxuXAorZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmdcblwKK2xvY2F0aW9uczpcblwKIFxuXAotXHQtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotXHQtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi1cdC0gSW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSc1xuXAotXHQtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLVx0LSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAorLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKIFxuXAotTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZVxuXAotUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFxuXAotVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWluc1xuXAotSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKLXdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtXG5cCi15b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluXG5cCi10aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuXG5cCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlXG5cCi10ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0XG5cCi1nb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZ1xuXAordGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlXG5cCisoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZVxuXAorY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKK3dpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdVxuXAord2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSJcblwKK3Byb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2hcblwKK0Fib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZlxuXAordGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKIFxuXAotVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUExcblwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRVxuXAorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKIFxuXAotXHQtIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCi1cdC0gQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAotXHQtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCistICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwpXG5cCistICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAorLSAgIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gICBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCiBcblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZVxuXAotaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnNcblwKLWdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE9cblwKK1VTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpc1xuXAorcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKIFxuXAotXG5cVXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKIFxuXAotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLFxuXAotYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3JcblwKLXRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vclxuXAotb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoXG5cCi10aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy5cblwKLUluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXRcblwKK1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2hcblwKK2luY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlclxuXAorKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsXG5cCitzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5XG5cCisiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZ1xuXAorc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvblxuXAorYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAogaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKIFxuXAotWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAotWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlXG5cCi1JbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAotaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZFxuXAotbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXJcblwKLWFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbFxuXAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGVcblwKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmRcblwKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcblwKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdFxuXAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGVcblwKK2ZvbGxvd2luZzpcblwKIFxuXAotXHQxLiBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlXG5cCi1cdCAgIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLFxuXAotXHQgICBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAotXHQyLiBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5XG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLlxuXAotXHQzLiBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAotXHQgICBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaFxuXAotXHQgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZVxuXAotXHQgICB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGVcblwKLVx0ICAgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZSBieVxuXAotXHQgICB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2hcblwKLVx0ICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvblxuXAotXHQgICBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCisxLiAgQSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXlcblwKKyAgICBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlXG5cCisgICAgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhblxuXAorICAgIEVjbGlwc2UtYmFzZWQgcHJvZHVjdC5cblwKKzIuICBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkXG5cCisgICAgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0b1xuXAorICAgIHRoZSBUYXJnZXQgTWFjaGluZS5cblwKKzMuICBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kXG5cCisgICAgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlXG5cCisgICAgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlXG5cCisgICAgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2VcblwKKyAgICBieSB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaCBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlXG5cCisgICAgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCiBcblwKIENyeXB0b2dyYXBoeVxuXAogXG5cCi1Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmVcblwKLWN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSxcblwKLWFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkVcblwKLXVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLFxuXAotcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmRcblwKLXJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuXG5cCitDb250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5XG5cCittYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0b1xuXAorYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsXG5cCitwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LFxuXAorcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzXG5cCitwZXJtaXR0ZWQuXG5cCiBcblwKLUphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KK0phdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZVxuXAorVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuCiAjIyMjIyMjIyMjIyBlbmQgb2YgbGljZW5zZSBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvbGljZW5zZS5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvbGljZW5zZS5odG1sCmluZGV4IGNlY2YxMzcuLmFmYjJmMzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL2xpY2Vuc2UuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9saWNlbnNlLmh0bWwKQEAgLTEsMTA2ICsxLDE5MCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0NClodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC9ub3RpY2UuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KIAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSIgPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSIgLz4KIDx0aXRsZT5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L3RpdGxlPgotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KKzwvaGVhZD4KIAogPGJvZHkgbGFuZz0iRU4tVVMiPgotPGgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvaDI+Ci08cD5BcHJpbCA5LCAyMDE0PC9wPgorCTxoMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L2gyPgorCTxwPk5vdmVtYmVyIDIyLCAyMDE3PC9wPgogCi08aDM+VXNhZ2UgT2YgQ29udGVudDwvaDM+CisJPGgzPlVzYWdlIE9mIENvbnRlbnQ8L2gzPgogCi08cD5USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMKLSAgIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UKLSAgIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SCi0gICBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQKLSAgIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QgVVNFIFRIRSBDT05URU5ULjwvcD4KKwk8cD5USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwKKwkJSU5GT1JNQVRJT04gQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMKKwkJKENPTExFQ1RJVkVMWSAmcXVvdDtDT05URU5UJnF1b3Q7KS4gVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZCisJCVRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORAorCQlDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VECisJCUJFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMKKwkJR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkKKwkJQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUworCQlBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFCisJCUFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1UgTUFZIE5PVAorCQlVU0UgVEhFIENPTlRFTlQuPC9wPgogCi08aDM+QXBwbGljYWJsZSBMaWNlbnNlczwvaDM+CisJPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgogCi08cD5Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wCi0gICAoIkVQTCIpLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCi0gICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CisJPHA+CisJCVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCisJCUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuIEEgY29weSBvZiB0aGUKKwkJRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjA8L2E+LgorCQlGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuCisJPC9wPgogCi08cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlCi0gICByZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLjwvcD4KKwk8cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QKKwkJY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnkgKCZxdW90O1JlcG9zaXRvcnkmcXVvdDspIGluIHNvZnR3YXJlCisJCW1vZHVsZXMgKCZxdW90O01vZHVsZXMmcXVvdDspIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUKKwkJYXJjaGl2ZXMgKCZxdW90O0Rvd25sb2FkcyZxdW90OykuPC9wPgogCi08dWw+Ci0gICAgICAgPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuPC9saT4KLSAgICAgICA8bGk+RWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhmSBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuPC9saT4KLSAgICAgICA8bGk+QSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zCi0gICAgICBhbmQvb3IgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KLSAgICAgICA8bGk+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLjwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPkNvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0bworCQkJZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwKKwkJCW1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCZxdW90O1BsdWctaW5zJnF1b3Q7KSwgcGx1Zy1pbgorCQkJZnJhZ21lbnRzICgmcXVvdDtGcmFnbWVudHMmcXVvdDspLCBhbmQgZmVhdHVyZXMKKwkJCSgmcXVvdDtGZWF0dXJlcyZxdW90OykuPC9saT4KKwkJPGxpPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5CisJCQlvciBKQVIgKEphdmEmdHJhZGU7IEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkCisJCQkmcXVvdDtwbHVnaW5zJnF1b3Q7LjwvbGk+CisJCTxsaT5BIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yCisJCQlGcmFnbWVudHMgYW5kIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYQorCQkJc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtmZWF0dXJlcyZxdW90Oy4gV2l0aGluIGEKKwkJCUZlYXR1cmUsIGZpbGVzIG5hbWVkICZxdW90O2ZlYXR1cmUueG1sJnF1b3Q7IG1heSBjb250YWluIGEgbGlzdCBvZgorCQkJdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMKKwkJCWFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuPC9saT4KKwkJPGxpPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCZxdW90O0luY2x1ZGVkCisJCQlGZWF0dXJlcyZxdW90OykuIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkCisJCQkmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uCisJCQludW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLjwvbGk+CisJPC91bD4KIAotPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kCi1JbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiICgiRmVhdHVyZSBMaWNlbnNlcyIpLiAgQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUKLWluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KKwk8cD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkCisJCWJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAmcXVvdDthYm91dC5odG1sJnF1b3Q7CisJCSgmcXVvdDtBYm91dHMmcXVvdDspLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAorCQlJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkCisJCSZxdW90O2xpY2Vuc2UuaHRtbCZxdW90OyAoJnF1b3Q7RmVhdHVyZSBMaWNlbnNlcyZxdW90OykuIEFib3V0cyBhbmQKKwkJRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IKKwkJTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmcgbG9jYXRpb25zOjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgotICAgICAgIDxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+Ci0gICAgICAgPGxpPkluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnM8L2xpPgotICAgICAgIDxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zPC9saT4KLSAgICAgICA8bGk+RmVhdHVyZSBkaXJlY3RvcmllczwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeTwvbGk+CisJCTxsaT5QbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3RvcmllczwvbGk+CisJCTxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KKwkJPGxpPlN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICZxdW90O3NyYyZxdW90OyBvZgorCQkJY2VydGFpbiBQbHVnLWluczwvbGk+CisJCTxsaT5GZWF0dXJlIGRpcmVjdG9yaWVzPC9saT4KKwk8L3VsPgogCi08cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUKLWluc3RhbGxhdGlvbiBwcm9jZXNzLiAgSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvcgotaW5mb3JtIHlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiAgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4KLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbgotdGhhdCBkaXJlY3RvcnkuPC9wPgorCTxwPk5vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzCisJCWluc3RhbGxlZCB1c2luZyB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UKKwkJbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCZxdW90O0ZlYXR1cmUgVXBkYXRlIExpY2Vuc2UmcXVvdDspIGR1cmluZworCQl0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLAorCQl0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zCisJCWFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdSB3aGVyZSB5b3UKKwkJY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlCisJCSZxdW90O2xpY2Vuc2UmcXVvdDsgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQKKwkJJnF1b3Q7ZmVhdHVyZS5wcm9wZXJ0aWVzJnF1b3Q7IGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2ggQWJvdXRzLAorCQlGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kCisJCWNvbmRpdGlvbnMgKG9yIHJlZmVyZW5jZXMgdG8gc3VjaCB0ZXJtcyBhbmQgY29uZGl0aW9ucykgdGhhdCBnb3Zlcm4KKwkJeW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS48L3A+CiAKLTxwPlRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuICBTT01FIE9GIFRIRVNFCi1PVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KKwk8cD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZCisJCVJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORAorCQlDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUCisJCUFSRSBOT1QgTElNSVRFRCBUTyk6PC9wPgogCi08dWw+Ci0gICAgICAgPGxpPkVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sPC9hPik8L2xpPgotICAgICAgIDxsaT5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWw8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pPC9saT4KLSAgICAgICA8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+KTwvbGk+Ci0gICAgICAgPGxpPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvYT4pPC9saT4KLTwvdWw+CisJPHVsPgorCQk8bGk+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+RWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkNvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRTwvYT4pCisJCTwvbGk+CisJCTxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wIj5odHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjA8L2E+KQorCQk8L2xpPgorCQk8bGk+TW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwiPmh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbDwvYT4pCisJCTwvbGk+CisJPC91bD4KIAotPHA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUTyBVU0UgT0YgVEhFIENPTlRFTlQuICBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UKLWNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdCBwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgorCTxwPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5ECisJCUNPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLAorCQlvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzIHByb3ZpZGVkLCBwbGVhc2UgY29udGFjdCB0aGUgRWNsaXBzZQorCQlGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybiB0aGF0CisJCXBhcnRpY3VsYXIgQ29udGVudC48L3A+CiAKIAotPGgzPlVzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neTwvaDM+CisJPGgzPlVzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neTwvaDM+CiAKLTxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2ggaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlCi0gICBVcGRhdGUgTWFuYWdlciAoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vcgotICAgb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoIHRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0bwotICAgaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sIj5odHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sPC9hPgotICAgKCJTcGVjaWZpY2F0aW9uIikuPC9wPgorCTxwPgorCQlUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzCisJCW9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUKKwkJTWFuYWdlciAoJnF1b3Q7UHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kmcXVvdDspIGZvciB0aGUgcHVycG9zZSBvZgorCQlhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3IKKwkJb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgJnF1b3Q7SW5zdGFsbGFibGUgU29mdHdhcmUmcXVvdDspLiBUaGlzCisJCWNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8KKwkJaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy4gSW5mb3JtYXRpb24gYWJvdXQKKwkJcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KKwkJKCZxdW90O1NwZWNpZmljYXRpb24mcXVvdDspLgorCTwvcD4KIAotPHA+WW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLiBZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZQotICAgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5Ci0gICBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdCBhdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZQotICAgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91ciBhZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZSBmb2xsb3dpbmc6PC9wPgorCTxwPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8KKwkJaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZworCQl0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlCisJCXRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZworCQlUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nCisJCVRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGgKKwkJdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlCisJCWFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvcD4KIAotPG9sPgotICAgICAgIDxsaT5BIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgICAgIG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkCi0gICAgICAgcHJvZHVjdC48L2xpPgotICAgICAgIDxsaT5EdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCi0gICAgICAgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuPC9saT4KLSAgICAgICA8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCi0gICAgICAgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0Ci0gICAgICAgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybgotICAgICAgIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkgdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoCi0gICAgICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuPC9saT4KLTwvb2w+CisJPG9sPgorCQk8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCZxdW90O1Byb3Zpc2lvbmluZworCQkJUHJvY2VzcyZxdW90OykgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcKKwkJCVRlY2hub2xvZ3kgb24gYSBtYWNoaW5lICgmcXVvdDtUYXJnZXQgTWFjaGluZSZxdW90Oykgd2l0aCB0aGUgaW50ZW50CisJCQlvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4KKwkJCUVjbGlwc2UtYmFzZWQgcHJvZHVjdC48L2xpPgorCQk8bGk+RHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5CisJCQltYXkgY2F1c2UgdGhpcmQgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUKKwkJCWFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLjwvbGk+CisJCTxsaT5QdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlcgorCQkJdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZSAoJnF1b3Q7SW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50JnF1b3Q7KSBhbmQgc3VjaAorCQkJSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAorCQkJTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUKKwkJCVNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMKKwkJCXRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2UgYnkKKwkJCXRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQkJQWdyZWVtZW50LiBVcG9uIHN1Y2ggaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZQorCQkJcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZS48L2xpPgorCTwvb2w+CiAKLTxoMz5DcnlwdG9ncmFwaHk8L2gzPgorCTxoMz5DcnlwdG9ncmFwaHk8L2gzPgogCi08cD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvCi0gICBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywgcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwKLSAgIHBvc3Nlc3Npb24sIG9yIHVzZSwgYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgorCTxwPkNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2gKKwkJeW91IGFyZSBjdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZAorCQl1c2UsIGFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLgorCQlCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsCisJCXJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIG9yIHVzZSwKKwkJYW5kIHJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuPC9wPgogCi08cD48c21hbGw+SmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPjwvcD4KLQotCi08L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKwk8cD4KKwkJPHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YKKwkJCU9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLjwvc21hbGw+CisJPC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci1mZWF0dXJlL3BvbS54bWwKaW5kZXggYzJhYjEwYy4uZmEwMDZhMyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLWZlYXR1cmUvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXItZmVhdHVyZS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL2Fib3V0Lmh0bWwKaW5kZXggMmYwZGNkNy4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPkp1bmUgMjQsIDIwMDg8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3BvbS54bWwKaW5kZXggYTAxMzE4ZS4uYWY0YmFiMiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9BU01Db25zdGFudHMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvQVNNQ29uc3RhbnRzLmphdmEKaW5kZXggMzFiNDI5Ni4uY2VmNGM5MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9BU01Db25zdGFudHMuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL0FTTUNvbnN0YW50cy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvQVRMTW9kZWxIYW5kbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL0FUTE1vZGVsSGFuZGxlci5qYXZhCmluZGV4IDYwNGZjN2YuLjExN2UzYWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvQVRMTW9kZWxIYW5kbGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9BVExNb2RlbEhhbmRsZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL0FUTFByb2ZpbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL0FUTFByb2ZpbGVyLmphdmEKaW5kZXggNmQyMmYyMS4uNTZlNWQwNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9BVExQcm9maWxlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvQVRMUHJvZmlsZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL01lc3NhZ2VzLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL01lc3NhZ2VzLmphdmEKaW5kZXggMDNlY2Y3Yi4uMzUzZjgxMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvTWVzc2FnZXMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gTWVzc2FnZXMgZXh0ZXJuYWxpemF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL1Byb2ZpbGVyTW9kZWxIYW5kbGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL1Byb2ZpbGVyTW9kZWxIYW5kbGVyLmphdmEKaW5kZXggOTA0NGJiZS4uZGJlOWU0NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9Qcm9maWxlck1vZGVsSGFuZGxlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvUHJvZmlsZXJNb2RlbEhhbmRsZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL2V4Y2VwdGlvbi9JbnRlcmNlcHRlZExlYXZpbmdTdGFja0ZyYW1lRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL2V4Y2VwdGlvbi9JbnRlcmNlcHRlZExlYXZpbmdTdGFja0ZyYW1lRXhjZXB0aW9uLmphdmEKaW5kZXggNGM1Y2RmYy4uYTFhZGUwMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9leGNlcHRpb24vSW50ZXJjZXB0ZWRMZWF2aW5nU3RhY2tGcmFtZUV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvZXhjZXB0aW9uL0ludGVyY2VwdGVkTGVhdmluZ1N0YWNrRnJhbWVFeGNlcHRpb24uamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL2V4Y2VwdGlvbi9Ob1JlZ2lzdGVyZWRPcGVyYXRpb25Gb3VuZEV4Y2VwdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9leGNlcHRpb24vTm9SZWdpc3RlcmVkT3BlcmF0aW9uRm91bmRFeGNlcHRpb24uamF2YQppbmRleCA5M2FkMjA4Li4wNTQ3Njk2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL2V4Y2VwdGlvbi9Ob1JlZ2lzdGVyZWRPcGVyYXRpb25Gb3VuZEV4Y2VwdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvZXhjZXB0aW9uL05vUmVnaXN0ZXJlZE9wZXJhdGlvbkZvdW5kRXhjZXB0aW9uLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS9tZXNzYWdlcy5wcm9wZXJ0aWVzCmluZGV4IGQ4NTQ3MTcuLmI5MjUzMWMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvbWVzc2FnZXMucHJvcGVydGllcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3V0aWwvUHJvZmlsZXJNb2RlbEV4cG9ydGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3V0aWwvUHJvZmlsZXJNb2RlbEV4cG9ydGVyLmphdmEKaW5kZXggMTAwZDExMC4uNTYwZDI4ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS91dGlsL1Byb2ZpbGVyTW9kZWxFeHBvcnRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvdXRpbC9Qcm9maWxlck1vZGVsRXhwb3J0ZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3V0aWwvUHJvZmlsaW5nTW9kZWxVdGlscy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS91dGlsL1Byb2ZpbGluZ01vZGVsVXRpbHMuamF2YQppbmRleCAxNzZhMjU0Li41YTQ5NjVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3V0aWwvUHJvZmlsaW5nTW9kZWxVdGlscy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvdXRpbC9Qcm9maWxpbmdNb2RlbFV0aWxzLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS92bS9JT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3ZtL0lPcGVyYXRpb24uamF2YQppbmRleCBlN2I1ODdmLi5lOTgzM2UyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3ZtL0lPcGVyYXRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3ZtL0lPcGVyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3ZtL0lTdGFja0ZyYW1lLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9jb3JlL3ZtL0lTdGFja0ZyYW1lLmphdmEKaW5kZXggOTkwMGIzNS4uMzNkMGI3NyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvY29yZS92bS9JU3RhY2tGcmFtZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2NvcmUvdm0vSVN0YWNrRnJhbWUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vYWJvdXQuaHRtbAppbmRleCAyZjBkY2Q3Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5KdW5lIDI0LCAyMDA4PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3BvbS54bWwKaW5kZXggNmM4ODc1OS4uMTdkOWEwNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZW1mdm0vUHJvZmlsZXJMYXVuY2hlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2VtZnZtL1Byb2ZpbGVyTGF1bmNoZXIuamF2YQppbmRleCAzYjc5MzczLi4xZTk5OTg2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZW1mdm0vUHJvZmlsZXJMYXVuY2hlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9lbWZ2bS9Qcm9maWxlckxhdW5jaGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2VtZnZtL1Byb2ZpbGluZ1Rvb2wuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9lbWZ2bS9Qcm9maWxpbmdUb29sLmphdmEKaW5kZXggZmIzM2IxNC4uZWFmYjY4NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2VtZnZtL1Byb2ZpbGluZ1Rvb2wuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZW1mdm0vUHJvZmlsaW5nVG9vbC5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9lbWZ2bS9hZGFwdGVyL09wZXJhdGlvbkFkYXB0ZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9lbWZ2bS9hZGFwdGVyL09wZXJhdGlvbkFkYXB0ZXIuamF2YQppbmRleCA2ZWRiNTc5Li41ZmU4NmMwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZW1mdm0vYWRhcHRlci9PcGVyYXRpb25BZGFwdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2VtZnZtL2FkYXB0ZXIvT3BlcmF0aW9uQWRhcHRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9lbWZ2bS9hZGFwdGVyL1N0YWNrRnJhbWVBZGFwdGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZW1mdm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZW1mdm0vYWRhcHRlci9TdGFja0ZyYW1lQWRhcHRlci5qYXZhCmluZGV4IGE0MDc3OTIuLjk1NThmMWQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5lbWZ2bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9lbWZ2bS9hZGFwdGVyL1N0YWNrRnJhbWVBZGFwdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmVtZnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2VtZnZtL2FkYXB0ZXIvU3RhY2tGcmFtZUFkYXB0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3IvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwpAQCAtMiw0ICsyLDQgQEAKIGZvcm1hdHRlcl9wcm9maWxlPV9BVEwKIGZvcm1hdHRlcl9zZXR0aW5nc192ZXJzaW9uPTExCiBvcmcuZWNsaXBzZS5qZHQudWkuamF2YWRvYz1mYWxzZQotb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CitvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cHNcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3IvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3IvYWJvdXQuaHRtbAppbmRleCAyZjBkY2Q3Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPkp1bmUgMjQsIDIwMDg8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9wb20ueG1sCmluZGV4IDNkOWIwNjAuLjhjNmQ3OGUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3IvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3ByZXNlbnRhdGlvbi9FeHBvcnRtb2RlbEFjdGlvbkJhckNvbnRyaWJ1dG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3ByZXNlbnRhdGlvbi9FeHBvcnRtb2RlbEFjdGlvbkJhckNvbnRyaWJ1dG9yLmphdmEKaW5kZXggODUxZDZmNy4uNWFmYzU1OCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcmVzZW50YXRpb24vRXhwb3J0bW9kZWxBY3Rpb25CYXJDb250cmlidXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJlc2VudGF0aW9uL0V4cG9ydG1vZGVsQWN0aW9uQmFyQ29udHJpYnV0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3ByZXNlbnRhdGlvbi9FeHBvcnRtb2RlbEVkaXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcmVzZW50YXRpb24vRXhwb3J0bW9kZWxFZGl0b3IuamF2YQppbmRleCAxNjdkMTI3Li5mMTJhZmE5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3ByZXNlbnRhdGlvbi9FeHBvcnRtb2RlbEVkaXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJlc2VudGF0aW9uL0V4cG9ydG1vZGVsRWRpdG9yLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcmVzZW50YXRpb24vRXhwb3J0bW9kZWxFZGl0b3JQbHVnaW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJlc2VudGF0aW9uL0V4cG9ydG1vZGVsRWRpdG9yUGx1Z2luLmphdmEKaW5kZXggZmRkZWViZS4uNmVkOTMwZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcmVzZW50YXRpb24vRXhwb3J0bW9kZWxFZGl0b3JQbHVnaW4uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3ByZXNlbnRhdGlvbi9FeHBvcnRtb2RlbEVkaXRvclBsdWdpbi5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJlc2VudGF0aW9uL0V4cG9ydG1vZGVsTW9kZWxXaXphcmQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJlc2VudGF0aW9uL0V4cG9ydG1vZGVsTW9kZWxXaXphcmQuamF2YQppbmRleCBkMGIzYTFiLi5hYjMxNmY4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3ByZXNlbnRhdGlvbi9FeHBvcnRtb2RlbE1vZGVsV2l6YXJkLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcmVzZW50YXRpb24vRXhwb3J0bW9kZWxNb2RlbFdpemFyZC5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKaW5kZXggZTAzZjVlOS4uYWM0N2Q5MCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMKQEAgLTIsNCArMiw0IEBACiBmb3JtYXR0ZXJfcHJvZmlsZT1fQVRMCiBmb3JtYXR0ZXJfc2V0dGluZ3NfdmVyc2lvbj0xMQogb3JnLmVjbGlwc2UuamR0LnVpLmphdmFkb2M9ZmFsc2UKLW9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWxcclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgorb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBzXDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvYWJvdXQuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9hYm91dC5odG1sCmluZGV4IDJmMGRjZDcuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9hYm91dC5odG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPkp1bmUgMjQsIDIwMDg8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvcG9tLnhtbAppbmRleCA3ZTA2MTU5Li5iYTNlNmYxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9BdGxPcGVyYXRpb25FeHBvcnQuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9BdGxPcGVyYXRpb25FeHBvcnQuamF2YQppbmRleCAzY2VhNzUxLi5mODcwYzNhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvQXRsT3BlcmF0aW9uRXhwb3J0LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0F0bE9wZXJhdGlvbkV4cG9ydC5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9FeHBvcnRFbGVtZW50LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvRXhwb3J0RWxlbWVudC5qYXZhCmluZGV4IDJkNmNmNzEuLjViZDhlYmEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9FeHBvcnRFbGVtZW50LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0V4cG9ydEVsZW1lbnQuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvRXhwb3J0Um9vdC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0V4cG9ydFJvb3QuamF2YQppbmRleCAzNWU4MDc1Li42MDMzNGViIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvRXhwb3J0Um9vdC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9FeHBvcnRSb290LmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0V4cG9ydG1vZGVsRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0V4cG9ydG1vZGVsRmFjdG9yeS5qYXZhCmluZGV4IDJjMWI3OGYuLmE0YTM2MTYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9FeHBvcnRtb2RlbEZhY3RvcnkuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvRXhwb3J0bW9kZWxGYWN0b3J5LmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0V4cG9ydG1vZGVsUGFja2FnZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL0V4cG9ydG1vZGVsUGFja2FnZS5qYXZhCmluZGV4IDRhMGIyMjUuLjk2NDQyZWIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9FeHBvcnRtb2RlbFBhY2thZ2UuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvRXhwb3J0bW9kZWxQYWNrYWdlLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL1Byb2ZpbGluZ09wZXJhdGlvbkV4cG9ydC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL1Byb2ZpbGluZ09wZXJhdGlvbkV4cG9ydC5qYXZhCmluZGV4IDlkMzg2NjIuLmQ0NTBlY2YgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9Qcm9maWxpbmdPcGVyYXRpb25FeHBvcnQuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvUHJvZmlsaW5nT3BlcmF0aW9uRXhwb3J0LmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvQXRsT3BlcmF0aW9uRXhwb3J0SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvQXRsT3BlcmF0aW9uRXhwb3J0SW1wbC5qYXZhCmluZGV4IGI5OTdlYjMuLmNiYzcyODcgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL0F0bE9wZXJhdGlvbkV4cG9ydEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9BdGxPcGVyYXRpb25FeHBvcnRJbXBsLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvRXhwb3J0RWxlbWVudEltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL0V4cG9ydEVsZW1lbnRJbXBsLmphdmEKaW5kZXggZTg4MjViMS4uMWVkYzE4ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvRXhwb3J0RWxlbWVudEltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9FeHBvcnRFbGVtZW50SW1wbC5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL0V4cG9ydFJvb3RJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9FeHBvcnRSb290SW1wbC5qYXZhCmluZGV4IDE0YmE0OTUuLjRmOGJkNDQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL0V4cG9ydFJvb3RJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvRXhwb3J0Um9vdEltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9FeHBvcnRtb2RlbEZhY3RvcnlJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9FeHBvcnRtb2RlbEZhY3RvcnlJbXBsLmphdmEKaW5kZXggOGY0NTA1OC4uNTZkZTk2NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvRXhwb3J0bW9kZWxGYWN0b3J5SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL0V4cG9ydG1vZGVsRmFjdG9yeUltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9FeHBvcnRtb2RlbFBhY2thZ2VJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9FeHBvcnRtb2RlbFBhY2thZ2VJbXBsLmphdmEKaW5kZXggZTk2NTQyMi4uMzQwYzlkMCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvRXhwb3J0bW9kZWxQYWNrYWdlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL0V4cG9ydG1vZGVsUGFja2FnZUltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9Qcm9maWxpbmdPcGVyYXRpb25FeHBvcnRJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvaW1wbC9Qcm9maWxpbmdPcGVyYXRpb25FeHBvcnRJbXBsLmphdmEKaW5kZXggOWM4MWM3MC4uNjAzZDdlMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL2ltcGwvUHJvZmlsaW5nT3BlcmF0aW9uRXhwb3J0SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9pbXBsL1Byb2ZpbGluZ09wZXJhdGlvbkV4cG9ydEltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvQXRsT3BlcmF0aW9uRXhwb3J0SXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvQXRsT3BlcmF0aW9uRXhwb3J0SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNjQ1ZWQzYi4uYWM1N2ZhZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL0F0bE9wZXJhdGlvbkV4cG9ydEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9BdGxPcGVyYXRpb25FeHBvcnRJdGVtUHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvRXhwb3J0RWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL0V4cG9ydEVsZW1lbnRJdGVtUHJvdmlkZXIuamF2YQppbmRleCA1YmQ1MzA5Li5kZWYzM2JhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvRXhwb3J0RWxlbWVudEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9FeHBvcnRFbGVtZW50SXRlbVByb3ZpZGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL0V4cG9ydFJvb3RJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9FeHBvcnRSb290SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggYzMyMGQwZS4uM2I5ZjBkZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL0V4cG9ydFJvb3RJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvRXhwb3J0Um9vdEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9FeHBvcnRtb2RlbEVkaXRQbHVnaW4uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9FeHBvcnRtb2RlbEVkaXRQbHVnaW4uamF2YQppbmRleCAyNTczNjIyLi4yZWUzYWM2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvRXhwb3J0bW9kZWxFZGl0UGx1Z2luLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL0V4cG9ydG1vZGVsRWRpdFBsdWdpbi5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9FeHBvcnRtb2RlbEl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvRXhwb3J0bW9kZWxJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IDViOGMyNWIuLmFlZmUzMjAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9FeHBvcnRtb2RlbEl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL0V4cG9ydG1vZGVsSXRlbVByb3ZpZGVyQWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nT3BlcmF0aW9uRXhwb3J0SXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nT3BlcmF0aW9uRXhwb3J0SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggOGQzNmUyZi4uNzk1ZDI3NiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3Byb3ZpZGVyL1Byb2ZpbGluZ09wZXJhdGlvbkV4cG9ydEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC9wcm92aWRlci9Qcm9maWxpbmdPcGVyYXRpb25FeHBvcnRJdGVtUHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvdXRpbC9FeHBvcnRtb2RlbEFkYXB0ZXJGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvdXRpbC9FeHBvcnRtb2RlbEFkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggNDM1ODZhMy4uMTcwYjQ0ZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3V0aWwvRXhwb3J0bW9kZWxBZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC91dGlsL0V4cG9ydG1vZGVsQWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvdXRpbC9FeHBvcnRtb2RlbFN3aXRjaC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLmV4cG9ydG1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL2V4cG9ydG1vZGVsL3V0aWwvRXhwb3J0bW9kZWxTd2l0Y2guamF2YQppbmRleCBkYmExNzdmLi5iZjcxODhlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIuZXhwb3J0bW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvZXhwb3J0bW9kZWwvdXRpbC9FeHBvcnRtb2RlbFN3aXRjaC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5leHBvcnRtb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9leHBvcnRtb2RlbC91dGlsL0V4cG9ydG1vZGVsU3dpdGNoLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQudWkucHJlZnMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwppbmRleCBlMDNmNWU5Li5hYzQ3ZDkwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcwpAQCAtMiw0ICsyLDQgQEAKIGZvcm1hdHRlcl9wcm9maWxlPV9BVEwKIGZvcm1hdHRlcl9zZXR0aW5nc192ZXJzaW9uPTExCiBvcmcuZWNsaXBzZS5qZHQudWkuamF2YWRvYz1mYWxzZQotb3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY3VzdG9tX2NvZGVfdGVtcGxhdGVzPTw/eG1sICogQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uXHJcbiAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHNcclxuICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXHJcbiAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XHJcbiAqIGh0dHBcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxyXG4gKiBcclxuICogQ29udHJpYnV0b3JzXDpcclxuICogICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb25cclxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0idHlwZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGNyZWF0ZWQgdHlwZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMudHlwZWNvbW1lbnQiIG5hbWVcPSJ0eXBlY29tbWVudCI+LyoqXHJcbiAqIEBhdXRob3IgJHt1c2VyfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJmaWVsZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGZpZWxkcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5maWVsZGNvbW1lbnQiIG5hbWVcPSJmaWVsZGNvbW1lbnQiPi8qKiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igbm9uLW92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rjb21tZW50IiBuYW1lXD0ibWV0aG9kY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0ib3ZlcnJpZGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBvdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMub3ZlcnJpZGVjb21tZW50IiBuYW1lXD0ib3ZlcnJpZGVjb21tZW50Ij4vKipcclxuICoge0Bpbmhlcml0RG9jfVxyXG4gKlxyXG4gKiAke3NlZV90b19vdmVycmlkZGVufVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImRlbGVnYXRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZGVsZWdhdGUgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5kZWxlZ2F0ZWNvbW1lbnQiIG5hbWVcPSJkZWxlZ2F0ZWNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqICR7c2VlX3RvX3RhcmdldH1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJuZXd0eXBlX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJOZXdseSBjcmVhdGVkIGZpbGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm5ld3R5cGUiIG5hbWVcPSJuZXd0eXBlIj4ke2ZpbGVjb21tZW50fVxyXG4ke3BhY2thZ2VfZGVjbGFyYXRpb259XHJcblxyXG4ke3R5cGVjb21tZW50fVxyXG4ke3R5cGVfZGVjbGFyYXRpb259PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjbGFzc2JvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNsYXNzIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNsYXNzYm9keSIgbmFtZVw9ImNsYXNzYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iaW50ZXJmYWNlYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgaW50ZXJmYWNlIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmludGVyZmFjZWJvZHkiIG5hbWVcPSJpbnRlcmZhY2Vib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJlbnVtYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgZW51bSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5lbnVtYm9keSIgbmFtZVw9ImVudW1ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJhbm5vdGF0aW9uYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgYW5ub3RhdGlvbiB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5hbm5vdGF0aW9uYm9keSIgbmFtZVw9ImFubm90YXRpb25ib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjYXRjaGJsb2NrX2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjYXRjaCBibG9ja3MiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2F0Y2hibG9jayIgbmFtZVw9ImNhdGNoYmxvY2siPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY2F0Y2ggYmxvY2tcclxuJHtleGNlcHRpb25fdmFyfS5wcmludFN0YWNrVHJhY2UoKTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBtZXRob2Qgc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kYm9keSIgbmFtZVw9Im1ldGhvZGJvZHkiPi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWJcclxuJHtib2R5X3N0YXRlbWVudH08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNvbnN0cnVjdG9yYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGNvbnN0cnVjdG9yIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNvbnN0cnVjdG9yYm9keSIgbmFtZVw9ImNvbnN0cnVjdG9yYm9keSI+JHtib2R5X3N0YXRlbWVudH1cclxuLy8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjb25zdHJ1Y3RvciBzdHViPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJnZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgZ2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5nZXR0ZXJib2R5IiBuYW1lXD0iZ2V0dGVyYm9keSI+cmV0dXJuICR7ZmllbGR9OzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ic2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIHNldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuc2V0dGVyYm9keSIgbmFtZVw9InNldHRlcmJvZHkiPiR7ZmllbGR9IFw9ICR7cGFyYW19OzwvdGVtcGxhdGU+PC90ZW1wbGF0ZXM+CitvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cHNcOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL2Fib3V0Lmh0bWwKaW5kZXggMmYwZGNkNy4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL2Fib3V0Lmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+SnVuZSAyNCwgMjAwODwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9wb20ueG1sCmluZGV4IDAwMWJjMjkuLmRkNmZkZmMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL0FUTEluc3RydWN0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQVRMSW5zdHJ1Y3Rpb24uamF2YQppbmRleCBmZWZkY2RjLi5lMzU0ODg0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQVRMSW5zdHJ1Y3Rpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQVRMSW5zdHJ1Y3Rpb24uamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQVRMT3BlcmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQVRMT3BlcmF0aW9uLmphdmEKaW5kZXggNjIyMmI2NS4uZTU4MDgxZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL0FUTE9wZXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9BVExPcGVyYXRpb24uamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQ29udGV4dC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL0NvbnRleHQuamF2YQppbmRleCBkM2U4MWJhLi44ZjgxNGNlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvQ29udGV4dC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Db250ZXh0LmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL0V4ZWN1dGlvbkVycm9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvRXhlY3V0aW9uRXJyb3IuamF2YQppbmRleCBlZmU4ODgxLi40ZDM4ZTZhIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvRXhlY3V0aW9uRXJyb3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvRXhlY3V0aW9uRXJyb3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvTW9kZWxGYWN0b3J5LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvTW9kZWxGYWN0b3J5LmphdmEKaW5kZXggMmY5OTdmOC4uMWQ3ZDBhZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL01vZGVsRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Nb2RlbEZhY3RvcnkuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvTW9kZWxQYWNrYWdlLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvTW9kZWxQYWNrYWdlLmphdmEKaW5kZXggOTUwNDFlOC4uYzdmMTkyNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL01vZGVsUGFja2FnZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Nb2RlbFBhY2thZ2UuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvUHJvZmlsaW5nSW5zdHJ1Y3Rpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Qcm9maWxpbmdJbnN0cnVjdGlvbi5qYXZhCmluZGV4IDNiMTM0NjkuLmYxNWI1MmYgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Qcm9maWxpbmdJbnN0cnVjdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Qcm9maWxpbmdJbnN0cnVjdGlvbi5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Qcm9maWxpbmdNb2RlbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL1Byb2ZpbGluZ01vZGVsLmphdmEKaW5kZXggOGQ4NmU2Zi4uZmY4ZjgxZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL1Byb2ZpbGluZ01vZGVsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL1Byb2ZpbGluZ01vZGVsLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL1Byb2ZpbGluZ09wZXJhdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL1Byb2ZpbGluZ09wZXJhdGlvbi5qYXZhCmluZGV4IDY3NzU0OTMuLjYzYmNiM2UgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9Qcm9maWxpbmdPcGVyYXRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvUHJvZmlsaW5nT3BlcmF0aW9uLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvQVRMSW5zdHJ1Y3Rpb25JbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9BVExJbnN0cnVjdGlvbkltcGwuamF2YQppbmRleCBjMmYzOTZkLi44ZTU4MGVmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9BVExJbnN0cnVjdGlvbkltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9BVExJbnN0cnVjdGlvbkltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9BVExPcGVyYXRpb25JbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9BVExPcGVyYXRpb25JbXBsLmphdmEKaW5kZXggOTY2ZDkxZi4uNmMxZDdiMSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvQVRMT3BlcmF0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL0FUTE9wZXJhdGlvbkltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Db250ZXh0SW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvQ29udGV4dEltcGwuamF2YQppbmRleCBjY2U5MDEwLi41MTMwNDU4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Db250ZXh0SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL0NvbnRleHRJbXBsLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvRXhlY3V0aW9uRXJyb3JJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9FeGVjdXRpb25FcnJvckltcGwuamF2YQppbmRleCBkNjMwOTlkLi44YmY0YmJmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9FeGVjdXRpb25FcnJvckltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9FeGVjdXRpb25FcnJvckltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Nb2RlbEZhY3RvcnlJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Nb2RlbEZhY3RvcnlJbXBsLmphdmEKaW5kZXggMGFiNjIyMC4uYzIyZjU4MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvTW9kZWxGYWN0b3J5SW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL01vZGVsRmFjdG9yeUltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Nb2RlbFBhY2thZ2VJbXBsLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Nb2RlbFBhY2thZ2VJbXBsLmphdmEKaW5kZXggNWVmZWZjYS4uZDJmNzVlZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvTW9kZWxQYWNrYWdlSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL01vZGVsUGFja2FnZUltcGwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Qcm9maWxpbmdJbnN0cnVjdGlvbkltcGwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL1Byb2ZpbGluZ0luc3RydWN0aW9uSW1wbC5qYXZhCmluZGV4IDExNGMwYTkuLmE2NjQ4YzAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL1Byb2ZpbGluZ0luc3RydWN0aW9uSW1wbC5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL1Byb2ZpbGluZ0luc3RydWN0aW9uSW1wbC5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL1Byb2ZpbGluZ01vZGVsSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvUHJvZmlsaW5nTW9kZWxJbXBsLmphdmEKaW5kZXggN2U1MzZkNS4uZTljMmVkNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvUHJvZmlsaW5nTW9kZWxJbXBsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvUHJvZmlsaW5nTW9kZWxJbXBsLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvUHJvZmlsaW5nT3BlcmF0aW9uSW1wbC5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL2ltcGwvUHJvZmlsaW5nT3BlcmF0aW9uSW1wbC5qYXZhCmluZGV4IGMwYzQwMTMuLjkwNWY3OTQgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9pbXBsL1Byb2ZpbGluZ09wZXJhdGlvbkltcGwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvaW1wbC9Qcm9maWxpbmdPcGVyYXRpb25JbXBsLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL0FUTEluc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCBlOWJkYTJkLi5jZWI2NDBiIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMT3BlcmF0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMT3BlcmF0aW9uSXRlbVByb3ZpZGVyLmphdmEKaW5kZXggMGFkMGIyZS4uNzQxMmM4MiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL0FUTE9wZXJhdGlvbkl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9BVExPcGVyYXRpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMUHJvZmlsZXJFZGl0UGx1Z2luLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQVRMUHJvZmlsZXJFZGl0UGx1Z2luLmphdmEKaW5kZXggMDM1NGM2OS4uNTg0NmNjZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL0FUTFByb2ZpbGVyRWRpdFBsdWdpbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9BVExQcm9maWxlckVkaXRQbHVnaW4uamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQ29udGV4dEl0ZW1Qcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL0NvbnRleHRJdGVtUHJvdmlkZXIuamF2YQppbmRleCBkNzgxN2NkLi5kMmI2Y2VlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvQ29udGV4dEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Db250ZXh0SXRlbVByb3ZpZGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL0V4ZWN1dGlvbkVycm9ySXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvRXhlY3V0aW9uRXJyb3JJdGVtUHJvdmlkZXIuamF2YQppbmRleCBkYmI3ZTk0Li45MjFmNjg3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvRXhlY3V0aW9uRXJyb3JJdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvRXhlY3V0aW9uRXJyb3JJdGVtUHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvTW9kZWxJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL01vZGVsSXRlbVByb3ZpZGVyQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBlYTE1NTI0Li5jNDM5ZmE2IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvTW9kZWxJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Nb2RlbEl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL1Byb2ZpbGluZ0luc3RydWN0aW9uSXRlbVByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCA5YzI5ZGQwLi42ZDhjYjIyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nSW5zdHJ1Y3Rpb25JdGVtUHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nTW9kZWxJdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Qcm9maWxpbmdNb2RlbEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDJiNTAzNjQuLjc1NGVlYzEgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Qcm9maWxpbmdNb2RlbEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Qcm9maWxpbmdNb2RlbEl0ZW1Qcm92aWRlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Qcm9maWxpbmdPcGVyYXRpb25JdGVtUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC9wcm92aWRlci9Qcm9maWxpbmdPcGVyYXRpb25JdGVtUHJvdmlkZXIuamF2YQppbmRleCBhNDZkMzEwLi4zOWM2NzQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvcHJvdmlkZXIvUHJvZmlsaW5nT3BlcmF0aW9uSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3Byb3ZpZGVyL1Byb2ZpbGluZ09wZXJhdGlvbkl0ZW1Qcm92aWRlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC91dGlsL01vZGVsQWRhcHRlckZhY3RvcnkuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC91dGlsL01vZGVsQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCBkZDQ0NjkzLi42MDcyZjYyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvdXRpbC9Nb2RlbEFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3V0aWwvTW9kZWxBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC91dGlsL01vZGVsU3dpdGNoLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIubW9kZWwvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvbW9kZWwvdXRpbC9Nb2RlbFN3aXRjaC5qYXZhCmluZGV4IDUxZjlhNWIuLmZlYzAxN2IgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci5tb2RlbC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci9tb2RlbC91dGlsL01vZGVsU3dpdGNoLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLm1vZGVsL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL21vZGVsL3V0aWwvTW9kZWxTd2l0Y2guamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvYWJvdXQuaHRtbAppbmRleCAyZjBkY2Q3Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5KdW5lIDI0LCAyMDA4PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3BvbS54bWwKaW5kZXggMGFjMWFkMy4uYmU1YWU4YiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9NZXNzYWdlcy5qYXZhCmluZGV4IGE2YjQ5MDYuLjQ1MGJmNTIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9NZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9NZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBNZXNzYWdlcyBleHRlcm5hbGl6YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9hY3RpdmF0b3JzL0V4ZWN1dGlvblZpZXdlckFjdGl2YXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2FjdGl2YXRvcnMvRXhlY3V0aW9uVmlld2VyQWN0aXZhdG9yLmphdmEKaW5kZXggZDljNzZjNy4uZTRlMGMzNSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2FjdGl2YXRvcnMvRXhlY3V0aW9uVmlld2VyQWN0aXZhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2FjdGl2YXRvcnMvRXhlY3V0aW9uVmlld2VyQWN0aXZhdG9yLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2FjdGl2YXRvcnMvUHJvZmlsaW5nRGF0YVRhYmxlQWN0aXZhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvYWN0aXZhdG9ycy9Qcm9maWxpbmdEYXRhVGFibGVBY3RpdmF0b3IuamF2YQppbmRleCAxOGNhMzUyLi40YTYwYjA0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvYWN0aXZhdG9ycy9Qcm9maWxpbmdEYXRhVGFibGVBY3RpdmF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvYWN0aXZhdG9ycy9Qcm9maWxpbmdEYXRhVGFibGVBY3RpdmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvQ2FsbHNWaWV3Q29udGVudFByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvQ2FsbHNWaWV3Q29udGVudFByb3ZpZGVyLmphdmEKaW5kZXggNDljMDQ4NS4uMDJmYzhlZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0NhbGxzVmlld0NvbnRlbnRQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9DYWxsc1ZpZXdDb250ZW50UHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvQ2FsbHNWaWV3TGFiZWxQcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0NhbGxzVmlld0xhYmVsUHJvdmlkZXIuamF2YQppbmRleCAxYzMxNTFmLi43MTE4ZjQyIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvQ2FsbHNWaWV3TGFiZWxQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9DYWxsc1ZpZXdMYWJlbFByb3ZpZGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0V4ZWN1dGlvblZpZXcuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9FeGVjdXRpb25WaWV3LmphdmEKaW5kZXggNDliYWMyNy4uNTA5MzM0NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0V4ZWN1dGlvblZpZXcuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvRXhlY3V0aW9uVmlldy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9FeGVjdXRpb25WaWV3Q29udGVudFByb3ZpZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvRXhlY3V0aW9uVmlld0NvbnRlbnRQcm92aWRlci5qYXZhCmluZGV4IGYzNWZlMmYuLmM2YWU3NzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9FeGVjdXRpb25WaWV3Q29udGVudFByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0V4ZWN1dGlvblZpZXdDb250ZW50UHJvdmlkZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvZXhlY3V0aW9udmlld2VyL3ZpZXcvRXhlY3V0aW9uVmlld0xhYmVsUHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9FeGVjdXRpb25WaWV3TGFiZWxQcm92aWRlci5qYXZhCmluZGV4IDhiNTEwMmEuLmJmYjNiYzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9FeGVjdXRpb25WaWV3TGFiZWxQcm92aWRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9FeGVjdXRpb25WaWV3TGFiZWxQcm92aWRlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9leGVjdXRpb252aWV3ZXIvdmlldy9JbnN0cnVjdGlvbkZpbHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0luc3RydWN0aW9uRmlsdGVyLmphdmEKaW5kZXggYjBjOGJiMC4uZWUxN2Y0MSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0luc3RydWN0aW9uRmlsdGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL2V4ZWN1dGlvbnZpZXdlci92aWV3L0luc3RydWN0aW9uRmlsdGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL21lc3NhZ2VzLnByb3BlcnRpZXMgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvbWVzc2FnZXMucHJvcGVydGllcwppbmRleCAwODMzOWE5Li4yOTQ2YjdjIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvbWVzc2FnZXMucHJvcGVydGllcworKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvbWVzc2FnZXMucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvQ2FsbHNDb21wYXJhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL0NhbGxzQ29tcGFyYXRvci5qYXZhCmluZGV4IGIxYWU0YjUuLjgzYjFlMzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvQ2FsbHNDb21wYXJhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9DYWxsc0NvbXBhcmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL0V4cG9ydERpYWxvZy5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9FeHBvcnREaWFsb2cuamF2YQppbmRleCAyNWU5Zjc3Li5lOGY1YjdmIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL0V4cG9ydERpYWxvZy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvRXhwb3J0RGlhbG9nLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9NZW1vcnlDb21wYXJhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL01lbW9yeUNvbXBhcmF0b3IuamF2YQppbmRleCBkMDNhODk2Li5iNGI5ZDljIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL01lbW9yeUNvbXBhcmF0b3IuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL01lbW9yeUNvbXBhcmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL05hbWVDb21wYXJhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL05hbWVDb21wYXJhdG9yLmphdmEKaW5kZXggMzkxMzIzOS4uOWM4Yjg5NSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9OYW1lQ29tcGFyYXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvTmFtZUNvbXBhcmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL05hdGl2ZU9wZXJhdGlvbkZpbHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9OYXRpdmVPcGVyYXRpb25GaWx0ZXIuamF2YQppbmRleCAzNWY3ZDkzLi5lNjA1MGU4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL05hdGl2ZU9wZXJhdGlvbkZpbHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvTmF0aXZlT3BlcmF0aW9uRmlsdGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Qcm9maWxpbmdEYXRhVGFibGVDb250ZW50UHJvdmlkZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvUHJvZmlsaW5nRGF0YVRhYmxlQ29udGVudFByb3ZpZGVyLmphdmEKaW5kZXggOGNkMDZhNi4uNjg2ODgxOCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Qcm9maWxpbmdEYXRhVGFibGVDb250ZW50UHJvdmlkZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1Byb2ZpbGluZ0RhdGFUYWJsZUNvbnRlbnRQcm92aWRlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA4LDIwMDkgQ29tbXVuaWNhdGlvbiAmIFN5c3RlbXMuCiAgKgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBBcm5hdWQgR2l1bGlhbmkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvUHJvZmlsaW5nRGF0YVRhYmxlTGFiZWxQcm92aWRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Qcm9maWxpbmdEYXRhVGFibGVMYWJlbFByb3ZpZGVyLmphdmEKaW5kZXggYzYwODk0My4uYmRlMGY1YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Qcm9maWxpbmdEYXRhVGFibGVMYWJlbFByb3ZpZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Qcm9maWxpbmdEYXRhVGFibGVMYWJlbFByb3ZpZGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsMjAwOSBDb21tdW5pY2F0aW9uICYgU3lzdGVtcy4KICAqCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEFybmF1ZCBHaXVsaWFuaSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Qcm9maWxpbmdEYXRhVGFibGVWaWV3LmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1Byb2ZpbGluZ0RhdGFUYWJsZVZpZXcuamF2YQppbmRleCAxOTI1NjFlLi5lMGEyNGUwIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1Byb2ZpbGluZ0RhdGFUYWJsZVZpZXcuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1Byb2ZpbGluZ0RhdGFUYWJsZVZpZXcuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1RpbWVDb21wYXJhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1RpbWVDb21wYXJhdG9yLmphdmEKaW5kZXggYjVhNGQ3ZC4uN2MxOTc3YyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9UaW1lQ29tcGFyYXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvVGltZUNvbXBhcmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1RvdGFsSW5zdHJ1Y3Rpb25Db21wYXJhdG9yLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudWkvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdWkvcHJvZmlsaW5nZGF0YXRhYmxlL1RvdGFsSW5zdHJ1Y3Rpb25Db21wYXJhdG9yLmphdmEKaW5kZXggY2Q2M2FlMS4uMjdlNzkxZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnVpL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3VpL3Byb2ZpbGluZ2RhdGF0YWJsZS9Ub3RhbEluc3RydWN0aW9uQ29tcGFyYXRvci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci51aS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci91aS9wcm9maWxpbmdkYXRhdGFibGUvVG90YWxJbnN0cnVjdGlvbkNvbXBhcmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC51aS5wcmVmcyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCmluZGV4IGUwM2Y1ZTkuLmFjNDdkOTAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuamR0LnVpLnByZWZzCkBAIC0yLDQgKzIsNCBAQAogZm9ybWF0dGVyX3Byb2ZpbGU9X0FUTAogZm9ybWF0dGVyX3NldHRpbmdzX3ZlcnNpb249MTEKIG9yZy5lY2xpcHNlLmpkdC51aS5qYXZhZG9jPWZhbHNlCi1vcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jdXN0b21fY29kZV90ZW1wbGF0ZXM9PD94bWwgKiBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby5cclxuICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xyXG4gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcclxuICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcclxuICogaHR0cFw6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXHJcbiAqIFxyXG4gKiBDb250cmlidXRvcnNcOlxyXG4gKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvblxyXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJ0eXBlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgY3JlYXRlZCB0eXBlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy50eXBlY29tbWVudCIgbmFtZVw9InR5cGVjb21tZW50Ij4vKipcclxuICogQGF1dGhvciAke3VzZXJ9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9ImZpZWxkY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3IgZmllbGRzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmZpZWxkY29tbWVudCIgbmFtZVw9ImZpZWxkY29tbWVudCI+LyoqICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBub24tb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGNvbW1lbnQiIG5hbWVcPSJtZXRob2Rjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0iZmFsc2UiIGNvbnRleHRcPSJvdmVycmlkZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG92ZXJyaWRpbmcgbWV0aG9kcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5vdmVycmlkZWNvbW1lbnQiIG5hbWVcPSJvdmVycmlkZWNvbW1lbnQiPi8qKlxyXG4gKiB7QGluaGVyaXREb2N9XHJcbiAqXHJcbiAqICR7c2VlX3RvX292ZXJyaWRkZW59XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZGVsZWdhdGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBkZWxlZ2F0ZSBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmRlbGVnYXRlY29tbWVudCIgbmFtZVw9ImRlbGVnYXRlY29tbWVudCI+LyoqXHJcbiAqICR7dGFnc31cclxuICogJHtzZWVfdG9fdGFyZ2V0fVxyXG4gKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im5ld3R5cGVfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9Ik5ld2x5IGNyZWF0ZWQgZmlsZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubmV3dHlwZSIgbmFtZVw9Im5ld3R5cGUiPiR7ZmlsZWNvbW1lbnR9XHJcbiR7cGFja2FnZV9kZWNsYXJhdGlvbn1cclxuXHJcbiR7dHlwZWNvbW1lbnR9XHJcbiR7dHlwZV9kZWNsYXJhdGlvbn08L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNsYXNzYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2xhc3MgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY2xhc3Nib2R5IiBuYW1lXD0iY2xhc3Nib2R5Ij5cclxuPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJpbnRlcmZhY2Vib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBpbnRlcmZhY2UgdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuaW50ZXJmYWNlYm9keSIgbmFtZVw9ImludGVyZmFjZWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImVudW1ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBlbnVtIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmVudW1ib2R5IiBuYW1lXD0iZW51bWJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImFubm90YXRpb25ib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBhbm5vdGF0aW9uIHR5cGUgYm9kaWVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmFubm90YXRpb25ib2R5IiBuYW1lXD0iYW5ub3RhdGlvbmJvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImNhdGNoYmxvY2tfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGNhdGNoIGJsb2NrcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jYXRjaGJsb2NrIiBuYW1lXD0iY2F0Y2hibG9jayI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBjYXRjaCBibG9ja1xyXG4ke2V4Y2VwdGlvbl92YXJ9LnByaW50U3RhY2tUcmFjZSgpOzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibWV0aG9kYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIG1ldGhvZCBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5tZXRob2Rib2R5IiBuYW1lXD0ibWV0aG9kYm9keSI+Ly8gJHt0b2RvfSBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1YlxyXG4ke2JvZHlfc3RhdGVtZW50fTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY29uc3RydWN0b3Jib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgY29uc3RydWN0b3Igc3R1YnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuY29uc3RydWN0b3Jib2R5IiBuYW1lXD0iY29uc3RydWN0b3Jib2R5Ij4ke2JvZHlfc3RhdGVtZW50fVxyXG4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNvbnN0cnVjdG9yIHN0dWI8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImdldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBnZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmdldHRlcmJvZHkiIG5hbWVcPSJnZXR0ZXJib2R5Ij5yZXR1cm4gJHtmaWVsZH07PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJzZXR0ZXJib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgc2V0dGVycyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5zZXR0ZXJib2R5IiBuYW1lXD0ic2V0dGVyYm9keSI+JHtmaWVsZH0gXD0gJHtwYXJhbX07PC90ZW1wbGF0ZT48L3RlbXBsYXRlcz4KK29yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmN1c3RvbV9jb2RlX3RlbXBsYXRlcz08P3htbCAqIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLlxyXG4gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXHJcbiAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxyXG4gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdFxyXG4gKiBodHRwc1w6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cclxuICogXHJcbiAqIENvbnRyaWJ1dG9yc1w6XHJcbiAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uXHJcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9InR5cGVjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBjcmVhdGVkIHR5cGVzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnR5cGVjb21tZW50IiBuYW1lXD0idHlwZWNvbW1lbnQiPi8qKlxyXG4gKiBAYXV0aG9yICR7dXNlcn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9ImZhbHNlIiBjb250ZXh0XD0iZmllbGRjb21tZW50X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb21tZW50IGZvciBmaWVsZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmllbGRjb21tZW50IiBuYW1lXD0iZmllbGRjb21tZW50Ij4vKiogKi88L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9Im1ldGhvZGNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIG5vbi1vdmVycmlkaW5nIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMubWV0aG9kY29tbWVudCIgbmFtZVw9Im1ldGhvZGNvbW1lbnQiPi8qKlxyXG4gKiAke3RhZ3N9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJmYWxzZSIgY29udGV4dFw9Im92ZXJyaWRlY29tbWVudF9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29tbWVudCBmb3Igb3ZlcnJpZGluZyBtZXRob2RzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm92ZXJyaWRlY29tbWVudCIgbmFtZVw9Im92ZXJyaWRlY29tbWVudCI+LyoqXHJcbiAqIHtAaW5oZXJpdERvY31cclxuICpcclxuICogJHtzZWVfdG9fb3ZlcnJpZGRlbn1cclxuICovPC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJkZWxlZ2F0ZWNvbW1lbnRfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvbW1lbnQgZm9yIGRlbGVnYXRlIG1ldGhvZHMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZGVsZWdhdGVjb21tZW50IiBuYW1lXD0iZGVsZWdhdGVjb21tZW50Ij4vKipcclxuICogJHt0YWdzfVxyXG4gKiAke3NlZV90b190YXJnZXR9XHJcbiAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0ibmV3dHlwZV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iTmV3bHkgY3JlYXRlZCBmaWxlcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5uZXd0eXBlIiBuYW1lXD0ibmV3dHlwZSI+JHtmaWxlY29tbWVudH1cclxuJHtwYWNrYWdlX2RlY2xhcmF0aW9ufVxyXG5cclxuJHt0eXBlY29tbWVudH1cclxuJHt0eXBlX2RlY2xhcmF0aW9ufTwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2xhc3Nib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIG5ldyBjbGFzcyB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jbGFzc2JvZHkiIG5hbWVcPSJjbGFzc2JvZHkiPlxyXG48L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9ImludGVyZmFjZWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGludGVyZmFjZSB0eXBlIGJvZGllcyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5pbnRlcmZhY2Vib2R5IiBuYW1lXD0iaW50ZXJmYWNlYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZW51bWJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGVudW0gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZW51bWJvZHkiIG5hbWVcPSJlbnVtYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iYW5ub3RhdGlvbmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gbmV3IGFubm90YXRpb24gdHlwZSBib2RpZXMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuYW5ub3RhdGlvbmJvZHkiIG5hbWVcPSJhbm5vdGF0aW9uYm9keSI+XHJcbjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iY2F0Y2hibG9ja19jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBuZXcgY2F0Y2ggYmxvY2tzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLmNhdGNoYmxvY2siIG5hbWVcPSJjYXRjaGJsb2NrIj4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIGNhdGNoIGJsb2NrXHJcbiR7ZXhjZXB0aW9uX3Zhcn0ucHJpbnRTdGFja1RyYWNlKCk7PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJtZXRob2Rib2R5X2NvbnRleHQiIGRlbGV0ZWRcPSJmYWxzZSIgZGVzY3JpcHRpb25cPSJDb2RlIGluIGNyZWF0ZWQgbWV0aG9kIHN0dWJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLm1ldGhvZGJvZHkiIG5hbWVcPSJtZXRob2Rib2R5Ij4vLyAke3RvZG99IEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViXHJcbiR7Ym9keV9zdGF0ZW1lbnR9PC90ZW1wbGF0ZT48dGVtcGxhdGUgYXV0b2luc2VydFw9InRydWUiIGNvbnRleHRcPSJjb25zdHJ1Y3RvcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBjb25zdHJ1Y3RvciBzdHVicyIgZW5hYmxlZFw9InRydWUiIGlkXD0ib3JnLmVjbGlwc2UuamR0LnVpLnRleHQuY29kZXRlbXBsYXRlcy5jb25zdHJ1Y3RvcmJvZHkiIG5hbWVcPSJjb25zdHJ1Y3RvcmJvZHkiPiR7Ym9keV9zdGF0ZW1lbnR9XHJcbi8vICR7dG9kb30gQXV0by1nZW5lcmF0ZWQgY29uc3RydWN0b3Igc3R1YjwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnRcPSJ0cnVlIiBjb250ZXh0XD0iZ2V0dGVyYm9keV9jb250ZXh0IiBkZWxldGVkXD0iZmFsc2UiIGRlc2NyaXB0aW9uXD0iQ29kZSBpbiBjcmVhdGVkIGdldHRlcnMiIGVuYWJsZWRcPSJ0cnVlIiBpZFw9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZ2V0dGVyYm9keSIgbmFtZVw9ImdldHRlcmJvZHkiPnJldHVybiAke2ZpZWxkfTs8L3RlbXBsYXRlPjx0ZW1wbGF0ZSBhdXRvaW5zZXJ0XD0idHJ1ZSIgY29udGV4dFw9InNldHRlcmJvZHlfY29udGV4dCIgZGVsZXRlZFw9ImZhbHNlIiBkZXNjcmlwdGlvblw9IkNvZGUgaW4gY3JlYXRlZCBzZXR0ZXJzIiBlbmFibGVkXD0idHJ1ZSIgaWRcPSJvcmcuZWNsaXBzZS5qZHQudWkudGV4dC5jb2RldGVtcGxhdGVzLnNldHRlcmJvZHkiIG5hbWVcPSJzZXR0ZXJib2R5Ij4ke2ZpZWxkfSBcPSAke3BhcmFtfTs8L3RlbXBsYXRlPjwvdGVtcGxhdGVzPgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vYWJvdXQuaHRtbAppbmRleCAyZjBkY2Q3Li4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5KdW5lIDI0LCAyMDA4PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS9wb20ueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3BvbS54bWwKaW5kZXggNDg4MzVhZC4uNTZhZmU5ZCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3BvbS54bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vUHJvZmlsZXJMYXVuY2hlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3ZtL1Byb2ZpbGVyTGF1bmNoZXIuamF2YQppbmRleCBmZTJlOGJlLi42OWU3YzYxIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vUHJvZmlsZXJMYXVuY2hlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci92bS9Qcm9maWxlckxhdW5jaGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3ZtL1Byb2ZpbGluZ0RlYnVnZ2VyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vUHJvZmlsaW5nRGVidWdnZXIuamF2YQppbmRleCAwZDMyOWQ3Li4zMTM3MmM5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vUHJvZmlsaW5nRGVidWdnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vUHJvZmlsaW5nRGVidWdnZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOCwyMDA5IENvbW11bmljYXRpb24gJiBTeXN0ZW1zLgogICoKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgQXJuYXVkIEdpdWxpYW5pIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vYWRhcHRlci9PcGVyYXRpb25BZGFwdGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vYWRhcHRlci9PcGVyYXRpb25BZGFwdGVyLmphdmEKaW5kZXggNDExYWYwMy4uYjUzNDJlNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3ZtL2FkYXB0ZXIvT3BlcmF0aW9uQWRhcHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci92bS9hZGFwdGVyL09wZXJhdGlvbkFkYXB0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vYWRhcHRlci9TdGFja0ZyYW1lQWRhcHRlci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnByb2ZpbGVyLnZtL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Byb2ZpbGVyL3ZtL2FkYXB0ZXIvU3RhY2tGcmFtZUFkYXB0ZXIuamF2YQppbmRleCAxZmIzODAwLi5mYzVjNzM3IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucHJvZmlsZXIudm0vc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcHJvZmlsZXIvdm0vYWRhcHRlci9TdGFja0ZyYW1lQWRhcHRlci5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5wcm9maWxlci52bS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9wcm9maWxlci92bS9hZGFwdGVyL1N0YWNrRnJhbWVBZGFwdGVyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA5LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNkay1mZWF0dXJlL2NvcHlyaWdodC50eHQgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvY29weXJpZ2h0LnR4dAppbmRleCA4ZGU1YzRiLi5kZjdiZTQ5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvY29weXJpZ2h0LnR4dAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvY29weXJpZ2h0LnR4dApAQCAtMSw4ICsxLDggQEAKIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIAogQ29udHJpYnV0b3JzOgogICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9lcGwtdjEwLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvZXBsLXYxMC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmOTU3ZjNlLi4wMDAwMDAwCi0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNTkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFsLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25hbC5kdGQiPgotPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA0MSlodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCAtLT4KLTxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLQotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgotICBib2R5IHsKLSAgICBzaXplOiA4LjVpbiAxMS4waW47Ci0gICAgbWFyZ2luOiAwLjI1aW4gMC41aW4gMC4yNWluIDAuNWluOwotICAgIHRhYi1pbnRlcnZhbDogMC41aW47Ci0gICAgfQotICBwIHsgIAkKLSAgICBtYXJnaW4tbGVmdDogYXV0bzsKLSAgICBtYXJnaW4tdG9wOiAgMC41ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07Ci0gICAgfQotICBwLmxpc3QgewotICAJbWFyZ2luLWxlZnQ6IDAuNWluOwotICAgIG1hcmdpbi10b3A6ICAwLjA1ZW07Ci0gICAgbWFyZ2luLWJvdHRvbTogMC4wNWVtOwotICAgIH0KLSAgPC9zdHlsZT4KLQotPHN0eWxlIHR5cGU9InRleHQvY3NzIj48L3N0eWxlPjwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiPgotCi08aDI+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMS4wPC9oMj4KLQotPHA+VEhFIEFDQ09NUEFOWUlORyBQUk9HUkFNIElTIFBST1ZJREVEIFVOREVSIFRIRSBURVJNUyBPRiBUSElTIEVDTElQU0UKLVBVQkxJQyBMSUNFTlNFICgiQUdSRUVNRU5UIikuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUgotRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUwotQUdSRUVNRU5ULjwvcD4KLQotPHA+PGI+MS4gREVGSU5JVElPTlM8L2I+PC9wPgotCi08cD4iQ29udHJpYnV0aW9uIiBtZWFuczo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwKLWNvZGUgYW5kIGRvY3VtZW50YXRpb24gZGlzdHJpYnV0ZWQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9wPgotPHAgY2xhc3M9Imxpc3QiPmkpIGNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvcD4KLTxwIGNsYXNzPSJsaXN0Ij5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvcD4KLTxwIGNsYXNzPSJsaXN0Ij53aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbQotb3JpZ2luYXRlIGZyb20gYW5kIGFyZSBkaXN0cmlidXRlZCBieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEKLUNvbnRyaWJ1dGlvbiAnb3JpZ2luYXRlcycgZnJvbSBhIENvbnRyaWJ1dG9yIGlmIGl0IHdhcyBhZGRlZCB0byB0aGUKLVByb2dyYW0gYnkgc3VjaCBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoCi1Db250cmlidXRvcidzIGJlaGFsZi4gQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBhZGRpdGlvbnMgdG8gdGhlCi1Qcm9ncmFtIHdoaWNoOiAoaSkgYXJlIHNlcGFyYXRlIG1vZHVsZXMgb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQgaW4KLWNvbmp1bmN0aW9uIHdpdGggdGhlIFByb2dyYW0gdW5kZXIgdGhlaXIgb3duIGxpY2Vuc2UgYWdyZWVtZW50LCBhbmQgKGlpKQotYXJlIG5vdCBkZXJpdmF0aXZlIHdvcmtzIG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IkNvbnRyaWJ1dG9yIiBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IGRpc3RyaWJ1dGVzCi10aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJMaWNlbnNlZCBQYXRlbnRzIiBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhCi1Db250cmlidXRvciB3aGljaCBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMKLUNvbnRyaWJ1dGlvbiBhbG9uZSBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uPC9wPgotCi08cD4iUHJvZ3JhbSIgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgZGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZQotd2l0aCB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPiJSZWNpcGllbnQiIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIKLXRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYWxsIENvbnRyaWJ1dG9ycy48L3A+Ci0KLTxwPjxiPjIuIEdSQU5UIE9GIFJJR0hUUzwvYj48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaAotQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsCi1yb3lhbHR5LWZyZWUgY29weXJpZ2h0IGxpY2Vuc2UgdG8gcmVwcm9kdWNlLCBwcmVwYXJlIGRlcml2YXRpdmUgd29ya3MKLW9mLCBwdWJsaWNseSBkaXNwbGF5LCBwdWJsaWNseSBwZXJmb3JtLCBkaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZQotQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggZGVyaXZhdGl2ZSB3b3JrcywgaW4KLXNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZSBmb3JtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoCi1Db250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKLXJveWFsdHktZnJlZSBwYXRlbnQgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwKLW9mZmVyIHRvIHNlbGwsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHRyYW5zZmVyIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAotQ29udHJpYnV0b3IsIGlmIGFueSwgaW4gc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uIFRoaXMgcGF0ZW50Ci1saWNlbnNlIHNoYWxsIGFwcGx5IHRvIHRoZSBjb21iaW5hdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGFuZCB0aGUKLVByb2dyYW0gaWYsIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLAotc3VjaCBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKLWJ5IHRoZSBMaWNlbnNlZCBQYXRlbnRzLiBUaGUgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwgbm90IGFwcGx5IHRvIGFueSBvdGhlcgotY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyIHNlIGlzCi1saWNlbnNlZCBoZXJldW5kZXIuPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvcgotZ3JhbnRzIHRoZSBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzCi1hcmUgcHJvdmlkZWQgYnkgYW55IENvbnRyaWJ1dG9yIHRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlCi1wYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoCi1Db250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcyBicm91Z2h0IGJ5Ci1hbnkgb3RoZXIgZW50aXR5IGJhc2VkIG9uIGluZnJpbmdlbWVudCBvZiBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzCi1vciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cyBhbmQgbGljZW5zZXMKLWdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlIHJlc3BvbnNpYmlsaXR5IHRvCi1zZWN1cmUgYW55IG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgbmVlZGVkLCBpZiBhbnkuIEZvcgotZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0byBhbGxvdyBSZWNpcGllbnQKLXRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUKLXRoYXQgbGljZW5zZSBiZWZvcmUgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtLjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQKLWhhcyBzdWZmaWNpZW50IGNvcHlyaWdodCByaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudAotdGhlIGNvcHlyaWdodCBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC48L3A+Ci0KLTxwPjxiPjMuIFJFUVVJUkVNRU5UUzwvYj48L3A+Ci0KLTxwPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGluIG9iamVjdCBjb2RlCi1mb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcwotQWdyZWVtZW50OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBpdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgQ29udHJpYnV0b3JzCi1hbGwgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKLW9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMgb3IKLWNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMKLWFsbCBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLAotaW5jaWRlbnRhbCBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czs8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5paWkpIHN0YXRlcyB0aGF0IGFueSBwcm92aXNpb25zIHdoaWNoIGRpZmZlciBmcm9tIHRoaXMKLUFncmVlbWVudCBhcmUgb2ZmZXJlZCBieSB0aGF0IENvbnRyaWJ1dG9yIGFsb25lIGFuZCBub3QgYnkgYW55IG90aGVyCi1wYXJ0eTsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+aXYpIHN0YXRlcyB0aGF0IHNvdXJjZSBjb2RlIGZvciB0aGUgUHJvZ3JhbSBpcyBhdmFpbGFibGUKLWZyb20gc3VjaCBDb250cmlidXRvciwgYW5kIGluZm9ybXMgbGljZW5zZWVzIGhvdyB0byBvYnRhaW4gaXQgaW4gYQotcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZQotZXhjaGFuZ2UuPC9wPgotCi08cD5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZSBjb2RlIGZvcm06PC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50IG11c3QgYmUgaW5jbHVkZWQgd2l0aCBlYWNoCi1jb3B5IG9mIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+Q29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQgbm90aWNlcyBjb250YWluZWQKLXdpdGhpbiB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPkVhY2ggQ29udHJpYnV0b3IgbXVzdCBpZGVudGlmeSBpdHNlbGYgYXMgdGhlIG9yaWdpbmF0b3Igb2YgaXRzCi1Db250cmlidXRpb24sIGlmIGFueSwgaW4gYSBtYW5uZXIgdGhhdCByZWFzb25hYmx5IGFsbG93cyBzdWJzZXF1ZW50Ci1SZWNpcGllbnRzIHRvIGlkZW50aWZ5IHRoZSBvcmlnaW5hdG9yIG9mIHRoZSBDb250cmlidXRpb24uPC9wPgotCi08cD48Yj40LiBDT01NRVJDSUFMIERJU1RSSUJVVElPTjwvYj48L3A+Ci0KLTxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbgotcmVzcG9uc2liaWxpdGllcyB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlCi1saWtlLiBXaGlsZSB0aGlzIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YKLXRoZSBQcm9ncmFtLCB0aGUgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZyBzaG91bGQgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlCi1wb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlciBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvcgotaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IKLSgiQ29tbWVyY2lhbCBDb250cmlidXRvciIpIGhlcmVieSBhZ3JlZXMgdG8gZGVmZW5kIGFuZAotaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yICgiSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IiKQotYWdhaW5zdCBhbnkgbG9zc2VzLCBkYW1hZ2VzIGFuZCBjb3N0cyAoY29sbGVjdGl2ZWx5ICJMb3NzZXMiKQotYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMgYnJvdWdodCBieSBhIHRoaXJkCi1wYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50IGNhdXNlZCBieSB0aGUKLWFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uIHdpdGggaXRzCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuIFRoZQotb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluCi1vcmRlciB0byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkKLXRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZQotQ29tbWVyY2lhbCBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluLCB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZQotSW5kZW1uaWZpZWQgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24KLWV4cGVuc2UuPC9wPgotCi08cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbAotcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYSBDb21tZXJjaWFsCi1Db250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKLWNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlCi1jbGFpbXMgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5Ci1hbG9uZS4gVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvCi1kZWZlbmQgY2xhaW1zIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlCi1wZXJmb3JtYW5jZSBjbGFpbXMgYW5kIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlcgotQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvcgotbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy48L3A+Ci0KLTxwPjxiPjUuIE5PIFdBUlJBTlRZPC9iPjwvcD4KLQotPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIFRIRSBQUk9HUkFNIElTCi1QUk9WSURFRCBPTiBBTiAiQVMgSVMiIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUwotT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sCi1BTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFkKLU9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcyBzb2xlbHkKLXJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAotZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCi1leGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgLCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvCi10aGUgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLAotZGFtYWdlIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKLWludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLjwvcD4KLQotPHA+PGI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2I+PC9wPgotCi08cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgTkVJVEhFUiBSRUNJUElFTlQKLU5PUiBBTlkgQ09OVFJJQlVUT1JTIFNIQUxMIEhBVkUgQU5ZIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCi1JTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HCi1XSVRIT1VUIExJTUlUQVRJT04gTE9TVCBQUk9GSVRTKSwgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YKLUxJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HCi1ORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gT1IgVEhFIEVYRVJDSVNFIE9GIEFOWSBSSUdIVFMgR1JBTlRFRAotSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy48L3A+Ci0KLTxwPjxiPjcuIEdFTkVSQUw8L2I+PC9wPgotCi08cD5JZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGlzIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgotYXBwbGljYWJsZSBsYXcsIGl0IHNoYWxsIG5vdCBhZmZlY3QgdGhlIHZhbGlkaXR5IG9yIGVuZm9yY2VhYmlsaXR5IG9mCi10aGUgcmVtYWluZGVyIG9mIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgYW5kIHdpdGhvdXQgZnVydGhlciBhY3Rpb24KLWJ5IHRoZSBwYXJ0aWVzIGhlcmV0bywgc3VjaCBwcm92aXNpb24gc2hhbGwgYmUgcmVmb3JtZWQgdG8gdGhlIG1pbmltdW0KLWV4dGVudCBuZWNlc3NhcnkgdG8gbWFrZSBzdWNoIHByb3Zpc2lvbiB2YWxpZCBhbmQgZW5mb3JjZWFibGUuPC9wPgotCi08cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkKLShpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZQotUHJvZ3JhbSBpdHNlbGYgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlcgotc29mdHdhcmUgb3IgaGFyZHdhcmUpIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoCi1SZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZCB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZQotZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuPC9wPgotCi08cD5BbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50IHNoYWxsIHRlcm1pbmF0ZSBpZiBpdAotZmFpbHMgdG8gY29tcGx5IHdpdGggYW55IG9mIHRoZSBtYXRlcmlhbCB0ZXJtcyBvciBjb25kaXRpb25zIG9mIHRoaXMKLUFncmVlbWVudCBhbmQgZG9lcyBub3QgY3VyZSBzdWNoIGZhaWx1cmUgaW4gYSByZWFzb25hYmxlIHBlcmlvZCBvZiB0aW1lCi1hZnRlciBiZWNvbWluZyBhd2FyZSBvZiBzdWNoIG5vbmNvbXBsaWFuY2UuIElmIGFsbCBSZWNpcGllbnQncyByaWdodHMKLXVuZGVyIHRoaXMgQWdyZWVtZW50IHRlcm1pbmF0ZSwgUmVjaXBpZW50IGFncmVlcyB0byBjZWFzZSB1c2UgYW5kCi1kaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYXMgc29vbiBhcyByZWFzb25hYmx5IHByYWN0aWNhYmxlLiBIb3dldmVyLAotUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYW5kIGFueSBsaWNlbnNlcyBncmFudGVkIGJ5Ci1SZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlIFByb2dyYW0gc2hhbGwgY29udGludWUgYW5kIHN1cnZpdmUuPC9wPgotCi08cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcwotQWdyZWVtZW50LCBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzCi1jb3B5cmlnaHRlZCBhbmQgbWF5IG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZQotQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcKLXJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZQotQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodCB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlCi1Gb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudCBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heQotYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcyB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYQotc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZQotZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0gKGluY2x1ZGluZwotQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mIHRoZQotQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24KLW9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUKLVByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMKLWV4cHJlc3NseSBzdGF0ZWQgaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vCi1yaWdodHMgb3IgbGljZW5zZXMgdG8gdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIKLXRoaXMgQWdyZWVtZW50LCB3aGV0aGVyIGV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yCi1vdGhlcndpc2UuIEFsbCByaWdodHMgaW4gdGhlIFByb2dyYW0gbm90IGV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMKLUFncmVlbWVudCBhcmUgcmVzZXJ2ZWQuPC9wPgotCi08cD5UaGlzIEFncmVlbWVudCBpcyBnb3Zlcm5lZCBieSB0aGUgbGF3cyBvZiB0aGUgU3RhdGUgb2YgTmV3IFlvcmsgYW5kCi10aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGxhd3Mgb2YgdGhlIFVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYS4gTm8gcGFydHkKLXRvIHRoaXMgQWdyZWVtZW50IHdpbGwgYnJpbmcgYSBsZWdhbCBhY3Rpb24gdW5kZXIgdGhpcyBBZ3JlZW1lbnQgbW9yZQotdGhhbiBvbmUgeWVhciBhZnRlciB0aGUgY2F1c2Ugb2YgYWN0aW9uIGFyb3NlLiBFYWNoIHBhcnR5IHdhaXZlcyBpdHMKLXJpZ2h0cyB0byBhIGp1cnkgdHJpYWwgaW4gYW55IHJlc3VsdGluZyBsaXRpZ2F0aW9uLjwvcD4KLQotCi0KLTwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNkay1mZWF0dXJlL2VwbC12MjAuaHRtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9lcGwtdjIwLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTlhODM4OAotLS0gL2Rldi9udWxsCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9lcGwtdjIwLmh0bWwKQEAgLTAsMCArMSwzMDAgQEAKKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KKzwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNTgpaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvb3JnL2RvY3VtZW50cy9lcGwtMi4wL0VQTC0yLjAuaHRtbCAtLT4KKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWw6bGFuZz0iZW4iIGxhbmc9ImVuIj48aGVhZD48bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCI+CisgICAgCisgICAgPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDIuMDwvdGl0bGU+CisgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDEuNWVtIDNlbTsKKyAgICAgIH0KKyAgICAgIGgxeworICAgICAgICBmb250LXNpemU6MS41ZW07CisgICAgICB9CisgICAgICBoMnsKKyAgICAgICAgZm9udC1zaXplOjFlbTsKKyAgICAgICAgbWFyZ2luLWJvdHRvbTowLjVlbTsKKyAgICAgICAgbWFyZ2luLXRvcDoxZW07CisgICAgICB9CisgICAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogIDAuNWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKKyAgICAgIH0KKyAgICAgIHVsLCBvbHsKKyAgICAgICAgbGlzdC1zdHlsZS10eXBlOm5vbmU7CisgICAgICB9CisgICAgPC9zdHlsZT4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8aDE+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIHYgMi4wPC9oMT4KKyAgICA8cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQorICAgICAgUFVCTElDIExJQ0VOU0UgKOKAnEFHUkVFTUVOVOKAnSkuIEFOWSBVU0UsIFJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04KKyAgICAgIE9GIFRIRSBQUk9HUkFNIENPTlNUSVRVVEVTIFJFQ0lQSUVOVCdTIEFDQ0VQVEFOQ0UgT0YgVEhJUyBBR1JFRU1FTlQuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGVmaW5pdGlvbnMiPjEuIERFRklOSVRJT05TPC9oMj4KKyAgICA8cD7igJxDb250cmlidXRpb27igJ0gbWVhbnM6PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBpbiB0aGUgY2FzZSBvZiB0aGUgaW5pdGlhbCBDb250cmlidXRvciwgdGhlIGluaXRpYWwgY29udGVudAorICAgICAgICBEaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9saT4KKyAgICAgICAgICA8bGk+aWkpIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbTs8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgICB3aGVyZSBzdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbQorICAgICAgICBhbmQgYXJlIERpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQSBDb250cmlidXRpb24KKyAgICAgICAg4oCcb3JpZ2luYXRlc+KAnSBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZSBQcm9ncmFtIGJ5IHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IgaXRzZWxmIG9yIGFueW9uZSBhY3Rpbmcgb24gc3VjaCBDb250cmlidXRvcidzIGJlaGFsZi4KKyAgICAgICAgQ29udHJpYnV0aW9ucyBkbyBub3QgaW5jbHVkZSBjaGFuZ2VzIG9yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSB0aGF0CisgICAgICAgIGFyZSBub3QgTW9kaWZpZWQgV29ya3MuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPHA+4oCcQ29udHJpYnV0b3LigJ0gbWVhbnMgYW55IHBlcnNvbiBvciBlbnRpdHkgdGhhdCBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3A+CisgICAgPHA+4oCcTGljZW5zZWQgUGF0ZW50c+KAnSBtZWFuIHBhdGVudCBjbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoCisgICAgICBhcmUgbmVjZXNzYXJpbHkgaW5mcmluZ2VkIGJ5IHRoZSB1c2Ugb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lCisgICAgICBvciB3aGVuIGNvbWJpbmVkIHdpdGggdGhlIFByb2dyYW0uCisgICAgPC9wPgorICAgIDxwPuKAnFByb2dyYW3igJ0gbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMgRGlzdHJpYnV0ZWQgaW4gYWNjb3JkYW5jZSB3aXRoIHRoaXMKKyAgICAgIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPHA+4oCcUmVjaXBpZW504oCdIG1lYW5zIGFueW9uZSB3aG8gcmVjZWl2ZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIG9yIGFueSBTZWNvbmRhcnkgTGljZW5zZSAoYXMgYXBwbGljYWJsZSksIGluY2x1ZGluZyBDb250cmlidXRvcnMuCisgICAgPC9wPgorICAgIDxwPuKAnERlcml2YXRpdmUgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2UgQ29kZSBvciBvdGhlcgorICAgICAgZm9ybSwgdGhhdCBpcyBiYXNlZCBvbiAob3IgZGVyaXZlZCBmcm9tKSB0aGUgUHJvZ3JhbSBhbmQgZm9yIHdoaWNoIHRoZQorICAgICAgZWRpdG9yaWFsIHJldmlzaW9ucywgYW5ub3RhdGlvbnMsIGVsYWJvcmF0aW9ucywgb3Igb3RoZXIgbW9kaWZpY2F0aW9ucworICAgICAgcmVwcmVzZW50LCBhcyBhIHdob2xlLCBhbiBvcmlnaW5hbCB3b3JrIG9mIGF1dGhvcnNoaXAuCisgICAgPC9wPgorICAgIDxwPuKAnE1vZGlmaWVkIFdvcmtz4oCdIHNoYWxsIG1lYW4gYW55IHdvcmsgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybSB0aGF0CisgICAgICByZXN1bHRzIGZyb20gYW4gYWRkaXRpb24gdG8sIGRlbGV0aW9uIGZyb20sIG9yIG1vZGlmaWNhdGlvbiBvZiB0aGUKKyAgICAgIGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLCBpbmNsdWRpbmcsIGZvciBwdXJwb3NlcyBvZiBjbGFyaXR5IGFueSBuZXcgZmlsZQorICAgICAgaW4gU291cmNlIENvZGUgZm9ybSB0aGF0IGNvbnRhaW5zIGFueSBjb250ZW50cyBvZiB0aGUgUHJvZ3JhbS4gTW9kaWZpZWQKKyAgICAgIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgY29udGFpbiBvbmx5IGRlY2xhcmF0aW9ucywgaW50ZXJmYWNlcywKKyAgICAgIHR5cGVzLCBjbGFzc2VzLCBzdHJ1Y3R1cmVzLCBvciBmaWxlcyBvZiB0aGUgUHJvZ3JhbSBzb2xlbHkgaW4gZWFjaCBjYXNlCisgICAgICBpbiBvcmRlciB0byBsaW5rIHRvLCBiaW5kIGJ5IG5hbWUsIG9yIHN1YmNsYXNzIHRoZSBQcm9ncmFtIG9yIE1vZGlmaWVkCisgICAgICBXb3JrcyB0aGVyZW9mLgorICAgIDwvcD4KKyAgICA8cD7igJxEaXN0cmlidXRl4oCdIG1lYW5zIHRoZSBhY3RzIG9mIGEpIGRpc3RyaWJ1dGluZyBvciBiKSBtYWtpbmcgYXZhaWxhYmxlCisgICAgICBpbiBhbnkgbWFubmVyIHRoYXQgZW5hYmxlcyB0aGUgdHJhbnNmZXIgb2YgYSBjb3B5LgorICAgIDwvcD4KKyAgICA8cD7igJxTb3VyY2UgQ29kZeKAnSBtZWFucyB0aGUgZm9ybSBvZiBhIFByb2dyYW0gcHJlZmVycmVkIGZvciBtYWtpbmcKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gc29mdHdhcmUgc291cmNlIGNvZGUsCisgICAgICBkb2N1bWVudGF0aW9uIHNvdXJjZSwgYW5kIGNvbmZpZ3VyYXRpb24gZmlsZXMuCisgICAgPC9wPgorICAgIDxwPuKAnFNlY29uZGFyeSBMaWNlbnNl4oCdIG1lYW5zIGVpdGhlciB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCisgICAgICBWZXJzaW9uIDIuMCwgb3IgYW55IGxhdGVyIHZlcnNpb25zIG9mIHRoYXQgbGljZW5zZSwgaW5jbHVkaW5nIGFueQorICAgICAgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGFzIGlkZW50aWZpZWQgYnkgdGhlIGluaXRpYWwKKyAgICAgIENvbnRyaWJ1dG9yLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdyYW50LW9mLXJpZ2h0cyI+Mi4gR1JBTlQgT0YgUklHSFRTPC9oMj4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwgcHVibGljbHkgZGlzcGxheSwKKyAgICAgICAgcHVibGljbHkgcGVyZm9ybSwgRGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKKyAgICAgICAgQ29udHJpYnV0b3IsIGlmIGFueSwgYW5kIHN1Y2ggRGVyaXZhdGl2ZSBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5CisgICAgICAgIGdyYW50cyBSZWNpcGllbnQgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBwYXRlbnQKKyAgICAgICAgbGljZW5zZSB1bmRlciBMaWNlbnNlZCBQYXRlbnRzIHRvIG1ha2UsIHVzZSwgc2VsbCwgb2ZmZXIgdG8gc2VsbCwKKyAgICAgICAgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLAorICAgICAgICBpZiBhbnksIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyIGZvcm0uIFRoaXMgcGF0ZW50IGxpY2Vuc2Ugc2hhbGwKKyAgICAgICAgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLAorICAgICAgICBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkIGJ5IHRoZSBDb250cmlidXRvciwgc3VjaAorICAgICAgICBhZGRpdGlvbiBvZiB0aGUgQ29udHJpYnV0aW9uIGNhdXNlcyBzdWNoIGNvbWJpbmF0aW9uIHRvIGJlIGNvdmVyZWQKKyAgICAgICAgYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55CisgICAgICAgIG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlcgorICAgICAgICBzZSBpcyBsaWNlbnNlZCBoZXJldW5kZXIuCisgICAgICA8L2xpPgorICAgICAgPGxpPmMpIFJlY2lwaWVudCB1bmRlcnN0YW5kcyB0aGF0IGFsdGhvdWdoIGVhY2ggQ29udHJpYnV0b3IgZ3JhbnRzIHRoZQorICAgICAgICBsaWNlbnNlcyB0byBpdHMgQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZQorICAgICAgICBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKKyAgICAgICAgcGF0ZW50IG9yIG90aGVyIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMgb2YgYW55IG90aGVyIGVudGl0eS4KKyAgICAgICAgRWFjaCBDb250cmlidXRvciBkaXNjbGFpbXMgYW55IGxpYWJpbGl0eSB0byBSZWNpcGllbnQgZm9yIGNsYWltcworICAgICAgICBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAorICAgICAgICBwcm9wZXJ0eSByaWdodHMgb3Igb3RoZXJ3aXNlLiBBcyBhIGNvbmRpdGlvbiB0byBleGVyY2lzaW5nIHRoZSByaWdodHMKKyAgICAgICAgYW5kIGxpY2Vuc2VzIGdyYW50ZWQgaGVyZXVuZGVyLCBlYWNoIFJlY2lwaWVudCBoZXJlYnkgYXNzdW1lcyBzb2xlCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsCisgICAgICAgIGlmIGFueS4gRm9yIGV4YW1wbGUsIGlmIGEgdGhpcmQgcGFydHkgcGF0ZW50IGxpY2Vuc2UgaXMgcmVxdWlyZWQgdG8KKyAgICAgICAgYWxsb3cgUmVjaXBpZW50IHRvIERpc3RyaWJ1dGUgdGhlIFByb2dyYW0sIGl0IGlzIFJlY2lwaWVudCdzCisgICAgICAgIHJlc3BvbnNpYmlsaXR5IHRvIGFjcXVpcmUgdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uCisgICAgICA8L2xpPgorICAgICAgPGxpPmQpIEVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQKKyAgICAgICAgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50IHRoZSBjb3B5cmlnaHQKKyAgICAgICAgbGljZW5zZSBzZXQgZm9ydGggaW4gdGhpcyBBZ3JlZW1lbnQuCisgICAgICA8L2xpPgorICAgICAgPGxpPmUpIE5vdHdpdGhzdGFuZGluZyB0aGUgdGVybXMgb2YgYW55IFNlY29uZGFyeSBMaWNlbnNlLCBubyBDb250cmlidXRvcgorICAgICAgICBtYWtlcyBhZGRpdGlvbmFsIGdyYW50cyB0byBhbnkgUmVjaXBpZW50IChvdGhlciB0aGFuIHRob3NlIHNldCBmb3J0aAorICAgICAgICBpbiB0aGlzIEFncmVlbWVudCkgYXMgYSByZXN1bHQgb2Ygc3VjaCBSZWNpcGllbnQncyByZWNlaXB0IG9mIHRoZQorICAgICAgICBQcm9ncmFtIHVuZGVyIHRoZSB0ZXJtcyBvZiBhIFNlY29uZGFyeSBMaWNlbnNlIChpZiBwZXJtaXR0ZWQgdW5kZXIKKyAgICAgICAgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMykuCisgICAgICA8L2xpPgorICAgIDwvdWw+CisgICAgPGgyIGlkPSJyZXF1aXJlbWVudHMiPjMuIFJFUVVJUkVNRU5UUzwvaDI+CisgICAgPHA+My4xIElmIGEgQ29udHJpYnV0b3IgRGlzdHJpYnV0ZXMgdGhlIFByb2dyYW0gaW4gYW55IGZvcm0sIHRoZW46PC9wPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSB0aGUgUHJvZ3JhbSBtdXN0IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgYXMgU291cmNlIENvZGUsIGluCisgICAgICAgIGFjY29yZGFuY2Ugd2l0aCBzZWN0aW9uIDMuMiwgYW5kIHRoZSBDb250cmlidXRvciBtdXN0IGFjY29tcGFueQorICAgICAgICB0aGUgUHJvZ3JhbSB3aXRoIGEgc3RhdGVtZW50IHRoYXQgdGhlIFNvdXJjZSBDb2RlIGZvciB0aGUgUHJvZ3JhbQorICAgICAgICBpcyBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGFuZCBpbmZvcm1zIFJlY2lwaWVudHMgaG93IHRvCisgICAgICAgIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYSBtZWRpdW0gY3VzdG9tYXJpbHkKKyAgICAgICAgdXNlZCBmb3Igc29mdHdhcmUgZXhjaGFuZ2U7IGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT4KKyAgICAgICAgYikgdGhlIENvbnRyaWJ1dG9yIG1heSBEaXN0cmlidXRlIHRoZSBQcm9ncmFtIHVuZGVyIGEgbGljZW5zZQorICAgICAgICBkaWZmZXJlbnQgdGhhbiB0aGlzIEFncmVlbWVudCwgcHJvdmlkZWQgdGhhdCBzdWNoIGxpY2Vuc2U6CisgICAgICAgIDx1bD4KKyAgICAgICAgICA8bGk+aSkgZWZmZWN0aXZlbHkgZGlzY2xhaW1zIG9uIGJlaGFsZiBvZiBhbGwgb3RoZXIgQ29udHJpYnV0b3JzIGFsbAorICAgICAgICAgICAgd2FycmFudGllcyBhbmQgY29uZGl0aW9ucywgZXhwcmVzcyBhbmQgaW1wbGllZCwgaW5jbHVkaW5nIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUgYW5kIG5vbi1pbmZyaW5nZW1lbnQsIGFuZCBpbXBsaWVkIHdhcnJhbnRpZXMKKyAgICAgICAgICAgIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5IGFuZCBmaXRuZXNzIGZvciBhIHBhcnRpY3VsYXIgcHVycG9zZTsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paSkgZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICBsaWFiaWxpdHkgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsCisgICAgICAgICAgICBhbmQgY29uc2VxdWVudGlhbCBkYW1hZ2VzLCBzdWNoIGFzIGxvc3QgcHJvZml0czsKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5paWkpIGRvZXMgbm90IGF0dGVtcHQgdG8gbGltaXQgb3IgYWx0ZXIgdGhlIHJlY2lwaWVudHMnIHJpZ2h0cyBpbiB0aGUKKyAgICAgICAgICAgIFNvdXJjZSBDb2RlIHVuZGVyIHNlY3Rpb24gMy4yOyBhbmQKKyAgICAgICAgICA8L2xpPgorICAgICAgICAgIDxsaT5pdikgcmVxdWlyZXMgYW55IHN1YnNlcXVlbnQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGJ5IGFueSBwYXJ0eQorICAgICAgICAgICAgdG8gYmUgdW5kZXIgYSBsaWNlbnNlIHRoYXQgc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBzZWN0aW9uIDMuCisgICAgICAgICAgPC9saT4KKyAgICAgICAgPC91bD4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjIgV2hlbiB0aGUgUHJvZ3JhbSBpcyBEaXN0cmlidXRlZCBhcyBTb3VyY2UgQ29kZTo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGl0IG11c3QgYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIG9yIGlmIHRoZSBQcm9ncmFtIChpKQorICAgICAgICBpcyBjb21iaW5lZCB3aXRoIG90aGVyIG1hdGVyaWFsIGluIGEgc2VwYXJhdGUgZmlsZSBvciBmaWxlcyBtYWRlIGF2YWlsYWJsZQorICAgICAgICB1bmRlciBhIFNlY29uZGFyeSBMaWNlbnNlLCBhbmQgKGlpKSB0aGUgaW5pdGlhbCBDb250cmlidXRvciBhdHRhY2hlZCB0bworICAgICAgICB0aGUgU291cmNlIENvZGUgdGhlIG5vdGljZSBkZXNjcmliZWQgaW4gRXhoaWJpdCBBIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgICB0aGVuIHRoZSBQcm9ncmFtIG1heSBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2Ygc3VjaAorICAgICAgICBTZWNvbmRhcnkgTGljZW5zZXMsIGFuZAorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS48L2xpPgorICAgIDwvdWw+CisgICAgPHA+My4zIENvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkgY29weXJpZ2h0LCBwYXRlbnQsIHRyYWRlbWFyaywKKyAgICAgIGF0dHJpYnV0aW9uIG5vdGljZXMsIGRpc2NsYWltZXJzIG9mIHdhcnJhbnR5LCBvciBsaW1pdGF0aW9ucyBvZiBsaWFiaWxpdHkKKyAgICAgICjigJhub3RpY2Vz4oCZKSBjb250YWluZWQgd2l0aGluIHRoZSBQcm9ncmFtIGZyb20gYW55IGNvcHkgb2YgdGhlIFByb2dyYW0gd2hpY2gKKyAgICAgIHRoZXkgRGlzdHJpYnV0ZSwgcHJvdmlkZWQgdGhhdCBDb250cmlidXRvcnMgbWF5IGFkZCB0aGVpciBvd24gYXBwcm9wcmlhdGUKKyAgICAgIG5vdGljZXMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iY29tbWVyY2lhbC1kaXN0cmlidXRpb24iPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9oMj4KKyAgICA8cD5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkgYWNjZXB0IGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcworICAgICAgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMgYW5kIHRoZSBsaWtlLiBXaGlsZSB0aGlzCisgICAgICBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlIG9mIHRoZSBQcm9ncmFtLCB0aGUKKyAgICAgIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZyBzaG91bGQKKyAgICAgIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwgbGlhYmlsaXR5IGZvciBvdGhlcgorICAgICAgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYQorICAgICAgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICjigJxDb21tZXJjaWFsIENvbnRyaWJ1dG9y4oCdKQorICAgICAgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlciBDb250cmlidXRvcgorICAgICAgKOKAnEluZGVtbmlmaWVkIENvbnRyaWJ1dG9y4oCdKSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzCisgICAgICAoY29sbGVjdGl2ZWx5IOKAnExvc3Nlc+KAnSkgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyIGxlZ2FsIGFjdGlvbnMKKyAgICAgIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0byB0aGUgZXh0ZW50CisgICAgICBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiBjb25uZWN0aW9uCisgICAgICB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcuCisgICAgICBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcyByZWxhdGluZworICAgICAgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyIHRvCisgICAgICBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlCisgICAgICBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsCisgICAgICBDb250cmlidXRvciB0byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sCisgICAgICB0aGUgZGVmZW5zZSBhbmQgYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZAorICAgICAgQ29udHJpYnV0b3IgbWF5IHBhcnRpY2lwYXRlIGluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS4KKyAgICA8L3A+CisgICAgPHA+Rm9yIGV4YW1wbGUsIGEgQ29udHJpYnV0b3IgbWlnaHQgaW5jbHVkZSB0aGUgUHJvZ3JhbQorICAgICAgaW4gYSBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIFByb2R1Y3QgWC4gVGhhdCBDb250cmlidXRvciBpcyB0aGVuIGEKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IuIElmIHRoYXQgQ29tbWVyY2lhbCBDb250cmlidXRvciB0aGVuIG1ha2VzIHBlcmZvcm1hbmNlCisgICAgICBjbGFpbXMsIG9yIG9mZmVycyB3YXJyYW50aWVzIHJlbGF0ZWQgdG8gUHJvZHVjdCBYLCB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMKKyAgICAgIGFuZCB3YXJyYW50aWVzIGFyZSBzdWNoIENvbW1lcmNpYWwgQ29udHJpYnV0b3IncyByZXNwb25zaWJpbGl0eSBhbG9uZS4KKyAgICAgIFVuZGVyIHRoaXMgc2VjdGlvbiwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3Igd291bGQgaGF2ZSB0byBkZWZlbmQgY2xhaW1zCisgICAgICBhZ2FpbnN0IHRoZSBvdGhlciBDb250cmlidXRvcnMgcmVsYXRlZCB0byB0aG9zZSBwZXJmb3JtYW5jZSBjbGFpbXMgYW5kCisgICAgICB3YXJyYW50aWVzLCBhbmQgaWYgYSBjb3VydCByZXF1aXJlcyBhbnkgb3RoZXIgQ29udHJpYnV0b3IgdG8gcGF5IGFueSBkYW1hZ2VzCisgICAgICBhcyBhIHJlc3VsdCwgdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgbXVzdCBwYXkgdGhvc2UgZGFtYWdlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJ3YXJyYW50eSI+NS4gTk8gV0FSUkFOVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBUSEUgUFJPR1JBTSBJUyBQUk9WSURFRCBPTiBBTiDigJxBUyBJU+KAnSBCQVNJUywgV0lUSE9VVAorICAgICAgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTUyBPUiBJTVBMSUVEIElOQ0xVRElORywKKyAgICAgIFdJVEhPVVQgTElNSVRBVElPTiwgQU5ZIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBUSVRMRSwgTk9OLUlORlJJTkdFTUVOVCwKKyAgICAgIE1FUkNIQU5UQUJJTElUWSBPUiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gRWFjaCBSZWNpcGllbnQgaXMKKyAgICAgIHNvbGVseSByZXNwb25zaWJsZSBmb3IgZGV0ZXJtaW5pbmcgdGhlIGFwcHJvcHJpYXRlbmVzcyBvZiB1c2luZyBhbmQKKyAgICAgIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSBhbmQgYXNzdW1lcyBhbGwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIGl0cworICAgICAgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZQorICAgICAgcmlza3MgYW5kIGNvc3RzIG9mIHByb2dyYW0gZXJyb3JzLCBjb21wbGlhbmNlIHdpdGggYXBwbGljYWJsZSBsYXdzLCBkYW1hZ2UKKyAgICAgIHRvIG9yIGxvc3Mgb2YgZGF0YSwgcHJvZ3JhbXMgb3IgZXF1aXBtZW50LCBhbmQgdW5hdmFpbGFiaWxpdHkgb3IKKyAgICAgIGludGVycnVwdGlvbiBvZiBvcGVyYXRpb25zLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImRpc2NsYWltZXIiPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9oMj4KKyAgICA8cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgQU5EIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVECisgICAgICBCWSBBUFBMSUNBQkxFIExBVywgTkVJVEhFUiBSRUNJUElFTlQgTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkKKyAgICAgIExJQUJJTElUWSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAgICAgIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HIFdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLAorICAgICAgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QKKyAgICAgIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkKKyAgICAgIE9VVCBPRiBUSEUgVVNFIE9SIERJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUworICAgICAgR1JBTlRFRCBIRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImdlbmVyYWwiPjcuIEdFTkVSQUw8L2gyPgorICAgIDxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCisgICAgICBhcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YgdGhlCisgICAgICByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbiBieSB0aGUKKyAgICAgIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bSBleHRlbnQKKyAgICAgIG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS4KKyAgICA8L3A+CisgICAgPHA+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24gYWdhaW5zdCBhbnkgZW50aXR5IChpbmNsdWRpbmcgYQorICAgICAgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkgYWxsZWdpbmcgdGhhdCB0aGUgUHJvZ3JhbSBpdHNlbGYKKyAgICAgIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGggb3RoZXIgc29mdHdhcmUgb3IgaGFyZHdhcmUpCisgICAgICBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaCBSZWNpcGllbnQncyByaWdodHMgZ3JhbnRlZAorICAgICAgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisgICAgPC9wPgorICAgIDxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvCisgICAgICBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCisgICAgICBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcKKyAgICAgIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQgZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtCisgICAgICBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsIFJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyCisgICAgICB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkgUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZQorICAgICAgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS4KKyAgICA8L3A+CisgICAgPHA+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoaXMgQWdyZWVtZW50LAorICAgICAgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcyBjb3B5cmlnaHRlZCBhbmQgbWF5CisgICAgICBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50IFN0ZXdhcmQgcmVzZXJ2ZXMKKyAgICAgIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YgdGhpcyBBZ3JlZW1lbnQKKyAgICAgIGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzIHRoZSByaWdodAorICAgICAgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsIEFncmVlbWVudAorICAgICAgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0byBzZXJ2ZSBhcworICAgICAgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uIG9mCisgICAgICB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KKyAgICAgIChpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBEaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uCisgICAgICBvZiB0aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3CisgICAgICB2ZXJzaW9uIG9mIHRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gRGlzdHJpYnV0ZQorICAgICAgdGhlIFByb2dyYW0gKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLgorICAgIDwvcD4KKyAgICA8cD5FeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQKKyAgICAgIHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueQorICAgICAgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwKKyAgICAgIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQKKyAgICAgIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC4gTm90aGluZyBpbiB0aGlzIEFncmVlbWVudCBpcyBpbnRlbmRlZAorICAgICAgdG8gYmUgZW5mb3JjZWFibGUgYnkgYW55IGVudGl0eSB0aGF0IGlzIG5vdCBhIENvbnRyaWJ1dG9yIG9yIFJlY2lwaWVudC4KKyAgICAgIE5vIHRoaXJkLXBhcnR5IGJlbmVmaWNpYXJ5IHJpZ2h0cyBhcmUgY3JlYXRlZCB1bmRlciB0aGlzIEFncmVlbWVudC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJleGhpYml0LWEiPkV4aGliaXQgQSDigJMgRm9ybSBvZiBTZWNvbmRhcnkgTGljZW5zZXMgTm90aWNlPC9oMj4KKyAgICA8cD7igJxUaGlzIFNvdXJjZSBDb2RlIG1heSBhbHNvIGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBmb2xsb3dpbmcgCisgICAgCVNlY29uZGFyeSBMaWNlbnNlcyB3aGVuIHRoZSBjb25kaXRpb25zIGZvciBzdWNoIGF2YWlsYWJpbGl0eSBzZXQgZm9ydGggCisgICAgCWluIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCB2LiAyLjAgYXJlIHNhdGlzZmllZDoge25hbWUgbGljZW5zZShzKSwKKyAgICAJdmVyc2lvbihzKSwgYW5kIGV4Y2VwdGlvbnMgb3IgYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBoZXJlfS7igJ0KKyAgICA8L3A+CisgICAgPGJsb2NrcXVvdGU+CisgICAgICA8cD5TaW1wbHkgaW5jbHVkaW5nIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHRoaXMgRXhoaWJpdCBBCisgICAgICAgIGlzIG5vdCBzdWZmaWNpZW50IHRvIGxpY2Vuc2UgdGhlIFNvdXJjZSBDb2RlIHVuZGVyIFNlY29uZGFyeSBMaWNlbnNlcy4KKyAgICAgIDwvcD4KKyAgICAgIDxwPklmIGl0IGlzIG5vdCBwb3NzaWJsZSBvciBkZXNpcmFibGUgdG8gcHV0IHRoZSBub3RpY2UgaW4gYSBwYXJ0aWN1bGFyIGZpbGUsCisgICAgICAgIHRoZW4gWW91IG1heSBpbmNsdWRlIHRoZSBub3RpY2UgaW4gYSBsb2NhdGlvbiAoc3VjaCBhcyBhIExJQ0VOU0UgZmlsZSBpbiBhCisgICAgICAgIHJlbGV2YW50IGRpcmVjdG9yeSkgd2hlcmUgYSByZWNpcGllbnQgd291bGQgYmUgbGlrZWx5IHRvIGxvb2sgZm9yCisgICAgICAgIHN1Y2ggYSBub3RpY2UuCisgICAgICA8L3A+CisgICAgICA8cD5Zb3UgbWF5IGFkZCBhZGRpdGlvbmFsIGFjY3VyYXRlIG5vdGljZXMgb2YgY29weXJpZ2h0IG93bmVyc2hpcC48L3A+CisgICAgPC9ibG9ja3F1b3RlPgorICAKKzxkaXYgaWQ9ImVpZC1jaHJvbWUtZXh0ZW5zaW9uLWlzLWluc3RhbGxlZCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNkay1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwppbmRleCA3MjFiMDdmLi4xOTgxNTdlIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTMsOSArMyw5IEBACiAjICAqCiAjICAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICogCiAjICAqIENvbnRyaWJ1dG9yczogCiAjICAqICAgT2JlbyAtIFNESyBmZWF0dXJlCkBAIC0yMyw5ICsyMyw5IEBACiBjb3B5cmlnaHRVUkw9Y29weXJpZ2h0LnR4dAogY29weXJpZ2h0PUNvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLlxuXAogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFsc1xuXAotYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wXG5cCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjBcblwKIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0XG5cCi1odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC9cblwKICBcblwKIENvbnRyaWJ1dG9yczpcblwKICAgIE9iZW8gLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KQEAgLTM4LDEyNSArMzgsMTQzIEBACiAjIHNob3VsZCBiZSBwbGFpbiB0ZXh0IHZlcnNpb24gb2YgbGljZW5zZSBhZ3JlZW1lbnQgcG9pbnRlZCB0byBiZSAibGljZW5zZVVSTCIKIGxpY2Vuc2U9XAogRWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50XG5cCi1BcHJpbCA5LCAyMDE0XG5cCitcblwKK05vdmVtYmVyIDIyLCAyMDE3XG5cCiBcblwKIFVzYWdlIE9mIENvbnRlbnRcblwKIFxuXAotVEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUlxuXAotT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUyAoQ09MTEVDVElWRUxZICJDT05URU5UIikuXG5cCi1VU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVNcblwKLUFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUlxuXAotTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1VcblwKLUFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlRcblwKLUFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTXG5cCi1PUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgSUYgWU9VIERPIE5PVCBBR1JFRSBUTyBUSEVcblwKLVRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlNcblwKLU9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEXG5cCi1CRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuXG5cCitUSEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT05cblwKK0FORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS4gVVNFIE9GXG5cCitUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKK0JFTE9XLiBCWSBVU0lORyBUSEUgQ09OVEVOVCwgWU9VIEFHUkVFIFRIQVQgWU9VUiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORURcblwKK0JZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRVxuXAorQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAorVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTllcblwKK0FQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VXG5cCitNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKIFxuXAogQXBwbGljYWJsZSBMaWNlbnNlc1xuXAogXG5cCi1Vbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlXG5cCi1FY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZlxuXAotdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKLXByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC5cblwKLUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LlxuXAorVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb25cblwKK2lzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2VcblwKK1ZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvXG5cCithdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCxcblwKKyJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCiBcblwKLUNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLFxuXAotZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlXG5cCi1yZXBvc2l0b3J5ICgiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlXG5cCi1hcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKK0NvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uXG5cCithbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlIHJlcG9zaXRvcnlcblwKKygiUmVwb3NpdG9yeSIpIGluIHNvZnR3YXJlIG1vZHVsZXMgKCJNb2R1bGVzIikgYW5kIG1hZGUgYXZhaWxhYmxlIGFzXG5cCitkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS5cblwKIFxuXAotXHQtIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsXG5cCi1cdCAgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLFxuXAotXHQgIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZCBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCi1cdC0gRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSIChKYXZhKFRNKSBBUmNoaXZlKVxuXAotXHQgIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi5cblwKLVx0LSBBIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC5cblwKLVx0ICBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLlxuXAotXHQgIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvblxuXAotXHQgIG51bWJlcnMgb2YgdGhlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKLVx0LSBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXNcblwKLVx0ICBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKKy0gICBDb250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZVxuXAorICAgIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gVHlwaWNhbCBtb2R1bGVzIG1heVxuXAorICAgIGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmRcblwKKyAgICBmZWF0dXJlcyAoIkZlYXR1cmVzIikuXG5cCistICAgRWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3Rvcnkgb3IgSkFSXG5cCisgICAgKEphdmFcdTIxMjIgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAorLSAgIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZFxuXAorICAgIGFzc29jaWF0ZWQgbWF0ZXJpYWwuIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGFcblwKKyAgICBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXlcblwKKyAgICBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yXG5cCisgICAgRnJhZ21lbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGF0IEZlYXR1cmUuXG5cCistICAgRmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoIkluY2x1ZGVkIEZlYXR1cmVzIikuIFdpdGhpbiBhXG5cCisgICAgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZFxuXAorICAgIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy5cblwKIFxuXAotVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZCBiZVxuXAotY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kXG5cCi1jb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQgSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZFxuXAotaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuIEFib3V0cyBhbmQgRmVhdHVyZVxuXAotTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZVxuXAotaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6XG5cCitUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpblxuXAorZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXNcblwKK2FuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJsaWNlbnNlLmh0bWwiXG5cCisoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueVxuXAorZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlIGluY2x1ZGluZywgYnV0IG5vdCBsaW1pdGVkIHRvIHRoZSBmb2xsb3dpbmdcblwKK2xvY2F0aW9uczpcblwKIFxuXAotXHQtIFRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeVxuXAotXHQtIFBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzXG5cCi1cdC0gSW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSc1xuXAotXHQtIFN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnNcblwKLVx0LSBGZWF0dXJlIGRpcmVjdG9yaWVzXG5cCistICAgVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCistICAgUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKKy0gICBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCistICAgU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAorLSAgIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKIFxuXAotTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZVxuXAotUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFxuXAotVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWluc1xuXAotSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKLXdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtXG5cCi15b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluXG5cCi10aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuXG5cCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlXG5cCi10ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0XG5cCi1nb3Zlcm4geW91ciB1c2Ugb2YgdGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKK05vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZ1xuXAordGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91IG11c3QgYWdyZWUgdG8gYSBsaWNlbnNlXG5cCisoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZVxuXAorY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsIHRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3VcblwKK3dpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IgaW5mb3JtIHlvdVxuXAord2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZSAibGljZW5zZSJcblwKK3Byb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuIFN1Y2hcblwKK0Fib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZFxuXAorY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZlxuXAordGhlIGFzc29jaWF0ZWQgQ29udGVudCBpbiB0aGF0IGRpcmVjdG9yeS5cblwKIFxuXAotVEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUlxuXAotVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5EIENPTkRJVElPTlMuXG5cCi1TT01FIE9GIFRIRVNFIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6XG5cCitUSEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUExcblwKK09SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRVxuXAorT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKIFxuXAotXHQtIEVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCi1cdC0gQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UpXG5cCi1cdC0gQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAotXHQtIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCistICAgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwpXG5cCistICAgRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEuMC5odG1sKVxuXAorLSAgIENvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwpXG5cCistICAgQXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMClcblwKKy0gICBNb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWwpXG5cCiBcblwKLUlUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1JcblwKLVRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZVxuXAotaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnNcblwKLWdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKK0lUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE9cblwKK1VTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpc1xuXAorcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC5cblwKIFxuXAotXG5cVXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCitVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKIFxuXAotVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLFxuXAotYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3JcblwKLXRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vclxuXAotb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHkgIkluc3RhbGxhYmxlIFNvZnR3YXJlIikuIFRoaXMgY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoXG5cCi10aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8gaW5zdGFsbCwgZXh0ZW5kIGFuZCB1cGRhdGUgRWNsaXBzZS1iYXNlZCBwcm9kdWN0cy5cblwKLUluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXRcblwKK1RoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMgb2Ygd2hpY2hcblwKK2luY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZSBVcGRhdGUgTWFuYWdlclxuXAorKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsXG5cCitzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5XG5cCisiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZ1xuXAorc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvblxuXAorYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAogaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCAoIlNwZWNpZmljYXRpb24iKS5cblwKIFxuXAotWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLlxuXAotWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZSBsaWNlbnNlIGFncmVlbWVudHMgcmVsYXRpbmcgdG8gdGhlXG5cCi1JbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAotaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZFxuXAotbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXJcblwKLWFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzpcblwKK1lvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbFxuXAorSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlIGFwcGxpY2FibGVcblwKK2xpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmRcblwKK2FjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGVcblwKK1NwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdFxuXAorYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAorYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGVcblwKK2ZvbGxvd2luZzpcblwKIFxuXAotXHQxLiBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heSBleGVjdXRlXG5cCi1cdCAgIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLFxuXAotXHQgICBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAotXHQyLiBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkIHBhcnR5XG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLlxuXAotXHQzLiBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdFxuXAotXHQgICBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgKCJJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaFxuXAotXHQgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZVxuXAotXHQgICB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGVcblwKLVx0ICAgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZSBieVxuXAotXHQgICB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2hcblwKLVx0ICAgaW5kaWNhdGlvbiBvZiBhZ3JlZW1lbnQgYnkgdGhlIHVzZXIsIHRoZSBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvblxuXAotXHQgICBvZiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCisxLiAgQSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXlcblwKKyAgICBleGVjdXRlIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlXG5cCisgICAgaW50ZW50IG9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhblxuXAorICAgIEVjbGlwc2UtYmFzZWQgcHJvZHVjdC5cblwKKzIuICBEdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgbWF5IGNhdXNlIHRoaXJkXG5cCisgICAgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0b1xuXAorICAgIHRoZSBUYXJnZXQgTWFjaGluZS5cblwKKzMuICBQdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kXG5cCisgICAgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlXG5cCisgICAgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlXG5cCisgICAgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0IE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBhbmQgbXVzdCBzb2xpY2l0IGFjY2VwdGFuY2VcblwKKyAgICBieSB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaCBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlXG5cCisgICAgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlXG5cCisgICAgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCiBcblwKIENyeXB0b2dyYXBoeVxuXAogXG5cCi1Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmVcblwKLWN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSxcblwKLWFuZC9vciByZS1leHBvcnQgdG8gYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkVcblwKLXVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLFxuXAotcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmRcblwKLXJlLWV4cG9ydCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLCB0byBzZWUgaWYgdGhpcyBpcyBwZXJtaXR0ZWQuXG5cCitDb250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoIHlvdSBhcmUgY3VycmVudGx5XG5cCittYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0b1xuXAorYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsXG5cCitwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LFxuXAorcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzXG5cCitwZXJtaXR0ZWQuXG5cCiBcblwKLUphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KK0phdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZVxuXAorVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLlxuCiAjIyMjIyMjIyMjIyBlbmQgb2YgbGljZW5zZSBwcm9wZXJ0eSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9saWNlbnNlLmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvbGljZW5zZS5odG1sCmluZGV4IGNlY2YxMzcuLmFmYjJmMzUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9saWNlbnNlLmh0bWwKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNkay1mZWF0dXJlL2xpY2Vuc2UuaHRtbApAQCAtMSwxMDYgKzEsMTkwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Ci08IS0tIHNhdmVkIGZyb20gdXJsPSgwMDQ0KWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsL25vdGljZS5odG1sIC0tPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgogCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJJU08tODg1OS0xIiA/PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIiAvPgogPHRpdGxlPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvdGl0bGU+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PC9oZWFkPgorPC9oZWFkPgogCiA8Ym9keSBsYW5nPSJFTi1VUyI+Ci08aDI+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9oMj4KLTxwPkFwcmlsIDksIDIwMTQ8L3A+CisJPGgyPkVjbGlwc2UgRm91bmRhdGlvbiBTb2Z0d2FyZSBVc2VyIEFncmVlbWVudDwvaDI+CisJPHA+Tm92ZW1iZXIgMjIsIDIwMTc8L3A+CiAKLTxoMz5Vc2FnZSBPZiBDb250ZW50PC9oMz4KKwk8aDM+VXNhZ2UgT2YgQ29udGVudDwvaDM+CiAKLTxwPlRIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTiBBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUwotICAgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLiAgVVNFIE9GIFRIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORAotICAgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRQotICAgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IKLSAgIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORAotICAgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1UgTUFZIE5PVCBVU0UgVEhFIENPTlRFTlQuPC9wPgorCTxwPlRIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLAorCQlJTkZPUk1BVElPTiBBTkQvT1IgT1RIRVIgTUFURVJJQUxTIEZPUiBPUEVOIFNPVVJDRSBQUk9KRUNUUworCQkoQ09MTEVDVElWRUxZICZxdW90O0NPTlRFTlQmcXVvdDspLiBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkKKwkJVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5ECisJCUNPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQKKwkJQkVMT1cuIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUworCQlHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWQorCQlBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VECisJCUJFTE9XLiBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTCisJCUFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UKKwkJQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UCisJCVVTRSBUSEUgQ09OVEVOVC48L3A+CiAKLTxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KKwk8aDM+QXBwbGljYWJsZSBMaWNlbnNlczwvaDM+CiAKLTxwPlVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAKLSAgICgiRVBMIikuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KLSAgIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAiUHJvZ3JhbSIgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KKwk8cD4KKwkJVW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlCisJCUZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKKwkJRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gQSBjb3B5IG9mIHRoZQorCQlFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMDwvYT4uCisJCUZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC4KKwk8L3A+CiAKLTxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdCBjb2RlLCBkb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUKLSAgIHJlcG9zaXRvcnkgKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGUgYXMgZG93bmxvYWRhYmxlIGFyY2hpdmVzICgiRG93bmxvYWRzIikuPC9wPgorCTxwPkNvbnRlbnQgaW5jbHVkZXMsIGJ1dCBpcyBub3QgbGltaXRlZCB0bywgc291cmNlIGNvZGUsIG9iamVjdAorCQljb2RlLCBkb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlCisJCUZvdW5kYXRpb24gc291cmNlIGNvZGUgcmVwb3NpdG9yeSAoJnF1b3Q7UmVwb3NpdG9yeSZxdW90OykgaW4gc29mdHdhcmUKKwkJbW9kdWxlcyAoJnF1b3Q7TW9kdWxlcyZxdW90OykgYW5kIG1hZGUgYXZhaWxhYmxlIGFzIGRvd25sb2FkYWJsZQorCQlhcmNoaXZlcyAoJnF1b3Q7RG93bmxvYWRzJnF1b3Q7KS48L3A+CiAKLTx1bD4KLSAgICAgICA8bGk+Q29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiAgVHlwaWNhbCBtb2R1bGVzIG1heSBpbmNsdWRlIHBsdWctaW5zICgiUGx1Zy1pbnMiKSwgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS48L2xpPgotICAgICAgIDxsaT5FYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmGZIEFSY2hpdmUpIGluIGEgZGlyZWN0b3J5IG5hbWVkICJwbHVnaW5zIi48L2xpPgotICAgICAgIDxsaT5BIEZlYXR1cmUgaXMgYSBidW5kbGUgb2Ygb25lIG9yIG1vcmUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC4gIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuICBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMKLSAgICAgIGFuZC9vciBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS48L2xpPgotICAgICAgIDxsaT5GZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uIG51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuPC9saT4KLTwvdWw+CisJPHVsPgorCQk8bGk+Q29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvCisJCQlmYWNpbGl0YXRlIGRlbGl2ZXJpbmcsIGV4dGVuZGluZywgYW5kIHVwZ3JhZGluZyB0aGUgQ29udGVudC4gVHlwaWNhbAorCQkJbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoJnF1b3Q7UGx1Zy1pbnMmcXVvdDspLCBwbHVnLWluCisJCQlmcmFnbWVudHMgKCZxdW90O0ZyYWdtZW50cyZxdW90OyksIGFuZCBmZWF0dXJlcworCQkJKCZxdW90O0ZlYXR1cmVzJnF1b3Q7KS48L2xpPgorCQk8bGk+RWFjaCBQbHVnLWluIG9yIEZyYWdtZW50IG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkKKwkJCW9yIEpBUiAoSmF2YSZ0cmFkZTsgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQKKwkJCSZxdW90O3BsdWdpbnMmcXVvdDsuPC9saT4KKwkJPGxpPkEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IKKwkJCUZyYWdtZW50cyBhbmQgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhCisJCQlzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICZxdW90O2ZlYXR1cmVzJnF1b3Q7LiBXaXRoaW4gYQorCQkJRmVhdHVyZSwgZmlsZXMgbmFtZWQgJnF1b3Q7ZmVhdHVyZS54bWwmcXVvdDsgbWF5IGNvbnRhaW4gYSBsaXN0IG9mCisJCQl0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cworCQkJYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS48L2xpPgorCQk8bGk+RmVhdHVyZXMgbWF5IGFsc28gaW5jbHVkZSBvdGhlciBGZWF0dXJlcyAoJnF1b3Q7SW5jbHVkZWQKKwkJCUZlYXR1cmVzJnF1b3Q7KS4gV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQKKwkJCSZxdW90O2ZlYXR1cmUueG1sJnF1b3Q7IG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24KKwkJCW51bWJlcnMgb2YgSW5jbHVkZWQgRmVhdHVyZXMuPC9saT4KKwk8L3VsPgogCi08cD5UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQKLUluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCIgKCJGZWF0dXJlIExpY2Vuc2VzIikuICBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yIE1vZHVsZQotaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6PC9wPgorCTxwPlRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQKKwkJYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICZxdW90O2Fib3V0Lmh0bWwmcXVvdDsKKwkJKCZxdW90O0Fib3V0cyZxdW90OykuIFRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgRmVhdHVyZXMgYW5kCisJCUluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQKKwkJJnF1b3Q7bGljZW5zZS5odG1sJnF1b3Q7ICgmcXVvdDtGZWF0dXJlIExpY2Vuc2VzJnF1b3Q7KS4gQWJvdXRzIGFuZAorCQlGZWF0dXJlIExpY2Vuc2VzIG1heSBiZSBsb2NhdGVkIGluIGFueSBkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvcgorCQlNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZyBsb2NhdGlvbnM6PC9wPgogCi08dWw+Ci0gICAgICAgPGxpPlRoZSB0b3AtbGV2ZWwgKHJvb3QpIGRpcmVjdG9yeTwvbGk+Ci0gICAgICAgPGxpPlBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzPC9saT4KLSAgICAgICA8bGk+SW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSczwvbGk+Ci0gICAgICAgPGxpPlN1Yi1kaXJlY3RvcmllcyBvZiB0aGUgZGlyZWN0b3J5IG5hbWVkICJzcmMiIG9mIGNlcnRhaW4gUGx1Zy1pbnM8L2xpPgotICAgICAgIDxsaT5GZWF0dXJlIGRpcmVjdG9yaWVzPC9saT4KLTwvdWw+CisJPHVsPgorCQk8bGk+VGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5PC9saT4KKwkJPGxpPlBsdWctaW4gYW5kIEZyYWdtZW50IGRpcmVjdG9yaWVzPC9saT4KKwkJPGxpPkluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnM8L2xpPgorCQk8bGk+U3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgJnF1b3Q7c3JjJnF1b3Q7IG9mCisJCQljZXJ0YWluIFBsdWctaW5zPC9saT4KKwkJPGxpPkZlYXR1cmUgZGlyZWN0b3JpZXM8L2xpPgorCTwvdWw+CiAKLTxwPk5vdGU6IGlmIGEgRmVhdHVyZSBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIGluc3RhbGxlZCB1c2luZyB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2UgKCJGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIikgZHVyaW5nIHRoZQotaW5zdGFsbGF0aW9uIHByb2Nlc3MuICBJZiB0aGUgRmVhdHVyZSBjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgdGhlIEluY2x1ZGVkIEZlYXR1cmVzIG9yCi1pbmZvcm0geW91IHdoZXJlIHlvdSBjYW4gbG9jYXRlIHRoZW0uICBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICJsaWNlbnNlIiBwcm9wZXJ0eSBvZiBmaWxlcyBuYW1lZCAiZmVhdHVyZS5wcm9wZXJ0aWVzIiBmb3VuZCB3aXRoaW4gYSBGZWF0dXJlLgotU3VjaCBBYm91dHMsIEZlYXR1cmUgTGljZW5zZXMsIGFuZCBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBjb250YWluIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybiB5b3VyIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluCi10aGF0IGRpcmVjdG9yeS48L3A+CisJPHA+Tm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMKKwkJaW5zdGFsbGVkIHVzaW5nIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdQorCQltdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoJnF1b3Q7RmVhdHVyZSBVcGRhdGUgTGljZW5zZSZxdW90OykgZHVyaW5nCisJCXRoZSBpbnN0YWxsYXRpb24gcHJvY2Vzcy4gSWYgdGhlIEZlYXR1cmUgY29udGFpbnMgSW5jbHVkZWQgRmVhdHVyZXMsCisJCXRoZSBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIHNob3VsZCBlaXRoZXIgcHJvdmlkZSB5b3Ugd2l0aCB0aGUgdGVybXMKKwkJYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91IHdoZXJlIHlvdQorCQljYW4gbG9jYXRlIHRoZW0uIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUKKwkJJnF1b3Q7bGljZW5zZSZxdW90OyBwcm9wZXJ0eSBvZiBmaWxlcyBuYW1lZAorCQkmcXVvdDtmZWF0dXJlLnByb3BlcnRpZXMmcXVvdDsgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4gU3VjaCBBYm91dHMsCisJCUZlYXR1cmUgTGljZW5zZXMsIGFuZCBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBjb250YWluIHRoZSB0ZXJtcyBhbmQKKwkJY29uZGl0aW9ucyAob3IgcmVmZXJlbmNlcyB0byBzdWNoIHRlcm1zIGFuZCBjb25kaXRpb25zKSB0aGF0IGdvdmVybgorCQl5b3VyIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LjwvcD4KIAotPHA+VEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWSBSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy4gIFNPTUUgT0YgVEhFU0UKLU9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUyBNQVkgSU5DTFVERSAoQlVUIEFSRSBOT1QgTElNSVRFRCBUTyk6PC9wPgorCTxwPlRIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkKKwkJUkVGRVIgVE8gVEhFIEVQTCBPUiBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMsIE5PVElDRVMgT1IgVEVSTVMgQU5ECisJCUNPTkRJVElPTlMuIFNPTUUgT0YgVEhFU0UgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQKKwkJQVJFIE5PVCBMSU1JVEVEIFRPKTo8L3A+CiAKLTx1bD4KLSAgICAgICA8bGk+RWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWw8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkNvbW1vbiBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbDwvYT4pPC9saT4KLSAgICAgICA8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMS4xIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFPC9hPik8L2xpPgotICAgICAgIDxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMDwvYT4pPC9saT4KLSAgICAgICA8bGk+TW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbCI+aHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sPC9hPik8L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4pCisJCTwvbGk+CisJCTxsaT5FY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWw8L2E+KQorCQk8L2xpPgorCQk8bGk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbDwvYT4pCisJCTwvbGk+CisJCTxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFPC9hPikKKwkJPC9saT4KKwkJPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAiPmh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMDwvYT4pCisJCTwvbGk+CisJCTxsaT5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbCI+aHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sPC9hPikKKwkJPC9saT4KKwk8L3VsPgogCi08cD5JVCBJUyBZT1VSIE9CTElHQVRJT04gVE8gUkVBRCBBTkQgQUNDRVBUIEFMTCBTVUNIIFRFUk1TIEFORCBDT05ESVRJT05TIFBSSU9SIFRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gIElmIG5vIEFib3V0LCBGZWF0dXJlIExpY2Vuc2UsIG9yIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2UgaXMgcHJvdmlkZWQsIHBsZWFzZQotY29udGFjdCB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHRvIGRldGVybWluZSB3aGF0IHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybiB0aGF0IHBhcnRpY3VsYXIgQ29udGVudC48L3A+CisJPHA+SVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQKKwkJQ09ORElUSU9OUyBQUklPUiBUTyBVU0UgT0YgVEhFIENPTlRFTlQuIElmIG5vIEFib3V0LCBGZWF0dXJlIExpY2Vuc2UsCisJCW9yIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2UgaXMgcHJvdmlkZWQsIHBsZWFzZSBjb250YWN0IHRoZSBFY2xpcHNlCisJCUZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuIHRoYXQKKwkJcGFydGljdWxhciBDb250ZW50LjwvcD4KIAogCi08aDM+VXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5PC9oMz4KKwk8aDM+VXNlIG9mIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5PC9oMz4KIAotPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaCBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UKLSAgIFVwZGF0ZSBNYW5hZ2VyICgiUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kiKSBmb3IgdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yCi0gICBvdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvCi0gICBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvbiBhYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWwiPmh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWw8L2E+Ci0gICAoIlNwZWNpZmljYXRpb24iKS48L3A+CisJPHA+CisJCVRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIHByb3Zpc2lvbmluZyBzb2Z0d2FyZSwgZXhhbXBsZXMKKwkJb2Ygd2hpY2ggaW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZQorCQlNYW5hZ2VyICgmcXVvdDtQcm92aXNpb25pbmcgVGVjaG5vbG9neSZxdW90OykgZm9yIHRoZSBwdXJwb3NlIG9mCisJCWFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGwgc29mdHdhcmUsIGRvY3VtZW50YXRpb24sIGluZm9ybWF0aW9uIGFuZC9vcgorCQlvdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAmcXVvdDtJbnN0YWxsYWJsZSBTb2Z0d2FyZSZxdW90OykuIFRoaXMKKwkJY2FwYWJpbGl0eSBpcyBwcm92aWRlZCB3aXRoIHRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0bworCQlpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLiBJbmZvcm1hdGlvbiBhYm91dAorCQlwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sIj5odHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sPC9hPgorCQkoJnF1b3Q7U3BlY2lmaWNhdGlvbiZxdW90OykuCisJPC9wPgogCi08cD5Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvIGluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcgdGhlCi0gICBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgdG8gYmUgcHJlc2VudGVkIHRvLCBhbmQgYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kKLSAgIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0IGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlCi0gICBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyIGFncmVlbWVudCB0bywgYW5kIHRoZSBhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzo8L3A+CisJPHA+WW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0bworCQlpbnN0YWxsIEluc3RhbGxhYmxlIFNvZnR3YXJlLiBZb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nCisJCXRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUKKwkJdG8gYmUgcHJlc2VudGVkIHRvLCBhbmQgYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nCisJCVRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcKKwkJVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aAorCQl0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91ciBhZ3JlZW1lbnQgdG8sIGFuZCB0aGUKKwkJYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZSBmb2xsb3dpbmc6PC9wPgogCi08b2w+Ci0gICAgICAgPGxpPkEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5Ci0gICAgICAgb24gYSBtYWNoaW5lICgiVGFyZ2V0IE1hY2hpbmUiKSB3aXRoIHRoZSBpbnRlbnQgb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuIEVjbGlwc2UtYmFzZWQKLSAgICAgICBwcm9kdWN0LjwvbGk+Ci0gICAgICAgPGxpPkR1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHkgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUKLSAgICAgICBhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS48L2xpPgotICAgICAgIDxsaT5QdXJzdWFudCB0byB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IHdpbGwgcHJvdmlkZSB0byB0aGUgdXNlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUKLSAgICAgICBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQKLSAgICAgICBNYWNoaW5lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gU3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIHRoYXQgZ292ZXJuCi0gICAgICAgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZSBieSB0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50LiBVcG9uIHN1Y2gKLSAgICAgICBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZS48L2xpPgotPC9vbD4KKwk8b2w+CisJCTxsaT5BIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoJnF1b3Q7UHJvdmlzaW9uaW5nCisJCQlQcm9jZXNzJnF1b3Q7KSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZworCQkJVGVjaG5vbG9neSBvbiBhIG1hY2hpbmUgKCZxdW90O1RhcmdldCBNYWNoaW5lJnF1b3Q7KSB3aXRoIHRoZSBpbnRlbnQKKwkJCW9mIGluc3RhbGxpbmcsIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbgorCQkJRWNsaXBzZS1iYXNlZCBwcm9kdWN0LjwvbGk+CisJCTxsaT5EdXJpbmcgdGhlIFByb3Zpc2lvbmluZyBQcm9jZXNzLCB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kKKwkJCW1heSBjYXVzZSB0aGlyZCBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZQorCQkJYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuPC9saT4KKwkJPGxpPlB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyCisJCQl0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIHVzZSBvZiB0aGUgSW5zdGFsbGFibGUKKwkJCVNvZnR3YXJlICgmcXVvdDtJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQmcXVvdDspIGFuZCBzdWNoCisJCQlJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmUgYWNjZXNzZWQgZnJvbSB0aGUgVGFyZ2V0CisJCQlNYWNoaW5lIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbi4gU3VjaCBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworCQkJdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZSBieQorCQkJdGhlIGVuZCB1c2VyIGluIHRoZSBtYW5uZXIgcHJlc2NyaWJlZCBpbiBzdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlCisJCQlBZ3JlZW1lbnQuIFVwb24gc3VjaCBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlCisJCQlwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGUgSW5zdGFsbGFibGUKKwkJCVNvZnR3YXJlLjwvbGk+CisJPC9vbD4KIAotPGgzPkNyeXB0b2dyYXBoeTwvaDM+CisJPGgzPkNyeXB0b2dyYXBoeTwvaDM+CiAKLTxwPkNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZSBjdXJyZW50bHkgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIG9uIHRoZSBpbXBvcnQsIHBvc3Nlc3Npb24sIGFuZCB1c2UsIGFuZC9vciByZS1leHBvcnQgdG8KLSAgIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4gQkVGT1JFIHVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLCByZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LAotICAgcG9zc2Vzc2lvbiwgb3IgdXNlLCBhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC48L3A+CisJPHA+Q29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaAorCQl5b3UgYXJlIGN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kCisJCXVzZSwgYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuCisJCUJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgcGxlYXNlIGNoZWNrIHRoZSBjb3VudHJ5J3MgbGF3cywKKwkJcmVndWxhdGlvbnMgYW5kIHBvbGljaWVzIGNvbmNlcm5pbmcgdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgb3IgdXNlLAorCQlhbmQgcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC48L3A+CiAKLTxwPjxzbWFsbD5KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mIE9yYWNsZSBDb3Jwb3JhdGlvbiBpbiB0aGUgVW5pdGVkIFN0YXRlcywgb3RoZXIgY291bnRyaWVzLCBvciBib3RoLjwvc21hbGw+PC9wPgotCi0KLTwvYm9keT48L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorCTxwPgorCQk8c21hbGw+SmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZgorCQkJT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguPC9zbWFsbD4KKwk8L3A+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2RrLWZlYXR1cmUvcG9tLnhtbCBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9wb20ueG1sCmluZGV4IDhmMTc3MGIuLjMyYzM0MDMgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9wb20ueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZGstZmVhdHVyZS9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9hYm91dC5odG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9hYm91dC5odG1sCmluZGV4IDJiOWJjZmIuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+TWF5IDMwLCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL0FjdGl2YXRvci5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvQWN0aXZhdG9yLmphdmEKaW5kZXggMDAzNDA2My4uMGU4OTljZSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvQWN0aXZhdG9yLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvQWN0aXZhdG9yLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL0phckNsYXNzTG9hZGVyLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9KYXJDbGFzc0xvYWRlci5qYXZhCmluZGV4IDE3YmE3ZTMuLmQ2MzE2NzAgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL0phckNsYXNzTG9hZGVyLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvSmFyQ2xhc3NMb2FkZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvU2VydmljZUV4dGVuc2lvbk1hbmFnZXIuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL1NlcnZpY2VFeHRlbnNpb25NYW5hZ2VyLmphdmEKaW5kZXggZWVhZWRiNC4uNmRlNzkxZiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvU2VydmljZUV4dGVuc2lvbk1hbmFnZXIuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9TZXJ2aWNlRXh0ZW5zaW9uTWFuYWdlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9TZXJ2aWNlTWVzc2FnZXMuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL1NlcnZpY2VNZXNzYWdlcy5qYXZhCmluZGV4IDA2MDE2ODYuLjFiNDUzMDUgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL1NlcnZpY2VNZXNzYWdlcy5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL1NlcnZpY2VNZXNzYWdlcy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNiwgMjAxMCBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBNZXNzYWdlcyBleHRlcm5hbGl6YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL1NlcnZpY2VUcmFuc2Zvcm1hdGlvblV0aWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL1NlcnZpY2VUcmFuc2Zvcm1hdGlvblV0aWwuamF2YQppbmRleCA2ODg1NzE5Li5kYTk0ZTU1IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9TZXJ2aWNlVHJhbnNmb3JtYXRpb25VdGlsLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvU2VydmljZVRyYW5zZm9ybWF0aW9uVXRpbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9jb25maWd1cmF0aW9uL0NvbXBvc2VkVHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9jb25maWd1cmF0aW9uL0NvbXBvc2VkVHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uLmphdmEKaW5kZXggMDM3NjFkNS4uZGZkYTlmNiAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvY29uZmlndXJhdGlvbi9Db21wb3NlZFRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL2NvbmZpZ3VyYXRpb24vQ29tcG9zZWRUcmFuc2Zvcm1hdGlvbkNvbmZpZ3VyYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvY29uZmlndXJhdGlvbi9TaW5nbGVUcmFuc2Zvcm1hdGlvbkNvbmZpZ3VyYXRpb24uamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL2NvbmZpZ3VyYXRpb24vU2luZ2xlVHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uLmphdmEKaW5kZXggMjBkZDJlZC4uMjNjNjM3OSAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvY29uZmlndXJhdGlvbi9TaW5nbGVUcmFuc2Zvcm1hdGlvbkNvbmZpZ3VyYXRpb24uamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9jb25maWd1cmF0aW9uL1NpbmdsZVRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9jb25maWd1cmF0aW9uL1RyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvY29uZmlndXJhdGlvbi9UcmFuc2Zvcm1hdGlvbkNvbmZpZ3VyYXRpb24uamF2YQppbmRleCA3NjQ0ZjZkLi43MTJlZWE5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9jb25maWd1cmF0aW9uL1RyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbi5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL2NvbmZpZ3VyYXRpb24vVHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL2V4Y2VwdGlvbi9TZXJ2aWNlRXhjZXB0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9leGNlcHRpb24vU2VydmljZUV4Y2VwdGlvbi5qYXZhCmluZGV4IDIzNDdlNGMuLjRhODgyNTkgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL2V4Y2VwdGlvbi9TZXJ2aWNlRXhjZXB0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvZXhjZXB0aW9uL1NlcnZpY2VFeGNlcHRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvbmVzdGVkRWxlbWVudHMvTW9kZWwuamF2YSBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL25lc3RlZEVsZW1lbnRzL01vZGVsLmphdmEKaW5kZXggMjVhYTIxOS4uMWM3MTU1NCAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvbmVzdGVkRWxlbWVudHMvTW9kZWwuamF2YQorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9uZXN0ZWRFbGVtZW50cy9Nb2RlbC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNyBJTlJJQS4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgRnJlZGR5IEFsbGlsYWlyZSAoSU5SSUEpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9uZXN0ZWRFbGVtZW50cy9Nb2RlbFRvU2F2ZS5qYXZhIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvbmVzdGVkRWxlbWVudHMvTW9kZWxUb1NhdmUuamF2YQppbmRleCA5NmM2ZTMwLi43N2E2MWU5IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9uZXN0ZWRFbGVtZW50cy9Nb2RlbFRvU2F2ZS5qYXZhCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL25lc3RlZEVsZW1lbnRzL01vZGVsVG9TYXZlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3IElOUklBLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBGcmVkZHkgQWxsaWxhaXJlIChJTlJJQSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL25lc3RlZEVsZW1lbnRzL1RyYW5zZm9ybWF0aW9uLmphdmEgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwuc2VydmljZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3NlcnZpY2UvY29yZS9uZXN0ZWRFbGVtZW50cy9UcmFuc2Zvcm1hdGlvbi5qYXZhCmluZGV4IDlhZjRkYzYuLjk4OTZhOGIgMTAwNjQ0Ci0tLSBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5zZXJ2aWNlLmNvcmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvc2VydmljZS9jb3JlL25lc3RlZEVsZW1lbnRzL1RyYW5zZm9ybWF0aW9uLmphdmEKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnNlcnZpY2UuY29yZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9zZXJ2aWNlL2NvcmUvbmVzdGVkRWxlbWVudHMvVHJhbnNmb3JtYXRpb24uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcgSU5SSUEuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEZyZWRkeSBBbGxpbGFpcmUgKElOUklBKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsL2Fib3V0Lmh0bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvYWJvdXQuaHRtbAppbmRleCBjOTE0M2QyLi4wNDRjMGM4IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvYWJvdXQuaHRtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5EZWNlbWJlciA3LCAyMDA3PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC9hYm91dC5wcm9wZXJ0aWVzIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsL2Fib3V0LnByb3BlcnRpZXMKaW5kZXggZjUxODZlMC4uZGJlNzNlNyAxMDA2NDQKLS0tIGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsL2Fib3V0LnByb3BlcnRpZXMKKysrIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsL2Fib3V0LnByb3BlcnRpZXMKQEAgLTMsOSArMyw5IEBACiAjICAqCiAjICAqIENvcHlyaWdodCAoYykgMjAwMi0yMDA1IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAgKgogIyAgKiBDb250cmlidXRvcnM6CiAjICAqICAgSUJNIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvY29kZVN0eWxlL0FUTENvZGVUZW1wbGF0ZXMueG1sIGIvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsL2NvZGVTdHlsZS9BVExDb2RlVGVtcGxhdGVzLnhtbAppbmRleCBhNTBjMmMwLi4yMjkyZWMzIDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvY29kZVN0eWxlL0FUTENvZGVUZW1wbGF0ZXMueG1sCisrKyBiL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC9jb2RlU3R5bGUvQVRMQ29kZVRlbXBsYXRlcy54bWwKQEAgLTIwLDkgKzIwLDkgQEAKICAqLzwvdGVtcGxhdGU+PHRlbXBsYXRlIGF1dG9pbnNlcnQ9ImZhbHNlIiBjb250ZXh0PSJmaWxlY29tbWVudF9jb250ZXh0IiBkZWxldGVkPSJmYWxzZSIgZGVzY3JpcHRpb249IkNvbW1lbnQgZm9yIGNyZWF0ZWQgSmF2YSBmaWxlcyIgZW5hYmxlZD0idHJ1ZSIgaWQ9Im9yZy5lY2xpcHNlLmpkdC51aS50ZXh0LmNvZGV0ZW1wbGF0ZXMuZmlsZWNvbW1lbnQiIG5hbWU9ImZpbGVjb21tZW50Ij4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsL3BvbS54bWwgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvcG9tLnhtbAppbmRleCA2MjNhNzdlLi5jYmQxMDk0IDEwMDY0NAotLS0gYS9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvcG9tLnhtbAorKysgYi9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwvcG9tLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgICBDb3B5cmlnaHQgKGMpIDIwMTIgT2Jlby4KICAgICBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICAgIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgICAKICAgICBDb250cmlidXRvcnM6CiAgICAgICAgIE9iZW8gLSBpbml0aWFsIGNyZWF0b3IKZGlmZiAtLWdpdCBhL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLmJ1aWxkLWZlYXR1cmUvZXBsLXYxMC5odG1sIGIvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwuYnVpbGQtZmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGNiMTA3M2EuLjAwMDAwMDAKLS0tIGEvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwuYnVpbGQtZmVhdHVyZS9lcGwtdjEwLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMDQgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMC8vRU4iPgotPGh0bWwgeG1sbnM6bz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6b2ZmaWNlIgoteG1sbnM6dz0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTpvZmZpY2U6d29yZCIKLXhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy9UUi9SRUMtaHRtbDQwIj4KLQotPGhlYWQ+Ci08bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1JU08tODg1OS0xIj4KLTxsaW5rIHJlbD1GaWxlLUxpc3QKLWhyZWY9Ii4vRWNsaXBzZSUyMEVQTCUyMDIwMDNfMTFfMTAlMjBGaW5hbF9maWxlcy9maWxlbGlzdC54bWwiPgotPHRpdGxlPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSBWZXJzaW9uIDEuMDwvdGl0bGU+Ci08c3R5bGU+Ci08IS0tCi0gLyogRm9udCBEZWZpbml0aW9ucyAqLwotQGZvbnQtZmFjZQotCXsKLQlwYW5vc2UtMToyIDExIDYgNCAzIDUgNCA0IDIgNDsKLQltc28tZm9udC1jaGFyc2V0OjA7Ci0JbXNvLWZvbnQtcGl0Y2g6dmFyaWFibGU7Ci0JbXNvLWZvbnQtc2lnbmF0dXJlOjU1MzY3OTQ5NSAtMjE0NzQ4MzY0OCA4IDAgNjYwNDcgMDt9Ci0gLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KLXAuTXNvTm9ybWFsLCBsaS5Nc29Ob3JtYWwsIGRpdi5Nc29Ob3JtYWwKLQl7bXNvLXN0eWxlLXBhcmVudDoiIjsKLQltYXJnaW46MGluOwotCW1hcmdpbi1ib3R0b206LjAwMDFwdDsKLQltc28tcGFnaW5hdGlvbjp3aWRvdy1vcnBoYW47Ci0JZm9udC1zaXplOjEyLjBwdDsKLQl9Ci1wCi0Je21hcmdpbi1yaWdodDowaW47Ci0JbXNvLW1hcmdpbi10b3AtYWx0OmF1dG87Ci0JbXNvLW1hcmdpbi1ib3R0b20tYWx0OmF1dG87Ci0JbWFyZ2luLWxlZnQ6MGluOwotCW1zby1wYWdpbmF0aW9uOndpZG93LW9ycGhhbjsKLQlmb250LXNpemU6MTIuMHB0OwotCX0KLXAuQmFsbG9vblRleHQsIGxpLkJhbGxvb25UZXh0LCBkaXYuQmFsbG9vblRleHQKLQl7bXNvLXN0eWxlLW5hbWU6IkJhbGxvb24gVGV4dCI7Ci0JbWFyZ2luOjBpbjsKLQltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Ci0JbXNvLXBhZ2luYXRpb246d2lkb3ctb3JwaGFuOwotCWZvbnQtc2l6ZTo4LjBwdDsKLQkKLQl9Ci1AcGFnZSBTZWN0aW9uMQotCXtzaXplOjguNWluIDExLjBpbjsKLQltYXJnaW46MS4waW4gMS4yNWluIDEuMGluIDEuMjVpbjsKLQltc28taGVhZGVyLW1hcmdpbjouNWluOwotCW1zby1mb290ZXItbWFyZ2luOi41aW47Ci0JbXNvLXBhcGVyLXNvdXJjZTowO30KLWRpdi5TZWN0aW9uMQotCXtwYWdlOlNlY3Rpb24xO30KLS0tPgotPC9zdHlsZT4KLTwvaGVhZD4KLQotPGJvZHkgbGFuZz0iRU4tVVMiIHN0eWxlPSd0YWItaW50ZXJ2YWw6LjVpbic+Ci0KLTxkaXYgY2xhc3M9U2VjdGlvbjE+Ci0KLTxwIGFsaWduPWNlbnRlciBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXInPjxiPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgLSB2IDEuMDwvYj4KLTwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUgotVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRSBQVUJMSUMgTElDRU5TRSAoJnF1b3Q7QUdSRUVNRU5UJnF1b3Q7KS4gQU5ZIFVTRSwKLVJFUFJPRFVDVElPTiBPUiBESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRQotT0YgVEhJUyBBR1JFRU1FTlQuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4xLiBERUZJTklUSU9OUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0NvbnRyaWJ1dGlvbiZxdW90OyBtZWFuczo8L3NwYW4+IDwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+YSkKLWluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb2RlIGFuZCBkb2N1bWVudGF0aW9uCi1kaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPGJyIGNsZWFyPWxlZnQ+Ci1iKSBpbiB0aGUgY2FzZSBvZiBlYWNoIHN1YnNlcXVlbnQgQ29udHJpYnV0b3I6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWNoYW5nZXMgdG8gdGhlIFByb2dyYW0sIGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPndoZXJlCi1zdWNoIGNoYW5nZXMgYW5kL29yIGFkZGl0aW9ucyB0byB0aGUgUHJvZ3JhbSBvcmlnaW5hdGUgZnJvbSBhbmQgYXJlIGRpc3RyaWJ1dGVkCi1ieSB0aGF0IHBhcnRpY3VsYXIgQ29udHJpYnV0b3IuIEEgQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJyBmcm9tIGEgQ29udHJpYnV0b3IKLWlmIGl0IHdhcyBhZGRlZCB0byB0aGUgUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uCi1zdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGFkZGl0aW9ucyB0byB0aGUKLVByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCBpbiBjb25qdW5jdGlvbgotd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIGFuZCAoaWkpIGFyZSBub3QgZGVyaXZhdGl2ZQotd29ya3Mgb2YgdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4mcXVvdDtDb250cmlidXRvciZxdW90OyBtZWFucyBhbnkgcGVyc29uIG9yCi1lbnRpdHkgdGhhdCBkaXN0cmlidXRlcyB0aGUgUHJvZ3JhbS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O0xpY2Vuc2VkIFBhdGVudHMgJnF1b3Q7IG1lYW4gcGF0ZW50Ci1jbGFpbXMgbGljZW5zYWJsZSBieSBhIENvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZQotb3Igc2FsZSBvZiBpdHMgQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1Byb2dyYW0mcXVvdDsgbWVhbnMgdGhlIENvbnRyaWJ1dGlvbnMKLWRpc3RyaWJ1dGVkIGluIGFjY29yZGFuY2Ugd2l0aCB0aGlzIEFncmVlbWVudC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPiZxdW90O1JlY2lwaWVudCZxdW90OyBtZWFucyBhbnlvbmUgd2hvCi1yZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIGFsbCBDb250cmlidXRvcnMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz4yLiBHUkFOVCBPRiBSSUdIVFM8L3NwYW4+PC9iPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmEpCi1TdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudAotYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0bzxzcGFuCi1zdHlsZT0nY29sb3I6cmVkJz4gPC9zcGFuPnJlcHJvZHVjZSwgcHJlcGFyZSBkZXJpdmF0aXZlIHdvcmtzIG9mLCBwdWJsaWNseQotZGlzcGxheSwgcHVibGljbHkgcGVyZm9ybSwgZGlzdHJpYnV0ZSBhbmQgc3VibGljZW5zZSB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2gKLUNvbnRyaWJ1dG9yLCBpZiBhbnksIGFuZCBzdWNoIGRlcml2YXRpdmUgd29ya3MsIGluIHNvdXJjZSBjb2RlIGFuZCBvYmplY3QgY29kZQotZm9ybS48L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5iKQotU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cwotUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLDxzcGFuIHN0eWxlPSdjb2xvcjpncmVlbic+IDwvc3Bhbj5yb3lhbHR5LWZyZWUKLXBhdGVudCBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLCBpbXBvcnQKLWFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoIENvbnRyaWJ1dG9yLCBpZiBhbnksIGluIHNvdXJjZQotY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbCBhcHBseSB0byB0aGUgY29tYmluYXRpb24KLW9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZSBQcm9ncmFtIGlmLCBhdCB0aGUgdGltZSB0aGUgQ29udHJpYnV0aW9uIGlzIGFkZGVkCi1ieSB0aGUgQ29udHJpYnV0b3IsIHN1Y2ggYWRkaXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBjYXVzZXMgc3VjaCBjb21iaW5hdGlvbgotdG8gYmUgY292ZXJlZCBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0bwotYW55IG90aGVyIGNvbWJpbmF0aW9ucyB3aGljaCBpbmNsdWRlIHRoZSBDb250cmlidXRpb24uIE5vIGhhcmR3YXJlIHBlciBzZSBpcwotbGljZW5zZWQgaGVyZXVuZGVyLiA8L3NwYW4+PC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5jKQotUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlIGxpY2Vuc2VzIHRvIGl0cwotQ29udHJpYnV0aW9ucyBzZXQgZm9ydGggaGVyZWluLCBubyBhc3N1cmFuY2VzIGFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IKLXRoYXQgdGhlIFByb2dyYW0gZG9lcyBub3QgaW5mcmluZ2UgdGhlIHBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkKLXJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LiBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudAotZm9yIGNsYWltcyBicm91Z2h0IGJ5IGFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbAotcHJvcGVydHkgcmlnaHRzIG9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZAotbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkKLXRvIHNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yIGV4YW1wbGUsCi1pZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudCB0byBkaXN0cmlidXRlCi10aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+ZCkKLUVhY2ggQ29udHJpYnV0b3IgcmVwcmVzZW50cyB0aGF0IHRvIGl0cyBrbm93bGVkZ2UgaXQgaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0Ci1yaWdodHMgaW4gaXRzIENvbnRyaWJ1dGlvbiwgaWYgYW55LCB0byBncmFudCB0aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluCi10aGlzIEFncmVlbWVudC4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjMuIFJFUVVJUkVNRU5UUzwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkEgQ29udHJpYnV0b3IgbWF5IGNob29zZSB0byBkaXN0cmlidXRlIHRoZQotUHJvZ3JhbSBpbiBvYmplY3QgY29kZSBmb3JtIHVuZGVyIGl0cyBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIHByb3ZpZGVkIHRoYXQ6PC9zcGFuPgotPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgY29tcGxpZXMgd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQ7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpCi1pdHMgbGljZW5zZSBhZ3JlZW1lbnQ6PC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aSkKLWVmZmVjdGl2ZWx5IGRpc2NsYWltcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycyBhbGwgd2FycmFudGllcyBhbmQKLWNvbmRpdGlvbnMsIGV4cHJlc3MgYW5kIGltcGxpZWQsIGluY2x1ZGluZyB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgdGl0bGUKLWFuZCBub24taW5mcmluZ2VtZW50LCBhbmQgaW1wbGllZCB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMgb2YgbWVyY2hhbnRhYmlsaXR5Ci1hbmQgZml0bmVzcyBmb3IgYSBwYXJ0aWN1bGFyIHB1cnBvc2U7IDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmlpKQotZWZmZWN0aXZlbHkgZXhjbHVkZXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMgYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywKLWluY2x1ZGluZyBkaXJlY3QsIGluZGlyZWN0LCBzcGVjaWFsLCBpbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2gKLWFzIGxvc3QgcHJvZml0czsgPC9zcGFuPjwvcD4KLQotPHAgY2xhc3M9TXNvTm9ybWFsIHN0eWxlPSdtYXJnaW4tbGVmdDouNWluJz48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+aWlpKQotc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcyBBZ3JlZW1lbnQgYXJlIG9mZmVyZWQgYnkgdGhhdAotQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIgcGFydHk7IGFuZDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPml2KQotc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZSBmcm9tIHN1Y2ggQ29udHJpYnV0b3IsIGFuZAotaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhIHJlYXNvbmFibGUgbWFubmVyIG9uIG9yIHRocm91Z2ggYQotbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGV4Y2hhbmdlLjxzcGFuIHN0eWxlPSdjb2xvcjpibHVlJz4gPC9zcGFuPjwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5XaGVuIHRoZSBQcm9ncmFtIGlzIG1hZGUgYXZhaWxhYmxlIGluIHNvdXJjZQotY29kZSBmb3JtOjwvc3Bhbj4gPC9wPgotCi08cCBjbGFzcz1Nc29Ob3JtYWwgc3R5bGU9J21hcmdpbi1sZWZ0Oi41aW4nPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5hKQotaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudDsgYW5kIDwvc3Bhbj48L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbCBzdHlsZT0nbWFyZ2luLWxlZnQ6LjVpbic+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPmIpIGEKLWNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2ggY29weSBvZiB0aGUgUHJvZ3JhbS4gPC9zcGFuPjwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkNvbnRyaWJ1dG9ycyBtYXkgbm90IHJlbW92ZSBvciBhbHRlciBhbnkKLWNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0uIDwvc3Bhbj48L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5FYWNoIENvbnRyaWJ1dG9yIG11c3QgaWRlbnRpZnkgaXRzZWxmIGFzIHRoZQotb3JpZ2luYXRvciBvZiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIGluIGEgbWFubmVyIHRoYXQgcmVhc29uYWJseSBhbGxvd3MKLXN1YnNlcXVlbnQgUmVjaXBpZW50cyB0byBpZGVudGlmeSB0aGUgb3JpZ2luYXRvciBvZiB0aGUgQ29udHJpYnV0aW9uLiA8L3NwYW4+PC9wPgotCi08cD48Yj48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L3NwYW4+PC9iPiA8L3A+Ci0KLTxwPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz5Db21tZXJjaWFsIGRpc3RyaWJ1dG9ycyBvZiBzb2Z0d2FyZSBtYXkKLWFjY2VwdCBjZXJ0YWluIHJlc3BvbnNpYmlsaXRpZXMgd2l0aCByZXNwZWN0IHRvIGVuZCB1c2VycywgYnVzaW5lc3MgcGFydG5lcnMKLWFuZCB0aGUgbGlrZS4gV2hpbGUgdGhpcyBsaWNlbnNlIGlzIGludGVuZGVkIHRvIGZhY2lsaXRhdGUgdGhlIGNvbW1lcmNpYWwgdXNlCi1vZiB0aGUgUHJvZ3JhbSwgdGhlIENvbnRyaWJ1dG9yIHdobyBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwKLXByb2R1Y3Qgb2ZmZXJpbmcgc2hvdWxkIGRvIHNvIGluIGEgbWFubmVyIHdoaWNoIGRvZXMgbm90IGNyZWF0ZSBwb3RlbnRpYWwKLWxpYWJpbGl0eSBmb3Igb3RoZXIgQ29udHJpYnV0b3JzLiBUaGVyZWZvcmUsIGlmIGEgQ29udHJpYnV0b3IgaW5jbHVkZXMgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBzdWNoIENvbnRyaWJ1dG9yICgmcXVvdDtDb21tZXJjaWFsCi1Db250cmlidXRvciZxdW90OykgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kIGluZGVtbmlmeSBldmVyeSBvdGhlcgotQ29udHJpYnV0b3IgKCZxdW90O0luZGVtbmlmaWVkIENvbnRyaWJ1dG9yJnF1b3Q7KSBhZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kCi1jb3N0cyAoY29sbGVjdGl2ZWx5ICZxdW90O0xvc3NlcyZxdW90OykgYXJpc2luZyBmcm9tIGNsYWltcywgbGF3c3VpdHMgYW5kIG90aGVyCi1sZWdhbCBhY3Rpb25zIGJyb3VnaHQgYnkgYSB0aGlyZCBwYXJ0eSBhZ2FpbnN0IHRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciB0bwotdGhlIGV4dGVudCBjYXVzZWQgYnkgdGhlIGFjdHMgb3Igb21pc3Npb25zIG9mIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvciBpbgotY29ubmVjdGlvbiB3aXRoIGl0cyBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsIHByb2R1Y3QKLW9mZmVyaW5nLiBUaGUgb2JsaWdhdGlvbnMgaW4gdGhpcyBzZWN0aW9uIGRvIG5vdCBhcHBseSB0byBhbnkgY2xhaW1zIG9yIExvc3NlcwotcmVsYXRpbmcgdG8gYW55IGFjdHVhbCBvciBhbGxlZ2VkIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBpbmZyaW5nZW1lbnQuIEluIG9yZGVyCi10byBxdWFsaWZ5LCBhbiBJbmRlbW5pZmllZCBDb250cmlidXRvciBtdXN0OiBhKSBwcm9tcHRseSBub3RpZnkgdGhlIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yIGluIHdyaXRpbmcgb2Ygc3VjaCBjbGFpbSwgYW5kIGIpIGFsbG93IHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCi10byBjb250cm9sLCBhbmQgY29vcGVyYXRlIHdpdGggdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZAotYW55IHJlbGF0ZWQgc2V0dGxlbWVudCBuZWdvdGlhdGlvbnMuIFRoZSBJbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUKLWluIGFueSBzdWNoIGNsYWltIGF0IGl0cyBvd24gZXhwZW5zZS48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlCi1Qcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZAotd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkgYWxvbmUuIFVuZGVyIHRoaXMKLXNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8gZGVmZW5kIGNsYWltcyBhZ2FpbnN0IHRoZQotb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UgcGVyZm9ybWFuY2UgY2xhaW1zIGFuZCB3YXJyYW50aWVzLCBhbmQgaWYgYQotY291cnQgcmVxdWlyZXMgYW55IG90aGVyIENvbnRyaWJ1dG9yIHRvIHBheSBhbnkgZGFtYWdlcyBhcyBhIHJlc3VsdCwgdGhlCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yIG11c3QgcGF5IHRob3NlIGRhbWFnZXMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz41LiBOTyBXQVJSQU5UWTwvc3Bhbj48L2I+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMKLUFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMgUFJPVklERUQgT04gQU4gJnF1b3Q7QVMgSVMmcXVvdDsgQkFTSVMsIFdJVEhPVVQKLVdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsCi1XSVRIT1VUIExJTUlUQVRJT04sIEFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsCi1NRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kIGRpc3RyaWJ1dGluZyB0aGUKLVByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMgZXhlcmNpc2Ugb2YgcmlnaHRzIHVuZGVyIHRoaXMKLUFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIHJpc2tzIGFuZCBjb3N0cyBvZiBwcm9ncmFtIGVycm9ycywKLWNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZSB0byBvciBsb3NzIG9mIGRhdGEsIHByb2dyYW1zIG9yCi1lcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvciBpbnRlcnJ1cHRpb24gb2Ygb3BlcmF0aW9ucy4gPC9zcGFuPjwvcD4KLQotPHA+PGI+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPjYuIERJU0NMQUlNRVIgT0YgTElBQklMSVRZPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUwotQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWSBMSUFCSUxJVFkgRk9SCi1BTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLShJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi1PRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORwotTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPUiBESVNUUklCVVRJT04gT0YKLVRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTIEdSQU5URUQgSEVSRVVOREVSLCBFVkVOIElGIEFEVklTRUQgT0YKLVRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuPC9zcGFuPiA8L3A+Ci0KLTxwPjxiPjxzcGFuIHN0eWxlPSdmb250LXNpemU6MTAuMHB0Jz43LiBHRU5FUkFMPC9zcGFuPjwvYj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkCi1vciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvcgotZW5mb3JjZWFiaWxpdHkgb2YgdGhlIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0Ci1mdXJ0aGVyIGFjdGlvbiBieSB0aGUgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZQotbWluaW11bSBleHRlbnQgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLjwvc3Bhbj4gPC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+SWYgUmVjaXBpZW50IGluc3RpdHV0ZXMgcGF0ZW50IGxpdGlnYXRpb24KLWFnYWluc3QgYW55IGVudGl0eSAoaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3VpdCkKLWFsbGVnaW5nIHRoYXQgdGhlIFByb2dyYW0gaXRzZWxmIChleGNsdWRpbmcgY29tYmluYXRpb25zIG9mIHRoZSBQcm9ncmFtIHdpdGgKLW90aGVyIHNvZnR3YXJlIG9yIGhhcmR3YXJlKSBpbmZyaW5nZXMgc3VjaCBSZWNpcGllbnQncyBwYXRlbnQocyksIHRoZW4gc3VjaAotUmVjaXBpZW50J3MgcmlnaHRzIGdyYW50ZWQgdW5kZXIgU2VjdGlvbiAyKGIpIHNoYWxsIHRlcm1pbmF0ZSBhcyBvZiB0aGUgZGF0ZQotc3VjaCBsaXRpZ2F0aW9uIGlzIGZpbGVkLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudAotc2hhbGwgdGVybWluYXRlIGlmIGl0IGZhaWxzIHRvIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IKLWNvbmRpdGlvbnMgb2YgdGhpcyBBZ3JlZW1lbnQgYW5kIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZQotcGVyaW9kIG9mIHRpbWUgYWZ0ZXIgYmVjb21pbmcgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MKLXJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZAotZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwKLVJlY2lwaWVudCdzIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieQotUmVjaXBpZW50IHJlbGF0aW5nIHRvIHRoZSBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLiA8L3NwYW4+PC9wPgotCi08cD48c3BhbiBzdHlsZT0nZm9udC1zaXplOjEwLjBwdCc+RXZlcnlvbmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUKLWNvcGllcyBvZiB0aGlzIEFncmVlbWVudCwgYnV0IGluIG9yZGVyIHRvIGF2b2lkIGluY29uc2lzdGVuY3kgdGhlIEFncmVlbWVudCBpcwotY29weXJpZ2h0ZWQgYW5kIG1heSBvbmx5IGJlIG1vZGlmaWVkIGluIHRoZSBmb2xsb3dpbmcgbWFubmVyLiBUaGUgQWdyZWVtZW50Ci1TdGV3YXJkIHJlc2VydmVzIHRoZSByaWdodCB0byBwdWJsaXNoIG5ldyB2ZXJzaW9ucyAoaW5jbHVkaW5nIHJldmlzaW9ucykgb2YKLXRoaXMgQWdyZWVtZW50IGZyb20gdGltZSB0byB0aW1lLiBObyBvbmUgb3RoZXIgdGhhbiB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgaGFzCi10aGUgcmlnaHQgdG8gbW9kaWZ5IHRoaXMgQWdyZWVtZW50LiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHRoZSBpbml0aWFsCi1BZ3JlZW1lbnQgU3Rld2FyZC4gVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYXkgYXNzaWduIHRoZSByZXNwb25zaWJpbGl0eSB0bwotc2VydmUgYXMgdGhlIEFncmVlbWVudCBTdGV3YXJkIHRvIGEgc3VpdGFibGUgc2VwYXJhdGUgZW50aXR5LiBFYWNoIG5ldyB2ZXJzaW9uCi1vZiB0aGUgQWdyZWVtZW50IHdpbGwgYmUgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gVGhlIFByb2dyYW0KLShpbmNsdWRpbmcgQ29udHJpYnV0aW9ucykgbWF5IGFsd2F5cyBiZSBkaXN0cmlidXRlZCBzdWJqZWN0IHRvIHRoZSB2ZXJzaW9uIG9mCi10aGUgQWdyZWVtZW50IHVuZGVyIHdoaWNoIGl0IHdhcyByZWNlaXZlZC4gSW4gYWRkaXRpb24sIGFmdGVyIGEgbmV3IHZlcnNpb24gb2YKLXRoZSBBZ3JlZW1lbnQgaXMgcHVibGlzaGVkLCBDb250cmlidXRvciBtYXkgZWxlY3QgdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbQotKGluY2x1ZGluZyBpdHMgQ29udHJpYnV0aW9ucykgdW5kZXIgdGhlIG5ldyB2ZXJzaW9uLiBFeGNlcHQgYXMgZXhwcmVzc2x5IHN0YXRlZAotaW4gU2VjdGlvbnMgMihhKSBhbmQgMihiKSBhYm92ZSwgUmVjaXBpZW50IHJlY2VpdmVzIG5vIHJpZ2h0cyBvciBsaWNlbnNlcyB0bwotdGhlIGludGVsbGVjdHVhbCBwcm9wZXJ0eSBvZiBhbnkgQ29udHJpYnV0b3IgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIKLWV4cHJlc3NseSwgYnkgaW1wbGljYXRpb24sIGVzdG9wcGVsIG9yIG90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QKLWV4cHJlc3NseSBncmFudGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50IGFyZSByZXNlcnZlZC48L3NwYW4+IDwvcD4KLQotPHA+PHNwYW4gc3R5bGU9J2ZvbnQtc2l6ZToxMC4wcHQnPlRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZQotU3RhdGUgb2YgTmV3IFlvcmsgYW5kIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZgotQW1lcmljYS4gTm8gcGFydHkgdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzCi1BZ3JlZW1lbnQgbW9yZSB0aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzCi1pdHMgcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uPC9zcGFuPiA8L3A+Ci0KLTxwIGNsYXNzPU1zb05vcm1hbD48L3A+Ci0KLTwvZGl2PgotCi08L2JvZHk+Ci0KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC5idWlsZC1mZWF0dXJlL2VwbC12MjAuaHRtbCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLmJ1aWxkLWZlYXR1cmUvZXBsLXYyMC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5YTgzODgKLS0tIC9kZXYvbnVsbAorKysgYi9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC5idWlsZC1mZWF0dXJlL2VwbC12MjAuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1OClodHRwczovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC0yLjAvRVBMLTIuMC5odG1sIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgICAKKyAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOworICAgICAgfQorICAgICAgaDF7CisgICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKKyAgICAgIH0KKyAgICAgIGgyeworICAgICAgICBmb250LXNpemU6MWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOworICAgICAgICBtYXJnaW4tdG9wOjFlbTsKKyAgICAgIH0KKyAgICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOworICAgICAgfQorICAgICAgdWwsIG9seworICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPGRpdiBpZD0iZWlkLWNocm9tZS1leHRlbnNpb24taXMtaW5zdGFsbGVkIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLmJ1aWxkLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwuYnVpbGQtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKaW5kZXggZmIyNTE3OC4uNDUyMDgxNSAxMDA2NDQKLS0tIGEvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwuYnVpbGQtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKKysrIGIvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwuYnVpbGQtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTEgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCkBAIC0yMiw5ICsyMiw5IEBACiAKIGNvcHlyaWdodD1Db3B5cmlnaHQgKGMpIDIwMDcsIDIwMTEgT2JlbywgRnJhbmNlLiBcblwKIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMgXG5cCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgXG5cCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAgXG5cCiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCBcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIFxuXAoraHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8gXG5cCiAgXG5cCiBDb250cmlidXRvcnM6IFxuXAogICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpAQCAtNTcsOCArNTcsOCBAQAogXG5cCiBVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlXG5cCiBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZlxuXAotdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXNcblwKLXByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbC5cblwKK3RoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgiRVBMIikuIEEgY29weSBvZiB0aGUgRVBMIGlzXG5cCitwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8uXG5cCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKIFxuXAogQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsXG5cCmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC5idWlsZC1mZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLmJ1aWxkLWZlYXR1cmUvbGljZW5zZS5odG1sCmluZGV4IGYxOWM0ODMuLmMzNWQ4MzQgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLmJ1aWxkLWZlYXR1cmUvbGljZW5zZS5odG1sCisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLmJ1aWxkLWZlYXR1cmUvbGljZW5zZS5odG1sCkBAIC0yMSw4ICsyMSw4IEBACiAKIDxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KIAotPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAotICAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KKzxwPlVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAKKyAgICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiAgICBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5Db250ZW50IGluY2x1ZGVzLCBidXQgaXMgbm90IGxpbWl0ZWQgdG8sIHNvdXJjZSBjb2RlLCBvYmplY3QgY29kZSwgZG9jdW1lbnRhdGlvbiBhbmQgb3RoZXIgZmlsZXMgbWFpbnRhaW5lZCBpbiB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uIHNvdXJjZSBjb2RlCmRpZmYgLS1naXQgYS9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC5yZWxlbmcucGFyZW50L3BvbS54bWwgYi9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC5yZWxlbmcucGFyZW50L3BvbS54bWwKaW5kZXggZWM3OWE4Mi4uYmJiMDUzNyAxMDA2NDQKLS0tIGEvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwucmVsZW5nLnBhcmVudC9wb20ueG1sCisrKyBiL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlbGVuZy5wYXJlbnQvcG9tLnhtbApAQCAtMyw5ICszLDkgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMTEsMjAxMiBPYmVvCiAgIAogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tPgogCiA8cHJvamVjdCB4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIgpAQCAtMjQsMTIgKzI0LDEyIEBACiAKIAk8bGljZW5zZXM+CiAJCTxsaWNlbnNlPgotCQkJPG5hbWU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wPC9uYW1lPgorCQkJPG5hbWU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wPC9uYW1lPgogCQkJPGNvbW1lbnRzPgogICAgICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgICAgICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlCi0gICAgICAgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgICAgICAgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgICAgICAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKICAgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtCiAgICAgICA8L2NvbW1lbnRzPgpkaWZmIC0tZ2l0IGEvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwudXBkYXRlL2FkZERvd25sb2FkU3RhdHMueHNsIGIvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwudXBkYXRlL2FkZERvd25sb2FkU3RhdHMueHNsCmluZGV4IGJkMTRiZDAuLmI0YWU0YWYgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLnVwZGF0ZS9hZGREb3dubG9hZFN0YXRzLnhzbAorKysgYi9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC51cGRhdGUvYWRkRG93bmxvYWRTdGF0cy54c2wKQEAgLTEsOSArMSw5IEBACiA8IS0tCiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlCiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogCiBDb250cmlidXRvcnM6CiBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBjb250cmlidXRpb24KZGlmZiAtLWdpdCBhL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLnVwZGF0ZS9wcm9tb3Rlci54bWwgYi9yZWxlbmcvb3JnLmVjbGlwc2UubTJtLmF0bC51cGRhdGUvcHJvbW90ZXIueG1sCmluZGV4IDc4OTA2OWQuLmQxODAzM2MgMTAwNjQ0Ci0tLSBhL3JlbGVuZy9vcmcuZWNsaXBzZS5tMm0uYXRsLnVwZGF0ZS9wcm9tb3Rlci54bWwKKysrIGIvcmVsZW5nL29yZy5lY2xpcHNlLm0ybS5hdGwudXBkYXRlL3Byb21vdGVyLnhtbApAQCAtMiw5ICsyLDkgQEAKIDwhLS0KICAgQ29weXJpZ2h0IChjKSAyMDExLCAyMDEyIE9iZW8uCiAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAKICAgQ29udHJpYnV0b3JzOgogICAgICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvcG9tLnhtbCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3BvbS54bWwKaW5kZXggYzQxMjEzYy4uMThjNzA2OSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvcG9tLnhtbAorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0FkZFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BZGRUZXN0LmphdmEKaW5kZXggMmQ2OWZhZS4uMDMwOGIwMCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0FkZFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQWRkVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbGxpbnN0SW5UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQWxsaW5zdEluVGVzdC5qYXZhCmluZGV4IDVlMjdkMmUuLjQ0YzFmZmMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbGxpbnN0SW5UZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0FsbGluc3RJblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQWxsaW5zdFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbGxpbnN0VGVzdC5qYXZhCmluZGV4IDFmMzQyYmUuLjBhNmRmZWUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbGxpbnN0VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbGxpbnN0VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbmRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQW5kVGVzdC5qYXZhCmluZGV4IDU4NjIwNjMuLjI0YWE4OTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9BbmRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0FuZFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQnJhbmNoSW5zdHJ1Y3Rpb25UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQnJhbmNoSW5zdHJ1Y3Rpb25UZXN0LmphdmEKaW5kZXggMzBkODBmMy4uZjFkNmE1ZSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0JyYW5jaEluc3RydWN0aW9uVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9CcmFuY2hJbnN0cnVjdGlvblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQ29kZUJsb2NrSW5zdHJ1Y3Rpb25UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQ29kZUJsb2NrSW5zdHJ1Y3Rpb25UZXN0LmphdmEKaW5kZXggODMzMWMwMC4uYTE2OTRlNiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0NvZGVCbG9ja0luc3RydWN0aW9uVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Db2RlQmxvY2tJbnN0cnVjdGlvblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQ29kZUJsb2NrVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0NvZGVCbG9ja1Rlc3QuamF2YQppbmRleCBkYmZkNjI0Li4wNTU3Mjc5IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvQ29kZUJsb2NrVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Db2RlQmxvY2tUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0RlbGV0ZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9EZWxldGVUZXN0LmphdmEKaW5kZXggOTdlMTAxOC4uYTc5NDZhNyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0RlbGV0ZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRGVsZXRlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9EdXBUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRHVwVGVzdC5qYXZhCmluZGV4IGY0YWI5ODguLjExOWE0N2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9EdXBUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0R1cFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRHVwWDFUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRHVwWDFUZXN0LmphdmEKaW5kZXggNDE3ZTYwNC4uNmMyMTg0NyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0R1cFgxVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9EdXBYMVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRU1GVFZNVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0VNRlRWTVRlc3QuamF2YQppbmRleCBkY2FhMTU0Li4yNTE0ZTMzIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRU1GVFZNVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FTUZUVk1UZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0VtZnR2bUFsbFRlc3RzLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRW1mdHZtQWxsVGVzdHMuamF2YQppbmRleCAzMTY5NGQ4Li5hMDc5YjAyIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRW1mdHZtQWxsVGVzdHMuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRW1mdHZtQWxsVGVzdHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEtMjAxMiBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FbWZ0dm1FeGFtcGxlLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRW1mdHZtRXhhbXBsZS5qYXZhCmluZGV4IGJiNmUyMTguLmJmZDdlNDEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FbWZ0dm1FeGFtcGxlLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0VtZnR2bUV4YW1wbGUuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRW1mdHZtVGVzdHMuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FbWZ0dm1UZXN0cy5qYXZhCmluZGV4IDQzNjdhMzguLmViNDFmYjAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FbWZ0dm1UZXN0cy5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FbWZ0dm1UZXN0cy5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9FbmRpdGVyYXRlVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0VuZGl0ZXJhdGVUZXN0LmphdmEKaW5kZXggNmY1MDQwNy4uZDY0ZGUyOSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0VuZGl0ZXJhdGVUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0VuZGl0ZXJhdGVUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0V4ZWNFbnZUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRXhlY0VudlRlc3QuamF2YQppbmRleCA3N2U1Y2RmLi4zYzcxZDhiIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRXhlY0VudlRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRXhlY0VudlRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRmVhdHVyZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GZWF0dXJlVGVzdC5qYXZhCmluZGV4IDc1MjI4NDUuLjUxMGE1OTggMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GZWF0dXJlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GZWF0dXJlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaWJvbmFjY2lOYXRpdmVUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRmlib25hY2NpTmF0aXZlVGVzdC5qYXZhCmluZGV4IGVjZjhmZmMuLmUyODQwMjQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaWJvbmFjY2lOYXRpdmVUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpYm9uYWNjaU5hdGl2ZVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaWVsZEluc3RydWN0aW9uVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpZWxkSW5zdHJ1Y3Rpb25UZXN0LmphdmEKaW5kZXggNzNkZjg5OS4uOTBlNjcxYiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpZWxkSW5zdHJ1Y3Rpb25UZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpZWxkSW5zdHJ1Y3Rpb25UZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpZWxkVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpZWxkVGVzdC5qYXZhCmluZGV4IDA4MGE1M2IuLjZjMzM3MWUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaWVsZFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRmllbGRUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpbmR0eXBlU1Rlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaW5kdHlwZVNUZXN0LmphdmEKaW5kZXggOTU3NTNlOS4uNjllOWYyNiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpbmR0eXBlU1Rlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRmluZHR5cGVTVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaW5kdHlwZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9GaW5kdHlwZVRlc3QuamF2YQppbmRleCBiNDQ0NTBjLi5mMDVmMGE0IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvRmluZHR5cGVUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ZpbmR0eXBlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9HZXRTdGF0aWNUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0U3RhdGljVGVzdC5qYXZhCmluZGV4IDI5Njc3N2MuLmRjNGFjOTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9HZXRTdGF0aWNUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldFN0YXRpY1Rlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldFRlc3QuamF2YQppbmRleCBhYjU2MThmLi44MTZkMjUxIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9HZXRUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldFRyYW5zVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldFRyYW5zVGVzdC5qYXZhCmluZGV4IDUxNzk5MzYuLjI3N2E5ZmUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9HZXRUcmFuc1Rlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0VHJhbnNUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldGNiVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldGNiVGVzdC5qYXZhCmluZGV4IDA4NjEwMGIuLmU4MjZiMTMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9HZXRjYlRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0Y2JUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldGVudlRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9HZXRlbnZUZXN0LmphdmEKaW5kZXggZTYyNmM5OC4uZTJjZTk4NCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldGVudlRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0ZW52VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMS0yMDEyIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0dldGVudnR5cGVUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0ZW52dHlwZVRlc3QuamF2YQppbmRleCAxYTQ5ZmRlLi40ZjUyZDVmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0ZW52dHlwZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR2V0ZW52dHlwZVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvR290b1Rlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Hb3RvVGVzdC5qYXZhCmluZGV4IDZjYjdmNmEuLmU4MTkzN2QgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Hb3RvVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Hb3RvVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZlRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZlRlc3QuamF2YQppbmRleCA1NGZhZDk0Li5lMmVhYjE5IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSWZUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0lmVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZm5UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSWZuVGVzdC5qYXZhCmluZGV4IDU4NmJkYzQuLmVhMmE0OTQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZm5UZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0lmblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSWZ0ZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZnRlVGVzdC5qYXZhCmluZGV4IDA1YjVkOTIuLjM2YWY1NTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZnRlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JZnRlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbXBsaWVzVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ltcGxpZXNUZXN0LmphdmEKaW5kZXggM2Y0MjdjZi4uNDU0M2VhNSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ltcGxpZXNUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ltcGxpZXNUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0lucHV0UnVsZUVsZW1lbnRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW5wdXRSdWxlRWxlbWVudFRlc3QuamF2YQppbmRleCBhZWEzYWFjLi4yZTllYTIzIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW5wdXRSdWxlRWxlbWVudFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW5wdXRSdWxlRWxlbWVudFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW5zZXJ0VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0luc2VydFRlc3QuamF2YQppbmRleCA3ZGYwNjU3Li40ZGQ4ZjdmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW5zZXJ0VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnNlcnRUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0luc3RydWN0aW9uVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0luc3RydWN0aW9uVGVzdC5qYXZhCmluZGV4IDI3Y2FiNWIuLmJiOTkwZWEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnN0cnVjdGlvblRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW5zdHJ1Y3Rpb25UZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZUFsbENic1Rlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VBbGxDYnNUZXN0LmphdmEKaW5kZXggZDNhMmEwZS4uYTYyOGZkNCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZUFsbENic1Rlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlQWxsQ2JzVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VDYlNUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlQ2JTVGVzdC5qYXZhCmluZGV4IGQxODQyMjMuLjI0NTI2MzkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VDYlNUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZUNiU1Rlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlQ2JUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlQ2JUZXN0LmphdmEKaW5kZXggYzNlNWVkNC4uMzdkNDU4MyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZUNiVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VDYlRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlSW5zdHJ1Y3Rpb25UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlSW5zdHJ1Y3Rpb25UZXN0LmphdmEKaW5kZXggZGZjMDBiZi4uMzBiNDQ2OCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZUluc3RydWN0aW9uVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VJbnN0cnVjdGlvblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlT3BlcmF0aW9uSW5zdHJ1Y3Rpb25UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlT3BlcmF0aW9uSW5zdHJ1Y3Rpb25UZXN0LmphdmEKaW5kZXggNTAxNTg2ZC4uMDhhMjcwZCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZU9wZXJhdGlvbkluc3RydWN0aW9uVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VPcGVyYXRpb25JbnN0cnVjdGlvblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlU3RhdGljVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZVN0YXRpY1Rlc3QuamF2YQppbmRleCAzZDM1OGY4Li4yZTQ5MjNhIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlU3RhdGljVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VTdGF0aWNUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZVN1cGVyVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZVN1cGVyVGVzdC5qYXZhCmluZGV4IGU0NDc4OGIuLjBmOTAwYjQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VTdXBlclRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlU3VwZXJUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JbnZva2VUZXN0LmphdmEKaW5kZXggZWFjZWVlYS4uZWFjZWNkYiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0ludm9rZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSW52b2tlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Jc251bGxUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSXNudWxsVGVzdC5qYXZhCmluZGV4IGQ1Nzg4MzguLjBhMTYzNjUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Jc251bGxUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0lzbnVsbFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvSXRlcmF0ZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JdGVyYXRlVGVzdC5qYXZhCmluZGV4IGIwNWI0YzEuLjVjMDM5MDEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JdGVyYXRlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9JdGVyYXRlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9MaW5lTnVtYmVyVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0xpbmVOdW1iZXJUZXN0LmphdmEKaW5kZXggYjFmNWQ5Mi4uNjg3MWY1NSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0xpbmVOdW1iZXJUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0xpbmVOdW1iZXJUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0xvYWRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9hZFRlc3QuamF2YQppbmRleCA5MzM0YmZjLi45YjVhZThiIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9hZFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9hZFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0xvY2FsVmFyaWFibGVJbnN0cnVjdGlvblRlc3QuamF2YQppbmRleCBmYTdhYzRiLi5mNzRjMDllIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9jYWxWYXJpYWJsZUluc3RydWN0aW9uVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Mb2NhbFZhcmlhYmxlSW5zdHJ1Y3Rpb25UZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL0xvY2FsVmFyaWFibGVUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9jYWxWYXJpYWJsZVRlc3QuamF2YQppbmRleCAyMDdiZjY3Li43ZGE3Mzg1IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9jYWxWYXJpYWJsZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTG9jYWxWYXJpYWJsZVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTWF0Y2hTVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01hdGNoU1Rlc3QuamF2YQppbmRleCAzZjk2MTI3Li5mNGNiM2RhIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTWF0Y2hTVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9NYXRjaFNUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01hdGNoVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01hdGNoVGVzdC5qYXZhCmluZGV4IGNiYTU1NDEuLjlkN2NhYjggMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9NYXRjaFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTWF0Y2hUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01ldGFtb2RlbFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9NZXRhbW9kZWxUZXN0LmphdmEKaW5kZXggNzA0MGI4MC4uMDVmMTdhZSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01ldGFtb2RlbFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTWV0YW1vZGVsVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Nb2RlbERlY2xhcmF0aW9uVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZGVsRGVjbGFyYXRpb25UZXN0LmphdmEKaW5kZXggMjM5Y2VhZS4uYmQ1MjZhOSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZGVsRGVjbGFyYXRpb25UZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZGVsRGVjbGFyYXRpb25UZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZGVsVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZGVsVGVzdC5qYXZhCmluZGV4IGVkZGYzOGMuLjc2ZDU1MDIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Nb2RlbFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTW9kZWxUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZHVsZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Nb2R1bGVUZXN0LmphdmEKaW5kZXggZGI3NWIxNC4uYjM5MTc1YSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL01vZHVsZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTW9kdWxlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OYW1lZEVsZW1lbnRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTmFtZWRFbGVtZW50VGVzdC5qYXZhCmluZGV4IGJiYjhlOGEuLjQzNDkzOTkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OYW1lZEVsZW1lbnRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL05hbWVkRWxlbWVudFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTmV3U1Rlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OZXdTVGVzdC5qYXZhCmluZGV4IDc4ZDU1OTcuLjEzNmNiMjEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OZXdTVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OZXdTVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OZXdUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTmV3VGVzdC5qYXZhCmluZGV4IDFiODc1ZmEuLjgwMjlmYTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9OZXdUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL05ld1Rlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTm90VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL05vdFRlc3QuamF2YQppbmRleCAwZTJlZmJkLi5hMTg5MmEzIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvTm90VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Ob3RUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL09wZXJhdGlvblRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9PcGVyYXRpb25UZXN0LmphdmEKaW5kZXggMzRkZTQxZi4uN2I3MzNiZCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL09wZXJhdGlvblRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvT3BlcmF0aW9uVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9PclRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9PclRlc3QuamF2YQppbmRleCA3YThmNzM5Li44Y2U1ZmUxIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvT3JUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL09yVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9PdXRwdXRSdWxlRWxlbWVudFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9PdXRwdXRSdWxlRWxlbWVudFRlc3QuamF2YQppbmRleCAyNDI3NTljLi4wOWUyZGMyIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvT3V0cHV0UnVsZUVsZW1lbnRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL091dHB1dFJ1bGVFbGVtZW50VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9QYXJhbWV0ZXJUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUGFyYW1ldGVyVGVzdC5qYXZhCmluZGV4IGEwZmU1MTEuLjllOGE4ZDkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9QYXJhbWV0ZXJUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1BhcmFtZXRlclRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUG9wVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1BvcFRlc3QuamF2YQppbmRleCA1NTc3ODYwLi41MjRjMzY1IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUG9wVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Qb3BUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1B1c2hUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaFRlc3QuamF2YQppbmRleCBlYWM3ZjNhLi44ZGI1NWFjIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaGZUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaGZUZXN0LmphdmEKaW5kZXggNWI3Mjg5Mi4uZjQ5NmU2MiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1B1c2hmVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9QdXNoZlRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaHRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUHVzaHRUZXN0LmphdmEKaW5kZXggZjRjNzRhZS4uNzgyY2E5OSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1B1c2h0VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9QdXNodFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUmVtb3ZlVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1JlbW92ZVRlc3QuamF2YQppbmRleCAwYTcxODg4Li5lYWMwOGVjIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUmVtb3ZlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9SZW1vdmVUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1JldHVyblRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9SZXR1cm5UZXN0LmphdmEKaW5kZXggMzFmNDUxYy4uYWVjZDk4YiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1JldHVyblRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUmV0dXJuVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9SdWxlRWxlbWVudFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9SdWxlRWxlbWVudFRlc3QuamF2YQppbmRleCBjYTAxN2I4Li40M2M3YmRiIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvUnVsZUVsZW1lbnRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1J1bGVFbGVtZW50VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9SdWxlVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1J1bGVUZXN0LmphdmEKaW5kZXggZWY5MjM1Zi4uM2E2MjJlZiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1J1bGVUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1J1bGVUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1NldFN0YXRpY1Rlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9TZXRTdGF0aWNUZXN0LmphdmEKaW5kZXggYzMxZGQ2MS4uNzBhNTBiZiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1NldFN0YXRpY1Rlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvU2V0U3RhdGljVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9TZXRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvU2V0VGVzdC5qYXZhCmluZGV4IDQwZGExMWEuLjViNWJhYTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9TZXRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1NldFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvU3RvcmVUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvU3RvcmVUZXN0LmphdmEKaW5kZXggNGVhNTM5OC4uNGYwOTUzNiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1N0b3JlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9TdG9yZVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvU3dhcFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Td2FwVGVzdC5qYXZhCmluZGV4IGVmOGNkNDkuLmEzM2ZlNDEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Td2FwVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Td2FwVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Td2FwWDFUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvU3dhcFgxVGVzdC5qYXZhCmluZGV4IDNjMGNlNzMuLmEyYzUwNjUgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Td2FwWDFUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1N3YXBYMVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvVHlwZWRFbGVtZW50VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1R5cGVkRWxlbWVudFRlc3QuamF2YQppbmRleCBiM2JlNDY5Li4xMGE2MDg0IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvVHlwZWRFbGVtZW50VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9UeXBlZEVsZW1lbnRUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1hvclRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9Yb3JUZXN0LmphdmEKaW5kZXggMDQ4NDY4Mi4uMDYyMmY2MCAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL1hvclRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvWG9yVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9jb21waWxlci9BdGxSZXNvdXJjZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9jb21waWxlci9BdGxSZXNvdXJjZVRlc3QuamF2YQppbmRleCAzM2I2YjQ2Li5lNmYzZmIyIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvY29tcGlsZXIvQXRsUmVzb3VyY2VUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL2NvbXBpbGVyL0F0bFJlc291cmNlVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9jb21waWxlci9Db21waWxlclRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9jb21waWxlci9Db21waWxlclRlc3QuamF2YQppbmRleCA1ZmJmZmU0Li5hMTlhZDJmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvY29tcGlsZXIvQ29tcGlsZXJUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL2NvbXBpbGVyL0NvbXBpbGVyVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9maWIvRmlib25hY2NpLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvZmliL0ZpYm9uYWNjaS5qYXZhCmluZGV4IGVhMzcwMDUuLjFjNDlhYmEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9maWIvRmlib25hY2NpLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL2ZpYi9GaWJvbmFjY2kuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9pbnRlZ3JhdGlvbi9JbnRlZ3JhdGlvblRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9pbnRlZ3JhdGlvbi9JbnRlZ3JhdGlvblRlc3QuamF2YQppbmRleCBiYzMxNTY5Li41OWI5NzlmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvaW50ZWdyYXRpb24vSW50ZWdyYXRpb25UZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL2ludGVncmF0aW9uL0ludGVncmF0aW9uVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wZXJmb3JtYW5jZS9BVEx0b0VNRlRWTVBlcmZvcm1hbmNlVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3BlcmZvcm1hbmNlL0FUTHRvRU1GVFZNUGVyZm9ybWFuY2VUZXN0LmphdmEKaW5kZXggMjk4Y2FiYy4uM2M5NDgyMyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3BlcmZvcm1hbmNlL0FUTHRvRU1GVFZNUGVyZm9ybWFuY2VUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3BlcmZvcm1hbmNlL0FUTHRvRU1GVFZNUGVyZm9ybWFuY2VUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDE0IERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3BlcmZvcm1hbmNlL0Vjb3JlQ29weVBlcmZvcm1hbmNlVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3BlcmZvcm1hbmNlL0Vjb3JlQ29weVBlcmZvcm1hbmNlVGVzdC5qYXZhCmluZGV4IDY5YTM3ZGUuLjQxODM3YjAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wZXJmb3JtYW5jZS9FY29yZUNvcHlQZXJmb3JtYW5jZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcGVyZm9ybWFuY2UvRWNvcmVDb3B5UGVyZm9ybWFuY2VUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzLTIwMTQgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcGVyZm9ybWFuY2UvUGVyZm9ybWFuY2VUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcGVyZm9ybWFuY2UvUGVyZm9ybWFuY2VUZXN0LmphdmEKaW5kZXggNWI5Zjk4Mi4uOWQ4OGE3NSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3BlcmZvcm1hbmNlL1BlcmZvcm1hbmNlVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wZXJmb3JtYW5jZS9QZXJmb3JtYW5jZVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTMtMjAxNCBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9BLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcG9qby9Qb2pvQS5qYXZhCmluZGV4IDllMjg0NGIuLmNmYzgyZDEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9BLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3Bvam8vUG9qb0EuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTMgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcG9qby9Qb2pvQi5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3Bvam8vUG9qb0IuamF2YQppbmRleCBiNzQwMmQ2Li42YjY1YjY4IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcG9qby9Qb2pvQi5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9CLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3Bvam8vUG9qb0ZhY3RvcnkuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9GYWN0b3J5LmphdmEKaW5kZXggY2ExNjNkNS4uNDdmZmJmZiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3Bvam8vUG9qb0ZhY3RvcnkuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcG9qby9Qb2pvRmFjdG9yeS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9Nb2RlbFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9Nb2RlbFRlc3QuamF2YQppbmRleCAzM2Q4N2NlLi4yNjAyNTNmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcG9qby9Qb2pvTW9kZWxUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3Bvam8vUG9qb01vZGVsVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9QYWNrYWdlLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdGVzdHMvcG9qby9Qb2pvUGFja2FnZS5qYXZhCmluZGV4IDkzZGUzMzEuLmJmNGE0ZGIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90ZXN0cy9wb2pvL1Bvam9QYWNrYWdlLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3Rlc3RzL3Bvam8vUG9qb1BhY2thZ2UuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTMgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9FTUZUVk1VdGlsVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvRU1GVFZNVXRpbFRlc3QuamF2YQppbmRleCAxYWFiMTdiLi4wOGQ5YTJiIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9FTUZUVk1VdGlsVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0VNRlRWTVV0aWxUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDE2LTIwMTcgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9FeGVjRW52UG9vbFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0V4ZWNFbnZQb29sVGVzdC5qYXZhCmluZGV4IGNlOWE4ZGMuLmI3MmIwODggMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0V4ZWNFbnZQb29sVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0V4ZWNFbnZQb29sVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMyBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlCYWdPbkNvbGxlY3Rpb25UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5QmFnT25Db2xsZWN0aW9uVGVzdC5qYXZhCmluZGV4IDc5NjIzZGYuLjI0OWFlMGYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlCYWdPbkNvbGxlY3Rpb25UZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUJhZ09uQ29sbGVjdGlvblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5QmFnVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUJhZ1Rlc3QuamF2YQppbmRleCA1OTM2OWQzLi42Yzg2YTkzIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5QmFnVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlCYWdUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEyIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUNvbGxlY3Rpb25UZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5Q29sbGVjdGlvblRlc3QuamF2YQppbmRleCA4ZGMxMGQxLi40NWJlZjJiIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5Q29sbGVjdGlvblRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5Q29sbGVjdGlvblRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5TGlzdE9uQ29sbGVjdGlvblRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlMaXN0T25Db2xsZWN0aW9uVGVzdC5qYXZhCmluZGV4IDBkYTk0MmUuLmI1OTZkNzYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlMaXN0T25Db2xsZWN0aW9uVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlMaXN0T25Db2xsZWN0aW9uVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMiBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlMaXN0T25MaXN0VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUxpc3RPbkxpc3RUZXN0LmphdmEKaW5kZXggZmM0Y2FlMS4uYWM1YjUxYSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUxpc3RPbkxpc3RUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUxpc3RPbkxpc3RUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEyIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eUxpc3RUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5TGlzdFRlc3QuamF2YQppbmRleCBiMTg5NWNkLi5jMGI2NjZmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5TGlzdFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5TGlzdFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5T3JkZXJlZFNldFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlPcmRlcmVkU2V0VGVzdC5qYXZhCmluZGV4IDRlYTA1ODcuLjE0ZTAyMzIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlPcmRlcmVkU2V0VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlPcmRlcmVkU2V0VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMiBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlTZXRPblNldFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlTZXRPblNldFRlc3QuamF2YQppbmRleCA0MWFlNWE1Li5mYTQ1NzdkIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5U2V0T25TZXRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eVNldE9uU2V0VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMiBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlTZXRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9MYXp5U2V0VGVzdC5qYXZhCmluZGV4IDQ2MDkzZDAuLmFmYzdlZDkgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL0xhenlTZXRUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvTGF6eVNldFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTIgRGVubmlzIFdhZ2VsYWFyLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9PQ0xPcGVyYXRpb25zVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvT0NMT3BlcmF0aW9uc1Rlc3QuamF2YQppbmRleCA3YzczYjBlLi5lNGMzMjQ0IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9PQ0xPcGVyYXRpb25zVGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL09DTE9wZXJhdGlvbnNUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvU3RhY2tGcmFtZVRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL1N0YWNrRnJhbWVUZXN0LmphdmEKaW5kZXggNDhlNDVjOC4uNjA4MGM0MyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvU3RhY2tGcmFtZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdXRpbC90ZXN0cy9TdGFja0ZyYW1lVGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxNiBEZW5uaXMgV2FnZWxhYXIuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS91dGlsL3Rlc3RzL1R1cGxlVGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvVHVwbGVUZXN0LmphdmEKaW5kZXggNDdhMWMwOS4uNmZhNGNmNSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvVHVwbGVUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3V0aWwvdGVzdHMvVHVwbGVUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDEzIERlbm5pcyBXYWdlbGFhci4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvcG9tLnhtbCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3BvbS54bWwKaW5kZXggYzFlMDA5Yi4uZGM4YWU2YiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvcG9tLnhtbAorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1NvdXJjZUVsZW1lbnRMaXN0VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1NvdXJjZUVsZW1lbnRMaXN0VGVzdC5qYXZhCmluZGV4IDQzNzYyYTguLjkwYjcyYjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9Tb3VyY2VFbGVtZW50TGlzdFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvU291cmNlRWxlbWVudExpc3RUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1NvdXJjZUVsZW1lbnRUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvU291cmNlRWxlbWVudFRlc3QuamF2YQppbmRleCBlYzg1ZDNjLi5kN2I1YWM0IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvU291cmNlRWxlbWVudFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvU291cmNlRWxlbWVudFRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVGFyZ2V0RWxlbWVudFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UYXJnZXRFbGVtZW50VGVzdC5qYXZhCmluZGV4IGFmMzgzMWIuLmM5NDA2MTQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UYXJnZXRFbGVtZW50VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UYXJnZXRFbGVtZW50VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUFsbFRlc3RzLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VBbGxUZXN0cy5qYXZhCmluZGV4IGJmYzdiMmYuLmJhMTE1ZjcgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUFsbFRlc3RzLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlQWxsVGVzdHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VFbGVtZW50VGVzdC5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlRWxlbWVudFRlc3QuamF2YQppbmRleCA4ZGFjZDJkLi43M2IwYjE2IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VFbGVtZW50VGVzdC5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUVsZW1lbnRUZXN0LmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlRXhhbXBsZS5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlRXhhbXBsZS5qYXZhCmluZGV4IDZiMjBiNmQuLjhmNTBhZjYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUV4YW1wbGUuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VFeGFtcGxlLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlTGlua1NldFRlc3QuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUxpbmtTZXRUZXN0LmphdmEKaW5kZXggZmY0OTdhYS4uMjU2NDZmZiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlTGlua1NldFRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VMaW5rU2V0VGVzdC5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAxMSBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbC4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgIERlbm5pcyBXYWdlbGFhciwgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwgLSBpbml0aWFsIEFQSSBhbmQKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUxpbmtUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VMaW5rVGVzdC5qYXZhCmluZGV4IDNiMWYxYzcuLjc5NmQ5NzMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZUxpbmtUZXN0LmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlTGlua1Rlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VUZXN0cy5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlVGVzdHMuamF2YQppbmRleCBlYzc4OWUzLi4zZTZmZWJkIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VUZXN0cy5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwuZW1mdHZtLnRyYWNlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL2VtZnR2bS90cmFjZS90ZXN0cy9UcmFjZVRlc3RzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDExIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgRGVubmlzIFdhZ2VsYWFyLCBWcmlqZSBVbml2ZXJzaXRlaXQgQnJ1c3NlbCAtIGluaXRpYWwgQVBJIGFuZApkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC5lbWZ0dm0udHJhY2UudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvZW1mdHZtL3RyYWNlL3Rlc3RzL1RyYWNlZFJ1bGVUZXN0LmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VkUnVsZVRlc3QuamF2YQppbmRleCA0YTJkMzFkLi45ZDZhZjU1IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VkUnVsZVRlc3QuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLmVtZnR2bS50cmFjZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9lbWZ0dm0vdHJhY2UvdGVzdHMvVHJhY2VkUnVsZVRlc3QuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEgVnJpamUgVW5pdmVyc2l0ZWl0IEJydXNzZWwuCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBEZW5uaXMgV2FnZWxhYXIsIFZyaWplIFVuaXZlcnNpdGVpdCBCcnVzc2VsIC0gaW5pdGlhbCBBUEkgYW5kCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLWZlYXR1cmUvY29weXJpZ2h0LnR4dCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9jb3B5cmlnaHQudHh0CmluZGV4IGE2YTBmM2YuLjI1OTIxMTAgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9jb3B5cmlnaHQudHh0CisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9jb3B5cmlnaHQudHh0CkBAIC0xLDggKzEsOCBAQAogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uCiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogCiBDb250cmlidXRvcnM6CiAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2VwbC12MTAuaHRtbCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9lcGwtdjEwLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGY5NTdmM2UuLjAwMDAwMDAKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2VwbC12MTAuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1OSArMCwwIEBACi08IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+Ci08IS0tIHNhdmVkIGZyb20gdXJsPSgwMDQxKWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIC0tPgotPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiPgotCi08dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMS4wPC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci0gIGJvZHkgewotICAgIHNpemU6IDguNWluIDExLjBpbjsKLSAgICBtYXJnaW46IDAuMjVpbiAwLjVpbiAwLjI1aW4gMC41aW47Ci0gICAgdGFiLWludGVydmFsOiAwLjVpbjsKLSAgICB9Ci0gIHAgeyAgCQotICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwotICAgIG1hcmdpbi10b3A6ICAwLjVlbTsKLSAgICBtYXJnaW4tYm90dG9tOiAwLjVlbTsKLSAgICB9Ci0gIHAubGlzdCB7Ci0gIAltYXJnaW4tbGVmdDogMC41aW47Ci0gICAgbWFyZ2luLXRvcDogIDAuMDVlbTsKLSAgICBtYXJnaW4tYm90dG9tOiAwLjA1ZW07Ci0gICAgfQotICA8L3N0eWxlPgotCi08c3R5bGUgdHlwZT0idGV4dC9jc3MiPjwvc3R5bGU+PC9oZWFkPgotCi08Ym9keSBsYW5nPSJFTi1VUyI+Ci0KLTxoMj5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAxLjA8L2gyPgotCi08cD5USEUgQUNDT01QQU5ZSU5HIFBST0dSQU0gSVMgUFJPVklERUQgVU5ERVIgVEhFIFRFUk1TIE9GIFRISVMgRUNMSVBTRQotUFVCTElDIExJQ0VOU0UgKCJBR1JFRU1FTlQiKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SCi1ESVNUUklCVVRJT04gT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTCi1BR1JFRU1FTlQuPC9wPgotCi08cD48Yj4xLiBERUZJTklUSU9OUzwvYj48L3A+Ci0KLTxwPiJDb250cmlidXRpb24iIG1lYW5zOjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbAotY29kZSBhbmQgZG9jdW1lbnRhdGlvbiBkaXN0cmlidXRlZCB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kPC9wPgotPHAgY2xhc3M9Imxpc3QiPmIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjo8L3A+Ci08cCBjbGFzcz0ibGlzdCI+aSkgY2hhbmdlcyB0byB0aGUgUHJvZ3JhbSwgYW5kPC9wPgotPHAgY2xhc3M9Imxpc3QiPmlpKSBhZGRpdGlvbnMgdG8gdGhlIFByb2dyYW07PC9wPgotPHAgY2xhc3M9Imxpc3QiPndoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtCi1vcmlnaW5hdGUgZnJvbSBhbmQgYXJlIGRpc3RyaWJ1dGVkIGJ5IHRoYXQgcGFydGljdWxhciBDb250cmlidXRvci4gQQotQ29udHJpYnV0aW9uICdvcmlnaW5hdGVzJyBmcm9tIGEgQ29udHJpYnV0b3IgaWYgaXQgd2FzIGFkZGVkIHRvIHRoZQotUHJvZ3JhbSBieSBzdWNoIENvbnRyaWJ1dG9yIGl0c2VsZiBvciBhbnlvbmUgYWN0aW5nIG9uIHN1Y2gKLUNvbnRyaWJ1dG9yJ3MgYmVoYWxmLiBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGFkZGl0aW9ucyB0byB0aGUKLVByb2dyYW0gd2hpY2g6IChpKSBhcmUgc2VwYXJhdGUgbW9kdWxlcyBvZiBzb2Z0d2FyZSBkaXN0cmlidXRlZCBpbgotY29uanVuY3Rpb24gd2l0aCB0aGUgUHJvZ3JhbSB1bmRlciB0aGVpciBvd24gbGljZW5zZSBhZ3JlZW1lbnQsIGFuZCAoaWkpCi1hcmUgbm90IGRlcml2YXRpdmUgd29ya3Mgb2YgdGhlIFByb2dyYW0uPC9wPgotCi08cD4iQ29udHJpYnV0b3IiIG1lYW5zIGFueSBwZXJzb24gb3IgZW50aXR5IHRoYXQgZGlzdHJpYnV0ZXMKLXRoZSBQcm9ncmFtLjwvcD4KLQotPHA+IkxpY2Vuc2VkIFBhdGVudHMiIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEKLUNvbnRyaWJ1dG9yIHdoaWNoIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cwotQ29udHJpYnV0aW9uIGFsb25lIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS48L3A+Ci0KLTxwPiJQcm9ncmFtIiBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBkaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlCi13aXRoIHRoaXMgQWdyZWVtZW50LjwvcD4KLQotPHA+IlJlY2lwaWVudCIgbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlcgotdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBhbGwgQ29udHJpYnV0b3JzLjwvcD4KLQotPHA+PGI+Mi4gR1JBTlQgT0YgUklHSFRTPC9iPjwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmEpIFN1YmplY3QgdG8gdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBlYWNoCi1Db250cmlidXRvciBoZXJlYnkgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwKLXJveWFsdHktZnJlZSBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgZGVyaXZhdGl2ZSB3b3Jrcwotb2YsIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIGRpc3RyaWJ1dGUgYW5kIHN1YmxpY2Vuc2UgdGhlCi1Db250cmlidXRpb24gb2Ygc3VjaCBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBkZXJpdmF0aXZlIHdvcmtzLCBpbgotc291cmNlIGNvZGUgYW5kIG9iamVjdCBjb2RlIGZvcm0uPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+YikgU3ViamVjdCB0byB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGVhY2gKLUNvbnRyaWJ1dG9yIGhlcmVieSBncmFudHMgUmVjaXBpZW50IGEgbm9uLWV4Y2x1c2l2ZSwgd29ybGR3aWRlLAotcm95YWx0eS1mcmVlIHBhdGVudCBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLAotb2ZmZXIgdG8gc2VsbCwgaW1wb3J0IGFuZCBvdGhlcndpc2UgdHJhbnNmZXIgdGhlIENvbnRyaWJ1dGlvbiBvZiBzdWNoCi1Db250cmlidXRvciwgaWYgYW55LCBpbiBzb3VyY2UgY29kZSBhbmQgb2JqZWN0IGNvZGUgZm9ybS4gVGhpcyBwYXRlbnQKLWxpY2Vuc2Ugc2hhbGwgYXBwbHkgdG8gdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSBDb250cmlidXRpb24gYW5kIHRoZQotUHJvZ3JhbSBpZiwgYXQgdGhlIHRpbWUgdGhlIENvbnRyaWJ1dGlvbiBpcyBhZGRlZCBieSB0aGUgQ29udHJpYnV0b3IsCi1zdWNoIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAotYnkgdGhlIExpY2Vuc2VkIFBhdGVudHMuIFRoZSBwYXRlbnQgbGljZW5zZSBzaGFsbCBub3QgYXBwbHkgdG8gYW55IG90aGVyCi1jb21iaW5hdGlvbnMgd2hpY2ggaW5jbHVkZSB0aGUgQ29udHJpYnV0aW9uLiBObyBoYXJkd2FyZSBwZXIgc2UgaXMKLWxpY2Vuc2VkIGhlcmV1bmRlci48L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5jKSBSZWNpcGllbnQgdW5kZXJzdGFuZHMgdGhhdCBhbHRob3VnaCBlYWNoIENvbnRyaWJ1dG9yCi1ncmFudHMgdGhlIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMKLWFyZSBwcm92aWRlZCBieSBhbnkgQ29udHJpYnV0b3IgdGhhdCB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBpbmZyaW5nZSB0aGUKLXBhdGVudCBvciBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG9mIGFueSBvdGhlciBlbnRpdHkuIEVhY2gKLUNvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zIGJyb3VnaHQgYnkKLWFueSBvdGhlciBlbnRpdHkgYmFzZWQgb24gaW5mcmluZ2VtZW50IG9mIGludGVsbGVjdHVhbCBwcm9wZXJ0eSByaWdodHMKLW9yIG90aGVyd2lzZS4gQXMgYSBjb25kaXRpb24gdG8gZXhlcmNpc2luZyB0aGUgcmlnaHRzIGFuZCBsaWNlbnNlcwotZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUgcmVzcG9uc2liaWxpdHkgdG8KLXNlY3VyZSBhbnkgb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBuZWVkZWQsIGlmIGFueS4gRm9yCi1leGFtcGxlLCBpZiBhIHRoaXJkIHBhcnR5IHBhdGVudCBsaWNlbnNlIGlzIHJlcXVpcmVkIHRvIGFsbG93IFJlY2lwaWVudAotdG8gZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZQotdGhhdCBsaWNlbnNlIGJlZm9yZSBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0uPC9wPgotCi08cCBjbGFzcz0ibGlzdCI+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdAotaGFzIHN1ZmZpY2llbnQgY29weXJpZ2h0IHJpZ2h0cyBpbiBpdHMgQ29udHJpYnV0aW9uLCBpZiBhbnksIHRvIGdyYW50Ci10aGUgY29weXJpZ2h0IGxpY2Vuc2Ugc2V0IGZvcnRoIGluIHRoaXMgQWdyZWVtZW50LjwvcD4KLQotPHA+PGI+My4gUkVRVUlSRU1FTlRTPC9iPjwvcD4KLQotPHA+QSBDb250cmlidXRvciBtYXkgY2hvb3NlIHRvIGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaW4gb2JqZWN0IGNvZGUKLWZvcm0gdW5kZXIgaXRzIG93biBsaWNlbnNlIGFncmVlbWVudCwgcHJvdmlkZWQgdGhhdDo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpdCBjb21wbGllcyB3aXRoIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzCi1BZ3JlZW1lbnQ7IGFuZDwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmIpIGl0cyBsaWNlbnNlIGFncmVlbWVudDo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBDb250cmlidXRvcnMKLWFsbCB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcwotb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcyBvcgotY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOzwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIENvbnRyaWJ1dG9ycwotYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsCi1pbmNpZGVudGFsIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOzwvcD4KLQotPHAgY2xhc3M9Imxpc3QiPmlpaSkgc3RhdGVzIHRoYXQgYW55IHByb3Zpc2lvbnMgd2hpY2ggZGlmZmVyIGZyb20gdGhpcwotQWdyZWVtZW50IGFyZSBvZmZlcmVkIGJ5IHRoYXQgQ29udHJpYnV0b3IgYWxvbmUgYW5kIG5vdCBieSBhbnkgb3RoZXIKLXBhcnR5OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5pdikgc3RhdGVzIHRoYXQgc291cmNlIGNvZGUgZm9yIHRoZSBQcm9ncmFtIGlzIGF2YWlsYWJsZQotZnJvbSBzdWNoIENvbnRyaWJ1dG9yLCBhbmQgaW5mb3JtcyBsaWNlbnNlZXMgaG93IHRvIG9idGFpbiBpdCBpbiBhCi1yZWFzb25hYmxlIG1hbm5lciBvbiBvciB0aHJvdWdoIGEgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlCi1leGNoYW5nZS48L3A+Ci0KLTxwPldoZW4gdGhlIFByb2dyYW0gaXMgbWFkZSBhdmFpbGFibGUgaW4gc291cmNlIGNvZGUgZm9ybTo8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5hKSBpdCBtdXN0IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoaXMgQWdyZWVtZW50OyBhbmQ8L3A+Ci0KLTxwIGNsYXNzPSJsaXN0Ij5iKSBhIGNvcHkgb2YgdGhpcyBBZ3JlZW1lbnQgbXVzdCBiZSBpbmNsdWRlZCB3aXRoIGVhY2gKLWNvcHkgb2YgdGhlIFByb2dyYW0uPC9wPgotCi08cD5Db250cmlidXRvcnMgbWF5IG5vdCByZW1vdmUgb3IgYWx0ZXIgYW55IGNvcHlyaWdodCBub3RpY2VzIGNvbnRhaW5lZAotd2l0aGluIHRoZSBQcm9ncmFtLjwvcD4KLQotPHA+RWFjaCBDb250cmlidXRvciBtdXN0IGlkZW50aWZ5IGl0c2VsZiBhcyB0aGUgb3JpZ2luYXRvciBvZiBpdHMKLUNvbnRyaWJ1dGlvbiwgaWYgYW55LCBpbiBhIG1hbm5lciB0aGF0IHJlYXNvbmFibHkgYWxsb3dzIHN1YnNlcXVlbnQKLVJlY2lwaWVudHMgdG8gaWRlbnRpZnkgdGhlIG9yaWdpbmF0b3Igb2YgdGhlIENvbnRyaWJ1dGlvbi48L3A+Ci0KLTxwPjxiPjQuIENPTU1FUkNJQUwgRElTVFJJQlVUSU9OPC9iPjwvcD4KLQotPHA+Q29tbWVyY2lhbCBkaXN0cmlidXRvcnMgb2Ygc29mdHdhcmUgbWF5IGFjY2VwdCBjZXJ0YWluCi1yZXNwb25zaWJpbGl0aWVzIHdpdGggcmVzcGVjdCB0byBlbmQgdXNlcnMsIGJ1c2luZXNzIHBhcnRuZXJzIGFuZCB0aGUKLWxpa2UuIFdoaWxlIHRoaXMgbGljZW5zZSBpcyBpbnRlbmRlZCB0byBmYWNpbGl0YXRlIHRoZSBjb21tZXJjaWFsIHVzZSBvZgotdGhlIFByb2dyYW0sIHRoZSBDb250cmlidXRvciB3aG8gaW5jbHVkZXMgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCi1wcm9kdWN0IG9mZmVyaW5nIHNob3VsZCBkbyBzbyBpbiBhIG1hbm5lciB3aGljaCBkb2VzIG5vdCBjcmVhdGUKLXBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyIENvbnRyaWJ1dG9ycy4gVGhlcmVmb3JlLCBpZiBhIENvbnRyaWJ1dG9yCi1pbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgc3VjaCBDb250cmlidXRvcgotKCJDb21tZXJjaWFsIENvbnRyaWJ1dG9yIikgaGVyZWJ5IGFncmVlcyB0byBkZWZlbmQgYW5kCi1pbmRlbW5pZnkgZXZlcnkgb3RoZXIgQ29udHJpYnV0b3IgKCJJbmRlbW5pZmllZCBDb250cmlidXRvciIpCi1hZ2FpbnN0IGFueSBsb3NzZXMsIGRhbWFnZXMgYW5kIGNvc3RzIChjb2xsZWN0aXZlbHkgIkxvc3NlcyIpCi1hcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucyBicm91Z2h0IGJ5IGEgdGhpcmQKLXBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQgY2F1c2VkIGJ5IHRoZQotYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24gd2l0aCBpdHMKLWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4gVGhlCi1vYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzCi1yZWxhdGluZyB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4KLW9yZGVyIHRvIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeQotdGhlIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlCi1Db21tZXJjaWFsIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbAotQ29udHJpYnV0b3IgaW4sIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlCi1JbmRlbW5pZmllZCBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93bgotZXhwZW5zZS48L3A+Ci0KLTxwPkZvciBleGFtcGxlLCBhIENvbnRyaWJ1dG9yIG1pZ2h0IGluY2x1ZGUgdGhlIFByb2dyYW0gaW4gYSBjb21tZXJjaWFsCi1wcm9kdWN0IG9mZmVyaW5nLCBQcm9kdWN0IFguIFRoYXQgQ29udHJpYnV0b3IgaXMgdGhlbiBhIENvbW1lcmNpYWwKLUNvbnRyaWJ1dG9yLiBJZiB0aGF0IENvbW1lcmNpYWwgQ29udHJpYnV0b3IgdGhlbiBtYWtlcyBwZXJmb3JtYW5jZQotY2xhaW1zLCBvciBvZmZlcnMgd2FycmFudGllcyByZWxhdGVkIHRvIFByb2R1Y3QgWCwgdGhvc2UgcGVyZm9ybWFuY2UKLWNsYWltcyBhbmQgd2FycmFudGllcyBhcmUgc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yJ3MgcmVzcG9uc2liaWxpdHkKLWFsb25lLiBVbmRlciB0aGlzIHNlY3Rpb24sIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHdvdWxkIGhhdmUgdG8KLWRlZmVuZCBjbGFpbXMgYWdhaW5zdCB0aGUgb3RoZXIgQ29udHJpYnV0b3JzIHJlbGF0ZWQgdG8gdGhvc2UKLXBlcmZvcm1hbmNlIGNsYWltcyBhbmQgd2FycmFudGllcywgYW5kIGlmIGEgY291cnQgcmVxdWlyZXMgYW55IG90aGVyCi1Db250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMgYXMgYSByZXN1bHQsIHRoZSBDb21tZXJjaWFsIENvbnRyaWJ1dG9yCi1tdXN0IHBheSB0aG9zZSBkYW1hZ2VzLjwvcD4KLQotPHA+PGI+NS4gTk8gV0FSUkFOVFk8L2I+PC9wPgotCi08cD5FWENFUFQgQVMgRVhQUkVTU0xZIFNFVCBGT1JUSCBJTiBUSElTIEFHUkVFTUVOVCwgVEhFIFBST0dSQU0gSVMKLVBST1ZJREVEIE9OIEFOICJBUyBJUyIgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TCi1PRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1MgT1IgSU1QTElFRCBJTkNMVURJTkcsIFdJVEhPVVQgTElNSVRBVElPTiwKLUFOWSBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgVElUTEUsIE5PTi1JTkZSSU5HRU1FTlQsIE1FUkNIQU5UQUJJTElUWQotT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIEVhY2ggUmVjaXBpZW50IGlzIHNvbGVseQotcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZSBhcHByb3ByaWF0ZW5lc3Mgb2YgdXNpbmcgYW5kCi1kaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gYW5kIGFzc3VtZXMgYWxsIHJpc2tzIGFzc29jaWF0ZWQgd2l0aCBpdHMKLWV4ZXJjaXNlIG9mIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCAsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KLXRoZSByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsCi1kYW1hZ2UgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgotaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuPC9wPgotCi08cD48Yj42LiBESVNDTEFJTUVSIE9GIExJQUJJTElUWTwvYj48L3A+Ci0KLTxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBORUlUSEVSIFJFQ0lQSUVOVAotTk9SIEFOWSBDT05UUklCVVRPUlMgU0hBTEwgSEFWRSBBTlkgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwKLUlOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcKLVdJVEhPVVQgTElNSVRBVElPTiBMT1NUIFBST0ZJVFMpLCBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRgotTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcKLU5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT1IKLURJU1RSSUJVVElPTiBPRiBUSEUgUFJPR1JBTSBPUiBUSEUgRVhFUkNJU0UgT0YgQU5ZIFJJR0hUUyBHUkFOVEVECi1IRVJFVU5ERVIsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLjwvcD4KLQotPHA+PGI+Ny4gR0VORVJBTDwvYj48L3A+Ci0KLTxwPklmIGFueSBwcm92aXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgaXMgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCi1hcHBsaWNhYmxlIGxhdywgaXQgc2hhbGwgbm90IGFmZmVjdCB0aGUgdmFsaWRpdHkgb3IgZW5mb3JjZWFiaWxpdHkgb2YKLXRoZSByZW1haW5kZXIgb2YgdGhlIHRlcm1zIG9mIHRoaXMgQWdyZWVtZW50LCBhbmQgd2l0aG91dCBmdXJ0aGVyIGFjdGlvbgotYnkgdGhlIHBhcnRpZXMgaGVyZXRvLCBzdWNoIHByb3Zpc2lvbiBzaGFsbCBiZSByZWZvcm1lZCB0byB0aGUgbWluaW11bQotZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIHN1Y2ggcHJvdmlzaW9uIHZhbGlkIGFuZCBlbmZvcmNlYWJsZS48L3A+Ci0KLTxwPklmIFJlY2lwaWVudCBpbnN0aXR1dGVzIHBhdGVudCBsaXRpZ2F0aW9uIGFnYWluc3QgYW55IGVudGl0eQotKGluY2x1ZGluZyBhIGNyb3NzLWNsYWltIG9yIGNvdW50ZXJjbGFpbSBpbiBhIGxhd3N1aXQpIGFsbGVnaW5nIHRoYXQgdGhlCi1Qcm9ncmFtIGl0c2VsZiAoZXhjbHVkaW5nIGNvbWJpbmF0aW9ucyBvZiB0aGUgUHJvZ3JhbSB3aXRoIG90aGVyCi1zb2Z0d2FyZSBvciBoYXJkd2FyZSkgaW5mcmluZ2VzIHN1Y2ggUmVjaXBpZW50J3MgcGF0ZW50KHMpLCB0aGVuIHN1Y2gKLVJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkIHVuZGVyIFNlY3Rpb24gMihiKSBzaGFsbCB0ZXJtaW5hdGUgYXMgb2YgdGhlCi1kYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC48L3A+Ci0KLTxwPkFsbCBSZWNpcGllbnQncyByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgdGVybWluYXRlIGlmIGl0Ci1mYWlscyB0byBjb21wbHkgd2l0aCBhbnkgb2YgdGhlIG1hdGVyaWFsIHRlcm1zIG9yIGNvbmRpdGlvbnMgb2YgdGhpcwotQWdyZWVtZW50IGFuZCBkb2VzIG5vdCBjdXJlIHN1Y2ggZmFpbHVyZSBpbiBhIHJlYXNvbmFibGUgcGVyaW9kIG9mIHRpbWUKLWFmdGVyIGJlY29taW5nIGF3YXJlIG9mIHN1Y2ggbm9uY29tcGxpYW5jZS4gSWYgYWxsIFJlY2lwaWVudCdzIHJpZ2h0cwotdW5kZXIgdGhpcyBBZ3JlZW1lbnQgdGVybWluYXRlLCBSZWNpcGllbnQgYWdyZWVzIHRvIGNlYXNlIHVzZSBhbmQKLWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBhcyBzb29uIGFzIHJlYXNvbmFibHkgcHJhY3RpY2FibGUuIEhvd2V2ZXIsCi1SZWNpcGllbnQncyBvYmxpZ2F0aW9ucyB1bmRlciB0aGlzIEFncmVlbWVudCBhbmQgYW55IGxpY2Vuc2VzIGdyYW50ZWQgYnkKLVJlY2lwaWVudCByZWxhdGluZyB0byB0aGUgUHJvZ3JhbSBzaGFsbCBjb250aW51ZSBhbmQgc3Vydml2ZS48L3A+Ci0KLTxwPkV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIGNvcGllcyBvZiB0aGlzCi1BZ3JlZW1lbnQsIGJ1dCBpbiBvcmRlciB0byBhdm9pZCBpbmNvbnNpc3RlbmN5IHRoZSBBZ3JlZW1lbnQgaXMKLWNvcHlyaWdodGVkIGFuZCBtYXkgb25seSBiZSBtb2RpZmllZCBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4gVGhlCi1BZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcyB0aGUgcmlnaHQgdG8gcHVibGlzaCBuZXcgdmVyc2lvbnMgKGluY2x1ZGluZwotcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudCBmcm9tIHRpbWUgdG8gdGltZS4gTm8gb25lIG90aGVyIHRoYW4gdGhlCi1BZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0IHRvIG1vZGlmeSB0aGlzIEFncmVlbWVudC4gVGhlIEVjbGlwc2UKLUZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50IFN0ZXdhcmQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWF5Ci1hc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCB0byBhCi1zdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCB3aWxsIGJlCi1naXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbSAoaW5jbHVkaW5nCi1Db250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIGRpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24gb2YgdGhlCi1BZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcgdmVyc2lvbgotb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBkaXN0cmlidXRlIHRoZQotUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uIEV4Y2VwdCBhcwotZXhwcmVzc2x5IHN0YXRlZCBpbiBTZWN0aW9ucyAyKGEpIGFuZCAyKGIpIGFib3ZlLCBSZWNpcGllbnQgcmVjZWl2ZXMgbm8KLXJpZ2h0cyBvciBsaWNlbnNlcyB0byB0aGUgaW50ZWxsZWN0dWFsIHByb3BlcnR5IG9mIGFueSBDb250cmlidXRvciB1bmRlcgotdGhpcyBBZ3JlZW1lbnQsIHdoZXRoZXIgZXhwcmVzc2x5LCBieSBpbXBsaWNhdGlvbiwgZXN0b3BwZWwgb3IKLW90aGVyd2lzZS4gQWxsIHJpZ2h0cyBpbiB0aGUgUHJvZ3JhbSBub3QgZXhwcmVzc2x5IGdyYW50ZWQgdW5kZXIgdGhpcwotQWdyZWVtZW50IGFyZSByZXNlcnZlZC48L3A+Ci0KLTxwPlRoaXMgQWdyZWVtZW50IGlzIGdvdmVybmVkIGJ5IHRoZSBsYXdzIG9mIHRoZSBTdGF0ZSBvZiBOZXcgWW9yayBhbmQKLXRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgbGF3cyBvZiB0aGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLiBObyBwYXJ0eQotdG8gdGhpcyBBZ3JlZW1lbnQgd2lsbCBicmluZyBhIGxlZ2FsIGFjdGlvbiB1bmRlciB0aGlzIEFncmVlbWVudCBtb3JlCi10aGFuIG9uZSB5ZWFyIGFmdGVyIHRoZSBjYXVzZSBvZiBhY3Rpb24gYXJvc2UuIEVhY2ggcGFydHkgd2FpdmVzIGl0cwotcmlnaHRzIHRvIGEganVyeSB0cmlhbCBpbiBhbnkgcmVzdWx0aW5nIGxpdGlnYXRpb24uPC9wPgotCi0KLQotPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLWZlYXR1cmUvZXBsLXYyMC5odG1sIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2VwbC12MjAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OWE4Mzg4Ci0tLSAvZGV2L251bGwKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2VwbC12MjAuaHRtbApAQCAtMCwwICsxLDMwMCBAQAorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgorPCEtLSBzYXZlZCBmcm9tIHVybD0oMDA1OClodHRwczovL3d3dy5lY2xpcHNlLm9yZy9vcmcvZG9jdW1lbnRzL2VwbC0yLjAvRVBMLTIuMC5odG1sIC0tPgorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDpsYW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04Ij4KKyAgICAKKyAgICA8dGl0bGU+RWNsaXBzZSBQdWJsaWMgTGljZW5zZSAtIFZlcnNpb24gMi4wPC90aXRsZT4KKyAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMS41ZW0gM2VtOworICAgICAgfQorICAgICAgaDF7CisgICAgICAgIGZvbnQtc2l6ZToxLjVlbTsKKyAgICAgIH0KKyAgICAgIGgyeworICAgICAgICBmb250LXNpemU6MWVtOworICAgICAgICBtYXJnaW4tYm90dG9tOjAuNWVtOworICAgICAgICBtYXJnaW4tdG9wOjFlbTsKKyAgICAgIH0KKyAgICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAgMC41ZW07CisgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtOworICAgICAgfQorICAgICAgdWwsIG9seworICAgICAgICBsaXN0LXN0eWxlLXR5cGU6bm9uZTsKKyAgICAgIH0KKyAgICA8L3N0eWxlPgorICA8L2hlYWQ+CisgIDxib2R5PgorICAgIDxoMT5FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIC0gdiAyLjA8L2gxPgorICAgIDxwPlRIRSBBQ0NPTVBBTllJTkcgUFJPR1JBTSBJUyBQUk9WSURFRCBVTkRFUiBUSEUgVEVSTVMgT0YgVEhJUyBFQ0xJUFNFCisgICAgICBQVUJMSUMgTElDRU5TRSAo4oCcQUdSRUVNRU5U4oCdKS4gQU5ZIFVTRSwgUkVQUk9EVUNUSU9OIE9SIERJU1RSSUJVVElPTgorICAgICAgT0YgVEhFIFBST0dSQU0gQ09OU1RJVFVURVMgUkVDSVBJRU5UJ1MgQUNDRVBUQU5DRSBPRiBUSElTIEFHUkVFTUVOVC4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJkZWZpbml0aW9ucyI+MS4gREVGSU5JVElPTlM8L2gyPgorICAgIDxwPuKAnENvbnRyaWJ1dGlvbuKAnSBtZWFuczo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIGluIHRoZSBjYXNlIG9mIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yLCB0aGUgaW5pdGlhbCBjb250ZW50CisgICAgICAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LCBhbmQKKyAgICAgIDwvbGk+CisgICAgICA8bGk+CisgICAgICAgIGIpIGluIHRoZSBjYXNlIG9mIGVhY2ggc3Vic2VxdWVudCBDb250cmlidXRvcjoKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBjaGFuZ2VzIHRvIHRoZSBQcm9ncmFtLCBhbmQ8L2xpPgorICAgICAgICAgIDxsaT5paSkgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtOzwvbGk+CisgICAgICAgIDwvdWw+CisgICAgICAgIHdoZXJlIHN1Y2ggY2hhbmdlcyBhbmQvb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIG9yaWdpbmF0ZSBmcm9tCisgICAgICAgIGFuZCBhcmUgRGlzdHJpYnV0ZWQgYnkgdGhhdCBwYXJ0aWN1bGFyIENvbnRyaWJ1dG9yLiBBIENvbnRyaWJ1dGlvbgorICAgICAgICDigJxvcmlnaW5hdGVz4oCdIGZyb20gYSBDb250cmlidXRvciBpZiBpdCB3YXMgYWRkZWQgdG8gdGhlIFByb2dyYW0gYnkgc3VjaAorICAgICAgICBDb250cmlidXRvciBpdHNlbGYgb3IgYW55b25lIGFjdGluZyBvbiBzdWNoIENvbnRyaWJ1dG9yJ3MgYmVoYWxmLgorICAgICAgICBDb250cmlidXRpb25zIGRvIG5vdCBpbmNsdWRlIGNoYW5nZXMgb3IgYWRkaXRpb25zIHRvIHRoZSBQcm9ncmFtIHRoYXQKKyAgICAgICAgYXJlIG5vdCBNb2RpZmllZCBXb3Jrcy4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8cD7igJxDb250cmlidXRvcuKAnSBtZWFucyBhbnkgcGVyc29uIG9yIGVudGl0eSB0aGF0IERpc3RyaWJ1dGVzIHRoZSBQcm9ncmFtLjwvcD4KKyAgICA8cD7igJxMaWNlbnNlZCBQYXRlbnRz4oCdIG1lYW4gcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlIGJ5IGEgQ29udHJpYnV0b3Igd2hpY2gKKyAgICAgIGFyZSBuZWNlc3NhcmlseSBpbmZyaW5nZWQgYnkgdGhlIHVzZSBvciBzYWxlIG9mIGl0cyBDb250cmlidXRpb24gYWxvbmUKKyAgICAgIG9yIHdoZW4gY29tYmluZWQgd2l0aCB0aGUgUHJvZ3JhbS4KKyAgICA8L3A+CisgICAgPHA+4oCcUHJvZ3JhbeKAnSBtZWFucyB0aGUgQ29udHJpYnV0aW9ucyBEaXN0cmlidXRlZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhpcworICAgICAgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8cD7igJxSZWNpcGllbnTigJ0gbWVhbnMgYW55b25lIHdobyByZWNlaXZlcyB0aGUgUHJvZ3JhbSB1bmRlciB0aGlzIEFncmVlbWVudAorICAgICAgb3IgYW55IFNlY29uZGFyeSBMaWNlbnNlIChhcyBhcHBsaWNhYmxlKSwgaW5jbHVkaW5nIENvbnRyaWJ1dG9ycy4KKyAgICA8L3A+CisgICAgPHA+4oCcRGVyaXZhdGl2ZSBXb3Jrc+KAnSBzaGFsbCBtZWFuIGFueSB3b3JrLCB3aGV0aGVyIGluIFNvdXJjZSBDb2RlIG9yIG90aGVyCisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBQcm9ncmFtIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4KKyAgICA8L3A+CisgICAgPHA+4oCcTW9kaWZpZWQgV29ya3PigJ0gc2hhbGwgbWVhbiBhbnkgd29yayBpbiBTb3VyY2UgQ29kZSBvciBvdGhlciBmb3JtIHRoYXQKKyAgICAgIHJlc3VsdHMgZnJvbSBhbiBhZGRpdGlvbiB0bywgZGVsZXRpb24gZnJvbSwgb3IgbW9kaWZpY2F0aW9uIG9mIHRoZQorICAgICAgY29udGVudHMgb2YgdGhlIFByb2dyYW0sIGluY2x1ZGluZywgZm9yIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW55IG5ldyBmaWxlCisgICAgICBpbiBTb3VyY2UgQ29kZSBmb3JtIHRoYXQgY29udGFpbnMgYW55IGNvbnRlbnRzIG9mIHRoZSBQcm9ncmFtLiBNb2RpZmllZAorICAgICAgV29ya3Mgc2hhbGwgbm90IGluY2x1ZGUgd29ya3MgdGhhdCBjb250YWluIG9ubHkgZGVjbGFyYXRpb25zLCBpbnRlcmZhY2VzLAorICAgICAgdHlwZXMsIGNsYXNzZXMsIHN0cnVjdHVyZXMsIG9yIGZpbGVzIG9mIHRoZSBQcm9ncmFtIHNvbGVseSBpbiBlYWNoIGNhc2UKKyAgICAgIGluIG9yZGVyIHRvIGxpbmsgdG8sIGJpbmQgYnkgbmFtZSwgb3Igc3ViY2xhc3MgdGhlIFByb2dyYW0gb3IgTW9kaWZpZWQKKyAgICAgIFdvcmtzIHRoZXJlb2YuCisgICAgPC9wPgorICAgIDxwPuKAnERpc3RyaWJ1dGXigJ0gbWVhbnMgdGhlIGFjdHMgb2YgYSkgZGlzdHJpYnV0aW5nIG9yIGIpIG1ha2luZyBhdmFpbGFibGUKKyAgICAgIGluIGFueSBtYW5uZXIgdGhhdCBlbmFibGVzIHRoZSB0cmFuc2ZlciBvZiBhIGNvcHkuCisgICAgPC9wPgorICAgIDxwPuKAnFNvdXJjZSBDb2Rl4oCdIG1lYW5zIHRoZSBmb3JtIG9mIGEgUHJvZ3JhbSBwcmVmZXJyZWQgZm9yIG1ha2luZworICAgICAgbW9kaWZpY2F0aW9ucywgaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBzb2Z0d2FyZSBzb3VyY2UgY29kZSwKKyAgICAgIGRvY3VtZW50YXRpb24gc291cmNlLCBhbmQgY29uZmlndXJhdGlvbiBmaWxlcy4KKyAgICA8L3A+CisgICAgPHA+4oCcU2Vjb25kYXJ5IExpY2Vuc2XigJ0gbWVhbnMgZWl0aGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwKKyAgICAgIFZlcnNpb24gMi4wLCBvciBhbnkgbGF0ZXIgdmVyc2lvbnMgb2YgdGhhdCBsaWNlbnNlLCBpbmNsdWRpbmcgYW55CisgICAgICBleGNlcHRpb25zIG9yIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgYXMgaWRlbnRpZmllZCBieSB0aGUgaW5pdGlhbAorICAgICAgQ29udHJpYnV0b3IuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ3JhbnQtb2YtcmlnaHRzIj4yLiBHUkFOVCBPRiBSSUdIVFM8L2gyPgorICAgIDx1bD4KKyAgICAgIDxsaT5hKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHRvIHJlcHJvZHVjZSwgcHJlcGFyZSBEZXJpdmF0aXZlIFdvcmtzIG9mLCBwdWJsaWNseSBkaXNwbGF5LAorICAgICAgICBwdWJsaWNseSBwZXJmb3JtLCBEaXN0cmlidXRlIGFuZCBzdWJsaWNlbnNlIHRoZSBDb250cmlidXRpb24gb2Ygc3VjaAorICAgICAgICBDb250cmlidXRvciwgaWYgYW55LCBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzLgorICAgICAgPC9saT4KKyAgICAgIDxsaT5iKSBTdWJqZWN0IHRvIHRoZSB0ZXJtcyBvZiB0aGlzIEFncmVlbWVudCwgZWFjaCBDb250cmlidXRvciBoZXJlYnkKKyAgICAgICAgZ3JhbnRzIFJlY2lwaWVudCBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlIHBhdGVudAorICAgICAgICBsaWNlbnNlIHVuZGVyIExpY2Vuc2VkIFBhdGVudHMgdG8gbWFrZSwgdXNlLCBzZWxsLCBvZmZlciB0byBzZWxsLAorICAgICAgICBpbXBvcnQgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgQ29udHJpYnV0aW9uIG9mIHN1Y2ggQ29udHJpYnV0b3IsCisgICAgICAgIGlmIGFueSwgaW4gU291cmNlIENvZGUgb3Igb3RoZXIgZm9ybS4gVGhpcyBwYXRlbnQgbGljZW5zZSBzaGFsbAorICAgICAgICBhcHBseSB0byB0aGUgY29tYmluYXRpb24gb2YgdGhlIENvbnRyaWJ1dGlvbiBhbmQgdGhlIFByb2dyYW0gaWYsCisgICAgICAgIGF0IHRoZSB0aW1lIHRoZSBDb250cmlidXRpb24gaXMgYWRkZWQgYnkgdGhlIENvbnRyaWJ1dG9yLCBzdWNoCisgICAgICAgIGFkZGl0aW9uIG9mIHRoZSBDb250cmlidXRpb24gY2F1c2VzIHN1Y2ggY29tYmluYXRpb24gdG8gYmUgY292ZXJlZAorICAgICAgICBieSB0aGUgTGljZW5zZWQgUGF0ZW50cy4gVGhlIHBhdGVudCBsaWNlbnNlIHNoYWxsIG5vdCBhcHBseSB0byBhbnkKKyAgICAgICAgb3RoZXIgY29tYmluYXRpb25zIHdoaWNoIGluY2x1ZGUgdGhlIENvbnRyaWJ1dGlvbi4gTm8gaGFyZHdhcmUgcGVyCisgICAgICAgIHNlIGlzIGxpY2Vuc2VkIGhlcmV1bmRlci4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+YykgUmVjaXBpZW50IHVuZGVyc3RhbmRzIHRoYXQgYWx0aG91Z2ggZWFjaCBDb250cmlidXRvciBncmFudHMgdGhlCisgICAgICAgIGxpY2Vuc2VzIHRvIGl0cyBDb250cmlidXRpb25zIHNldCBmb3J0aCBoZXJlaW4sIG5vIGFzc3VyYW5jZXMgYXJlCisgICAgICAgIHByb3ZpZGVkIGJ5IGFueSBDb250cmlidXRvciB0aGF0IHRoZSBQcm9ncmFtIGRvZXMgbm90IGluZnJpbmdlIHRoZQorICAgICAgICBwYXRlbnQgb3Igb3RoZXIgaW50ZWxsZWN0dWFsIHByb3BlcnR5IHJpZ2h0cyBvZiBhbnkgb3RoZXIgZW50aXR5LgorICAgICAgICBFYWNoIENvbnRyaWJ1dG9yIGRpc2NsYWltcyBhbnkgbGlhYmlsaXR5IHRvIFJlY2lwaWVudCBmb3IgY2xhaW1zCisgICAgICAgIGJyb3VnaHQgYnkgYW55IG90aGVyIGVudGl0eSBiYXNlZCBvbiBpbmZyaW5nZW1lbnQgb2YgaW50ZWxsZWN0dWFsCisgICAgICAgIHByb3BlcnR5IHJpZ2h0cyBvciBvdGhlcndpc2UuIEFzIGEgY29uZGl0aW9uIHRvIGV4ZXJjaXNpbmcgdGhlIHJpZ2h0cworICAgICAgICBhbmQgbGljZW5zZXMgZ3JhbnRlZCBoZXJldW5kZXIsIGVhY2ggUmVjaXBpZW50IGhlcmVieSBhc3N1bWVzIHNvbGUKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gc2VjdXJlIGFueSBvdGhlciBpbnRlbGxlY3R1YWwgcHJvcGVydHkgcmlnaHRzIG5lZWRlZCwKKyAgICAgICAgaWYgYW55LiBGb3IgZXhhbXBsZSwgaWYgYSB0aGlyZCBwYXJ0eSBwYXRlbnQgbGljZW5zZSBpcyByZXF1aXJlZCB0bworICAgICAgICBhbGxvdyBSZWNpcGllbnQgdG8gRGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSwgaXQgaXMgUmVjaXBpZW50J3MKKyAgICAgICAgcmVzcG9uc2liaWxpdHkgdG8gYWNxdWlyZSB0aGF0IGxpY2Vuc2UgYmVmb3JlIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbS4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZCkgRWFjaCBDb250cmlidXRvciByZXByZXNlbnRzIHRoYXQgdG8gaXRzIGtub3dsZWRnZSBpdCBoYXMgc3VmZmljaWVudAorICAgICAgICBjb3B5cmlnaHQgcmlnaHRzIGluIGl0cyBDb250cmlidXRpb24sIGlmIGFueSwgdG8gZ3JhbnQgdGhlIGNvcHlyaWdodAorICAgICAgICBsaWNlbnNlIHNldCBmb3J0aCBpbiB0aGlzIEFncmVlbWVudC4KKyAgICAgIDwvbGk+CisgICAgICA8bGk+ZSkgTm90d2l0aHN0YW5kaW5nIHRoZSB0ZXJtcyBvZiBhbnkgU2Vjb25kYXJ5IExpY2Vuc2UsIG5vIENvbnRyaWJ1dG9yCisgICAgICAgIG1ha2VzIGFkZGl0aW9uYWwgZ3JhbnRzIHRvIGFueSBSZWNpcGllbnQgKG90aGVyIHRoYW4gdGhvc2Ugc2V0IGZvcnRoCisgICAgICAgIGluIHRoaXMgQWdyZWVtZW50KSBhcyBhIHJlc3VsdCBvZiBzdWNoIFJlY2lwaWVudCdzIHJlY2VpcHQgb2YgdGhlCisgICAgICAgIFByb2dyYW0gdW5kZXIgdGhlIHRlcm1zIG9mIGEgU2Vjb25kYXJ5IExpY2Vuc2UgKGlmIHBlcm1pdHRlZCB1bmRlcgorICAgICAgICB0aGUgdGVybXMgb2YgU2VjdGlvbiAzKS4KKyAgICAgIDwvbGk+CisgICAgPC91bD4KKyAgICA8aDIgaWQ9InJlcXVpcmVtZW50cyI+My4gUkVRVUlSRU1FTlRTPC9oMj4KKyAgICA8cD4zLjEgSWYgYSBDb250cmlidXRvciBEaXN0cmlidXRlcyB0aGUgUHJvZ3JhbSBpbiBhbnkgZm9ybSwgdGhlbjo8L3A+CisgICAgPHVsPgorICAgICAgPGxpPmEpIHRoZSBQcm9ncmFtIG11c3QgYWxzbyBiZSBtYWRlIGF2YWlsYWJsZSBhcyBTb3VyY2UgQ29kZSwgaW4KKyAgICAgICAgYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gMy4yLCBhbmQgdGhlIENvbnRyaWJ1dG9yIG11c3QgYWNjb21wYW55CisgICAgICAgIHRoZSBQcm9ncmFtIHdpdGggYSBzdGF0ZW1lbnQgdGhhdCB0aGUgU291cmNlIENvZGUgZm9yIHRoZSBQcm9ncmFtCisgICAgICAgIGlzIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgYW5kIGluZm9ybXMgUmVjaXBpZW50cyBob3cgdG8KKyAgICAgICAgb2J0YWluIGl0IGluIGEgcmVhc29uYWJsZSBtYW5uZXIgb24gb3IgdGhyb3VnaCBhIG1lZGl1bSBjdXN0b21hcmlseQorICAgICAgICB1c2VkIGZvciBzb2Z0d2FyZSBleGNoYW5nZTsgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPgorICAgICAgICBiKSB0aGUgQ29udHJpYnV0b3IgbWF5IERpc3RyaWJ1dGUgdGhlIFByb2dyYW0gdW5kZXIgYSBsaWNlbnNlCisgICAgICAgIGRpZmZlcmVudCB0aGFuIHRoaXMgQWdyZWVtZW50LCBwcm92aWRlZCB0aGF0IHN1Y2ggbGljZW5zZToKKyAgICAgICAgPHVsPgorICAgICAgICAgIDxsaT5pKSBlZmZlY3RpdmVseSBkaXNjbGFpbXMgb24gYmVoYWxmIG9mIGFsbCBvdGhlciBDb250cmlidXRvcnMgYWxsCisgICAgICAgICAgICB3YXJyYW50aWVzIGFuZCBjb25kaXRpb25zLCBleHByZXNzIGFuZCBpbXBsaWVkLCBpbmNsdWRpbmcgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiB0aXRsZSBhbmQgbm9uLWluZnJpbmdlbWVudCwgYW5kIGltcGxpZWQgd2FycmFudGllcworICAgICAgICAgICAgb3IgY29uZGl0aW9ucyBvZiBtZXJjaGFudGFiaWxpdHkgYW5kIGZpdG5lc3MgZm9yIGEgcGFydGljdWxhciBwdXJwb3NlOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpKSBlZmZlY3RpdmVseSBleGNsdWRlcyBvbiBiZWhhbGYgb2YgYWxsIG90aGVyIENvbnRyaWJ1dG9ycyBhbGwKKyAgICAgICAgICAgIGxpYWJpbGl0eSBmb3IgZGFtYWdlcywgaW5jbHVkaW5nIGRpcmVjdCwgaW5kaXJlY3QsIHNwZWNpYWwsIGluY2lkZW50YWwKKyAgICAgICAgICAgIGFuZCBjb25zZXF1ZW50aWFsIGRhbWFnZXMsIHN1Y2ggYXMgbG9zdCBwcm9maXRzOworICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPmlpaSkgZG9lcyBub3QgYXR0ZW1wdCB0byBsaW1pdCBvciBhbHRlciB0aGUgcmVjaXBpZW50cycgcmlnaHRzIGluIHRoZQorICAgICAgICAgICAgU291cmNlIENvZGUgdW5kZXIgc2VjdGlvbiAzLjI7IGFuZAorICAgICAgICAgIDwvbGk+CisgICAgICAgICAgPGxpPml2KSByZXF1aXJlcyBhbnkgc3Vic2VxdWVudCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0gYnkgYW55IHBhcnR5CisgICAgICAgICAgICB0byBiZSB1bmRlciBhIGxpY2Vuc2UgdGhhdCBzYXRpc2ZpZXMgdGhlIHJlcXVpcmVtZW50cyBvZiB0aGlzIHNlY3Rpb24gMy4KKyAgICAgICAgICA8L2xpPgorICAgICAgICA8L3VsPgorICAgICAgPC9saT4KKyAgICA8L3VsPgorICAgIDxwPjMuMiBXaGVuIHRoZSBQcm9ncmFtIGlzIERpc3RyaWJ1dGVkIGFzIFNvdXJjZSBDb2RlOjwvcD4KKyAgICA8dWw+CisgICAgICA8bGk+YSkgaXQgbXVzdCBiZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGlzIEFncmVlbWVudCwgb3IgaWYgdGhlIFByb2dyYW0gKGkpCisgICAgICAgIGlzIGNvbWJpbmVkIHdpdGggb3RoZXIgbWF0ZXJpYWwgaW4gYSBzZXBhcmF0ZSBmaWxlIG9yIGZpbGVzIG1hZGUgYXZhaWxhYmxlCisgICAgICAgIHVuZGVyIGEgU2Vjb25kYXJ5IExpY2Vuc2UsIGFuZCAoaWkpIHRoZSBpbml0aWFsIENvbnRyaWJ1dG9yIGF0dGFjaGVkIHRvCisgICAgICAgIHRoZSBTb3VyY2UgQ29kZSB0aGUgbm90aWNlIGRlc2NyaWJlZCBpbiBFeGhpYml0IEEgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICAgIHRoZW4gdGhlIFByb2dyYW0gbWF5IGJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiBzdWNoCisgICAgICAgIFNlY29uZGFyeSBMaWNlbnNlcywgYW5kCisgICAgICA8L2xpPgorICAgICAgPGxpPmIpIGEgY29weSBvZiB0aGlzIEFncmVlbWVudCBtdXN0IGJlIGluY2x1ZGVkIHdpdGggZWFjaCBjb3B5IG9mIHRoZSBQcm9ncmFtLjwvbGk+CisgICAgPC91bD4KKyAgICA8cD4zLjMgQ29udHJpYnV0b3JzIG1heSBub3QgcmVtb3ZlIG9yIGFsdGVyIGFueSBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLAorICAgICAgYXR0cmlidXRpb24gbm90aWNlcywgZGlzY2xhaW1lcnMgb2Ygd2FycmFudHksIG9yIGxpbWl0YXRpb25zIG9mIGxpYWJpbGl0eQorICAgICAgKOKAmG5vdGljZXPigJkpIGNvbnRhaW5lZCB3aXRoaW4gdGhlIFByb2dyYW0gZnJvbSBhbnkgY29weSBvZiB0aGUgUHJvZ3JhbSB3aGljaAorICAgICAgdGhleSBEaXN0cmlidXRlLCBwcm92aWRlZCB0aGF0IENvbnRyaWJ1dG9ycyBtYXkgYWRkIHRoZWlyIG93biBhcHByb3ByaWF0ZQorICAgICAgbm90aWNlcy4KKyAgICA8L3A+CisgICAgPGgyIGlkPSJjb21tZXJjaWFsLWRpc3RyaWJ1dGlvbiI+NC4gQ09NTUVSQ0lBTCBESVNUUklCVVRJT048L2gyPgorICAgIDxwPkNvbW1lcmNpYWwgZGlzdHJpYnV0b3JzIG9mIHNvZnR3YXJlIG1heSBhY2NlcHQgY2VydGFpbiByZXNwb25zaWJpbGl0aWVzCisgICAgICB3aXRoIHJlc3BlY3QgdG8gZW5kIHVzZXJzLCBidXNpbmVzcyBwYXJ0bmVycyBhbmQgdGhlIGxpa2UuIFdoaWxlIHRoaXMKKyAgICAgIGxpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZmFjaWxpdGF0ZSB0aGUgY29tbWVyY2lhbCB1c2Ugb2YgdGhlIFByb2dyYW0sIHRoZQorICAgICAgQ29udHJpYnV0b3Igd2hvIGluY2x1ZGVzIHRoZSBQcm9ncmFtIGluIGEgY29tbWVyY2lhbCBwcm9kdWN0IG9mZmVyaW5nIHNob3VsZAorICAgICAgZG8gc28gaW4gYSBtYW5uZXIgd2hpY2ggZG9lcyBub3QgY3JlYXRlIHBvdGVudGlhbCBsaWFiaWxpdHkgZm9yIG90aGVyCisgICAgICBDb250cmlidXRvcnMuIFRoZXJlZm9yZSwgaWYgYSBDb250cmlidXRvciBpbmNsdWRlcyB0aGUgUHJvZ3JhbSBpbiBhCisgICAgICBjb21tZXJjaWFsIHByb2R1Y3Qgb2ZmZXJpbmcsIHN1Y2ggQ29udHJpYnV0b3IgKOKAnENvbW1lcmNpYWwgQ29udHJpYnV0b3LigJ0pCisgICAgICBoZXJlYnkgYWdyZWVzIHRvIGRlZmVuZCBhbmQgaW5kZW1uaWZ5IGV2ZXJ5IG90aGVyIENvbnRyaWJ1dG9yCisgICAgICAo4oCcSW5kZW1uaWZpZWQgQ29udHJpYnV0b3LigJ0pIGFnYWluc3QgYW55IGxvc3NlcywgZGFtYWdlcyBhbmQgY29zdHMKKyAgICAgIChjb2xsZWN0aXZlbHkg4oCcTG9zc2Vz4oCdKSBhcmlzaW5nIGZyb20gY2xhaW1zLCBsYXdzdWl0cyBhbmQgb3RoZXIgbGVnYWwgYWN0aW9ucworICAgICAgYnJvdWdodCBieSBhIHRoaXJkIHBhcnR5IGFnYWluc3QgdGhlIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIHRvIHRoZSBleHRlbnQKKyAgICAgIGNhdXNlZCBieSB0aGUgYWN0cyBvciBvbWlzc2lvbnMgb2Ygc3VjaCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIGluIGNvbm5lY3Rpb24KKyAgICAgIHdpdGggaXRzIGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZy4KKyAgICAgIFRoZSBvYmxpZ2F0aW9ucyBpbiB0aGlzIHNlY3Rpb24gZG8gbm90IGFwcGx5IHRvIGFueSBjbGFpbXMgb3IgTG9zc2VzIHJlbGF0aW5nCisgICAgICB0byBhbnkgYWN0dWFsIG9yIGFsbGVnZWQgaW50ZWxsZWN0dWFsIHByb3BlcnR5IGluZnJpbmdlbWVudC4gSW4gb3JkZXIgdG8KKyAgICAgIHF1YWxpZnksIGFuIEluZGVtbmlmaWVkIENvbnRyaWJ1dG9yIG11c3Q6IGEpIHByb21wdGx5IG5vdGlmeSB0aGUKKyAgICAgIENvbW1lcmNpYWwgQ29udHJpYnV0b3IgaW4gd3JpdGluZyBvZiBzdWNoIGNsYWltLCBhbmQgYikgYWxsb3cgdGhlIENvbW1lcmNpYWwKKyAgICAgIENvbnRyaWJ1dG9yIHRvIGNvbnRyb2wsIGFuZCBjb29wZXJhdGUgd2l0aCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBpbiwKKyAgICAgIHRoZSBkZWZlbnNlIGFuZCBhbnkgcmVsYXRlZCBzZXR0bGVtZW50IG5lZ290aWF0aW9ucy4gVGhlIEluZGVtbmlmaWVkCisgICAgICBDb250cmlidXRvciBtYXkgcGFydGljaXBhdGUgaW4gYW55IHN1Y2ggY2xhaW0gYXQgaXRzIG93biBleHBlbnNlLgorICAgIDwvcD4KKyAgICA8cD5Gb3IgZXhhbXBsZSwgYSBDb250cmlidXRvciBtaWdodCBpbmNsdWRlIHRoZSBQcm9ncmFtCisgICAgICBpbiBhIGNvbW1lcmNpYWwgcHJvZHVjdCBvZmZlcmluZywgUHJvZHVjdCBYLiBUaGF0IENvbnRyaWJ1dG9yIGlzIHRoZW4gYQorICAgICAgQ29tbWVyY2lhbCBDb250cmlidXRvci4gSWYgdGhhdCBDb21tZXJjaWFsIENvbnRyaWJ1dG9yIHRoZW4gbWFrZXMgcGVyZm9ybWFuY2UKKyAgICAgIGNsYWltcywgb3Igb2ZmZXJzIHdhcnJhbnRpZXMgcmVsYXRlZCB0byBQcm9kdWN0IFgsIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcworICAgICAgYW5kIHdhcnJhbnRpZXMgYXJlIHN1Y2ggQ29tbWVyY2lhbCBDb250cmlidXRvcidzIHJlc3BvbnNpYmlsaXR5IGFsb25lLgorICAgICAgVW5kZXIgdGhpcyBzZWN0aW9uLCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciB3b3VsZCBoYXZlIHRvIGRlZmVuZCBjbGFpbXMKKyAgICAgIGFnYWluc3QgdGhlIG90aGVyIENvbnRyaWJ1dG9ycyByZWxhdGVkIHRvIHRob3NlIHBlcmZvcm1hbmNlIGNsYWltcyBhbmQKKyAgICAgIHdhcnJhbnRpZXMsIGFuZCBpZiBhIGNvdXJ0IHJlcXVpcmVzIGFueSBvdGhlciBDb250cmlidXRvciB0byBwYXkgYW55IGRhbWFnZXMKKyAgICAgIGFzIGEgcmVzdWx0LCB0aGUgQ29tbWVyY2lhbCBDb250cmlidXRvciBtdXN0IHBheSB0aG9zZSBkYW1hZ2VzLgorICAgIDwvcD4KKyAgICA8aDIgaWQ9IndhcnJhbnR5Ij41LiBOTyBXQVJSQU5UWTwvaDI+CisgICAgPHA+RVhDRVBUIEFTIEVYUFJFU1NMWSBTRVQgRk9SVEggSU4gVEhJUyBBR1JFRU1FTlQsIEFORCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRAorICAgICAgQlkgQVBQTElDQUJMRSBMQVcsIFRIRSBQUk9HUkFNIElTIFBST1ZJREVEIE9OIEFOIOKAnEFTIElT4oCdIEJBU0lTLCBXSVRIT1VUCisgICAgICBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTIE9SIElNUExJRUQgSU5DTFVESU5HLAorICAgICAgV0lUSE9VVCBMSU1JVEFUSU9OLCBBTlkgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULAorICAgICAgTUVSQ0hBTlRBQklMSVRZIE9SIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBFYWNoIFJlY2lwaWVudCBpcworICAgICAgc29sZWx5IHJlc3BvbnNpYmxlIGZvciBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIGFuZAorICAgICAgZGlzdHJpYnV0aW5nIHRoZSBQcm9ncmFtIGFuZCBhc3N1bWVzIGFsbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggaXRzCisgICAgICBleGVyY2lzZSBvZiByaWdodHMgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gdGhlCisgICAgICByaXNrcyBhbmQgY29zdHMgb2YgcHJvZ3JhbSBlcnJvcnMsIGNvbXBsaWFuY2Ugd2l0aCBhcHBsaWNhYmxlIGxhd3MsIGRhbWFnZQorICAgICAgdG8gb3IgbG9zcyBvZiBkYXRhLCBwcm9ncmFtcyBvciBlcXVpcG1lbnQsIGFuZCB1bmF2YWlsYWJpbGl0eSBvcgorICAgICAgaW50ZXJydXB0aW9uIG9mIG9wZXJhdGlvbnMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZGlzY2xhaW1lciI+Ni4gRElTQ0xBSU1FUiBPRiBMSUFCSUxJVFk8L2gyPgorICAgIDxwPkVYQ0VQVCBBUyBFWFBSRVNTTFkgU0VUIEZPUlRIIElOIFRISVMgQUdSRUVNRU5ULCBBTkQgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQKKyAgICAgIEJZIEFQUExJQ0FCTEUgTEFXLCBORUlUSEVSIFJFQ0lQSUVOVCBOT1IgQU5ZIENPTlRSSUJVVE9SUyBTSEFMTCBIQVZFIEFOWQorICAgICAgTElBQklMSVRZIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLAorICAgICAgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcgV0lUSE9VVCBMSU1JVEFUSU9OIExPU1QgUFJPRklUUyksCisgICAgICBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVAorICAgICAgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWQorICAgICAgT1VUIE9GIFRIRSBVU0UgT1IgRElTVFJJQlVUSU9OIE9GIFRIRSBQUk9HUkFNIE9SIFRIRSBFWEVSQ0lTRSBPRiBBTlkgUklHSFRTCisgICAgICBHUkFOVEVEIEhFUkVVTkRFUiwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRVMuCisgICAgPC9wPgorICAgIDxoMiBpZD0iZ2VuZXJhbCI+Ny4gR0VORVJBTDwvaDI+CisgICAgPHA+SWYgYW55IHByb3Zpc2lvbiBvZiB0aGlzIEFncmVlbWVudCBpcyBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKKyAgICAgIGFwcGxpY2FibGUgbGF3LCBpdCBzaGFsbCBub3QgYWZmZWN0IHRoZSB2YWxpZGl0eSBvciBlbmZvcmNlYWJpbGl0eSBvZiB0aGUKKyAgICAgIHJlbWFpbmRlciBvZiB0aGUgdGVybXMgb2YgdGhpcyBBZ3JlZW1lbnQsIGFuZCB3aXRob3V0IGZ1cnRoZXIgYWN0aW9uIGJ5IHRoZQorICAgICAgcGFydGllcyBoZXJldG8sIHN1Y2ggcHJvdmlzaW9uIHNoYWxsIGJlIHJlZm9ybWVkIHRvIHRoZSBtaW5pbXVtIGV4dGVudAorICAgICAgbmVjZXNzYXJ5IHRvIG1ha2Ugc3VjaCBwcm92aXNpb24gdmFsaWQgYW5kIGVuZm9yY2VhYmxlLgorICAgIDwvcD4KKyAgICA8cD5JZiBSZWNpcGllbnQgaW5zdGl0dXRlcyBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBQcm9ncmFtIGl0c2VsZgorICAgICAgKGV4Y2x1ZGluZyBjb21iaW5hdGlvbnMgb2YgdGhlIFByb2dyYW0gd2l0aCBvdGhlciBzb2Z0d2FyZSBvciBoYXJkd2FyZSkKKyAgICAgIGluZnJpbmdlcyBzdWNoIFJlY2lwaWVudCdzIHBhdGVudChzKSwgdGhlbiBzdWNoIFJlY2lwaWVudCdzIHJpZ2h0cyBncmFudGVkCisgICAgICB1bmRlciBTZWN0aW9uIDIoYikgc2hhbGwgdGVybWluYXRlIGFzIG9mIHRoZSBkYXRlIHN1Y2ggbGl0aWdhdGlvbiBpcyBmaWxlZC4KKyAgICA8L3A+CisgICAgPHA+QWxsIFJlY2lwaWVudCdzIHJpZ2h0cyB1bmRlciB0aGlzIEFncmVlbWVudCBzaGFsbCB0ZXJtaW5hdGUgaWYgaXQgZmFpbHMgdG8KKyAgICAgIGNvbXBseSB3aXRoIGFueSBvZiB0aGUgbWF0ZXJpYWwgdGVybXMgb3IgY29uZGl0aW9ucyBvZiB0aGlzIEFncmVlbWVudCBhbmQKKyAgICAgIGRvZXMgbm90IGN1cmUgc3VjaCBmYWlsdXJlIGluIGEgcmVhc29uYWJsZSBwZXJpb2Qgb2YgdGltZSBhZnRlciBiZWNvbWluZworICAgICAgYXdhcmUgb2Ygc3VjaCBub25jb21wbGlhbmNlLiBJZiBhbGwgUmVjaXBpZW50J3MgcmlnaHRzIHVuZGVyIHRoaXMgQWdyZWVtZW50CisgICAgICB0ZXJtaW5hdGUsIFJlY2lwaWVudCBhZ3JlZXMgdG8gY2Vhc2UgdXNlIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFByb2dyYW0KKyAgICAgIGFzIHNvb24gYXMgcmVhc29uYWJseSBwcmFjdGljYWJsZS4gSG93ZXZlciwgUmVjaXBpZW50J3Mgb2JsaWdhdGlvbnMgdW5kZXIKKyAgICAgIHRoaXMgQWdyZWVtZW50IGFuZCBhbnkgbGljZW5zZXMgZ3JhbnRlZCBieSBSZWNpcGllbnQgcmVsYXRpbmcgdG8gdGhlCisgICAgICBQcm9ncmFtIHNoYWxsIGNvbnRpbnVlIGFuZCBzdXJ2aXZlLgorICAgIDwvcD4KKyAgICA8cD5FdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhpcyBBZ3JlZW1lbnQsCisgICAgICBidXQgaW4gb3JkZXIgdG8gYXZvaWQgaW5jb25zaXN0ZW5jeSB0aGUgQWdyZWVtZW50IGlzIGNvcHlyaWdodGVkIGFuZCBtYXkKKyAgICAgIG9ubHkgYmUgbW9kaWZpZWQgaW4gdGhlIGZvbGxvd2luZyBtYW5uZXIuIFRoZSBBZ3JlZW1lbnQgU3Rld2FyZCByZXNlcnZlcworICAgICAgdGhlIHJpZ2h0IHRvIHB1Ymxpc2ggbmV3IHZlcnNpb25zIChpbmNsdWRpbmcgcmV2aXNpb25zKSBvZiB0aGlzIEFncmVlbWVudAorICAgICAgZnJvbSB0aW1lIHRvIHRpbWUuIE5vIG9uZSBvdGhlciB0aGFuIHRoZSBBZ3JlZW1lbnQgU3Rld2FyZCBoYXMgdGhlIHJpZ2h0CisgICAgICB0byBtb2RpZnkgdGhpcyBBZ3JlZW1lbnQuIFRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgdGhlIGluaXRpYWwgQWdyZWVtZW50CisgICAgICBTdGV3YXJkLiBUaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1heSBhc3NpZ24gdGhlIHJlc3BvbnNpYmlsaXR5IHRvIHNlcnZlIGFzCisgICAgICB0aGUgQWdyZWVtZW50IFN0ZXdhcmQgdG8gYSBzdWl0YWJsZSBzZXBhcmF0ZSBlbnRpdHkuIEVhY2ggbmV3IHZlcnNpb24gb2YKKyAgICAgIHRoZSBBZ3JlZW1lbnQgd2lsbCBiZSBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiBUaGUgUHJvZ3JhbQorICAgICAgKGluY2x1ZGluZyBDb250cmlidXRpb25zKSBtYXkgYWx3YXlzIGJlIERpc3RyaWJ1dGVkIHN1YmplY3QgdG8gdGhlIHZlcnNpb24KKyAgICAgIG9mIHRoZSBBZ3JlZW1lbnQgdW5kZXIgd2hpY2ggaXQgd2FzIHJlY2VpdmVkLiBJbiBhZGRpdGlvbiwgYWZ0ZXIgYSBuZXcKKyAgICAgIHZlcnNpb24gb2YgdGhlIEFncmVlbWVudCBpcyBwdWJsaXNoZWQsIENvbnRyaWJ1dG9yIG1heSBlbGVjdCB0byBEaXN0cmlidXRlCisgICAgICB0aGUgUHJvZ3JhbSAoaW5jbHVkaW5nIGl0cyBDb250cmlidXRpb25zKSB1bmRlciB0aGUgbmV3IHZlcnNpb24uCisgICAgPC9wPgorICAgIDxwPkV4Y2VwdCBhcyBleHByZXNzbHkgc3RhdGVkIGluIFNlY3Rpb25zIDIoYSkgYW5kIDIoYikgYWJvdmUsIFJlY2lwaWVudAorICAgICAgcmVjZWl2ZXMgbm8gcmlnaHRzIG9yIGxpY2Vuc2VzIHRvIHRoZSBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb2YgYW55CisgICAgICBDb250cmlidXRvciB1bmRlciB0aGlzIEFncmVlbWVudCwgd2hldGhlciBleHByZXNzbHksIGJ5IGltcGxpY2F0aW9uLAorICAgICAgZXN0b3BwZWwgb3Igb3RoZXJ3aXNlLiBBbGwgcmlnaHRzIGluIHRoZSBQcm9ncmFtIG5vdCBleHByZXNzbHkgZ3JhbnRlZAorICAgICAgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgYXJlIHJlc2VydmVkLiBOb3RoaW5nIGluIHRoaXMgQWdyZWVtZW50IGlzIGludGVuZGVkCisgICAgICB0byBiZSBlbmZvcmNlYWJsZSBieSBhbnkgZW50aXR5IHRoYXQgaXMgbm90IGEgQ29udHJpYnV0b3Igb3IgUmVjaXBpZW50LgorICAgICAgTm8gdGhpcmQtcGFydHkgYmVuZWZpY2lhcnkgcmlnaHRzIGFyZSBjcmVhdGVkIHVuZGVyIHRoaXMgQWdyZWVtZW50LgorICAgIDwvcD4KKyAgICA8aDIgaWQ9ImV4aGliaXQtYSI+RXhoaWJpdCBBIOKAkyBGb3JtIG9mIFNlY29uZGFyeSBMaWNlbnNlcyBOb3RpY2U8L2gyPgorICAgIDxwPuKAnFRoaXMgU291cmNlIENvZGUgbWF5IGFsc28gYmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIGZvbGxvd2luZyAKKyAgICAJU2Vjb25kYXJ5IExpY2Vuc2VzIHdoZW4gdGhlIGNvbmRpdGlvbnMgZm9yIHN1Y2ggYXZhaWxhYmlsaXR5IHNldCBmb3J0aCAKKyAgICAJaW4gdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIHYuIDIuMCBhcmUgc2F0aXNmaWVkOiB7bmFtZSBsaWNlbnNlKHMpLAorICAgIAl2ZXJzaW9uKHMpLCBhbmQgZXhjZXB0aW9ucyBvciBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIGhlcmV9LuKAnQorICAgIDwvcD4KKyAgICA8YmxvY2txdW90ZT4KKyAgICAgIDxwPlNpbXBseSBpbmNsdWRpbmcgYSBjb3B5IG9mIHRoaXMgQWdyZWVtZW50LCBpbmNsdWRpbmcgdGhpcyBFeGhpYml0IEEKKyAgICAgICAgaXMgbm90IHN1ZmZpY2llbnQgdG8gbGljZW5zZSB0aGUgU291cmNlIENvZGUgdW5kZXIgU2Vjb25kYXJ5IExpY2Vuc2VzLgorICAgICAgPC9wPgorICAgICAgPHA+SWYgaXQgaXMgbm90IHBvc3NpYmxlIG9yIGRlc2lyYWJsZSB0byBwdXQgdGhlIG5vdGljZSBpbiBhIHBhcnRpY3VsYXIgZmlsZSwKKyAgICAgICAgdGhlbiBZb3UgbWF5IGluY2x1ZGUgdGhlIG5vdGljZSBpbiBhIGxvY2F0aW9uIChzdWNoIGFzIGEgTElDRU5TRSBmaWxlIGluIGEKKyAgICAgICAgcmVsZXZhbnQgZGlyZWN0b3J5KSB3aGVyZSBhIHJlY2lwaWVudCB3b3VsZCBiZSBsaWtlbHkgdG8gbG9vayBmb3IKKyAgICAgICAgc3VjaCBhIG5vdGljZS4KKyAgICAgIDwvcD4KKyAgICAgIDxwPllvdSBtYXkgYWRkIGFkZGl0aW9uYWwgYWNjdXJhdGUgbm90aWNlcyBvZiBjb3B5cmlnaHQgb3duZXJzaGlwLjwvcD4KKyAgICA8L2Jsb2NrcXVvdGU+CisgIAorPGRpdiBpZD0iZWlkLWNocm9tZS1leHRlbnNpb24taXMtaW5zdGFsbGVkIj48L2Rpdj48L2JvZHk+PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLWZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCmluZGV4IDg3NWMyMDQuLjM5ODA5M2EgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2ZlYXR1cmUucHJvcGVydGllcwpAQCAtMyw5ICszLDkgQEAKICMgICoKICMgICogQ29weXJpZ2h0IChjKSAyMDA3IElCTSBDb3Jwb3JhdGlvbiBhbmQgb3RoZXJzLgogIyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiAgIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyAgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAgKiAKICMgICogQ29udHJpYnV0b3JzOiAKICMgICogICBJQk0gLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KQEAgLTM2LDkgKzM2LDkgQEAKIGNvcHlyaWdodFVSTD1jb3B5cmlnaHQudHh0CiBjb3B5cmlnaHQ9Q29weXJpZ2h0IChjKSAyMDA4LCAyMDEyIE9iZW8uXG5cCiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzXG5cCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjBcblwKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMFxuXAogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXRcblwKLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sXG5cCitodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wL1xuXAogIFxuXAogQ29udHJpYnV0b3JzOlxuXAogICAgT2JlbyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpAQCAtNTQsMTI4ICs1NCwxNDMgQEAKICMgc2hvdWxkIGJlIHBsYWluIHRleHQgdmVyc2lvbiBvZiBsaWNlbnNlIGFncmVlbWVudCBwb2ludGVkIHRvIGJlICJsaWNlbnNlVVJMIgogbGljZW5zZT1cCiBFY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnRcblwKLUFwcmlsIDksIDIwMTRcblwKK1xuXAorTm92ZW1iZXIgMjIsIDIwMTdcblwKIFxuXAogVXNhZ2UgT2YgQ29udGVudFxuXAogXG5cCi1USEUgRUNMSVBTRSBGT1VOREFUSU9OIE1BS0VTIEFWQUlMQUJMRSBTT0ZUV0FSRSwgRE9DVU1FTlRBVElPTiwgSU5GT1JNQVRJT04gQU5EL09SXG5cCi1PVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTIChDT0xMRUNUSVZFTFkgIkNPTlRFTlQiKS5cblwKLVVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJU1xuXAotQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgTElDRU5TRSBBR1JFRU1FTlRTIE9SXG5cCi1OT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVVxuXAotQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVFxuXAotQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFNcblwKLU9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuICBJRiBZT1UgRE8gTk9UIEFHUkVFIFRPIFRIRVxuXAotVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OU1xuXAotT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRURcblwKLUJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC5cblwKK1RIRSBFQ0xJUFNFIEZPVU5EQVRJT04gTUFLRVMgQVZBSUxBQkxFIFNPRlRXQVJFLCBET0NVTUVOVEFUSU9OLCBJTkZPUk1BVElPTlxuXAorQU5EL09SIE9USEVSIE1BVEVSSUFMUyBGT1IgT1BFTiBTT1VSQ0UgUFJPSkVDVFMgKENPTExFQ1RJVkVMWSAiQ09OVEVOVCIpLiBVU0UgT0ZcblwKK1RIRSBDT05URU5UIElTIEdPVkVSTkVEIEJZIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFXG5cCitURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRFxuXAorQkVMT1cuIEJZIFVTSU5HIFRIRSBDT05URU5ULCBZT1UgQUdSRUUgVEhBVCBZT1VSIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRFxuXAorQlkgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBBTlkgQVBQTElDQUJMRSBMSUNFTlNFXG5cCitBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFXG5cCitURVJNUyBBTkQgQ09ORElUSU9OUyBPRiBUSElTIEFHUkVFTUVOVCBBTkQgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWVxuXAorQVBQTElDQUJMRSBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVywgVEhFTiBZT1VcblwKK01BWSBOT1QgVVNFIFRIRSBDT05URU5ULlxuXAogXG5cCiBBcHBsaWNhYmxlIExpY2Vuc2VzXG5cCiBcblwKLVVubGVzcyBvdGhlcndpc2UgaW5kaWNhdGVkLCBhbGwgQ29udGVudCBtYWRlIGF2YWlsYWJsZSBieSB0aGVcblwKLUVjbGlwc2UgRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mXG5cCi10aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoIkVQTCIpLiBBIGNvcHkgb2YgdGhlIEVQTCBpc1xuXAotcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc28gYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sLlxuXAotRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuXG5cCitVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvblxuXAoraXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZVxuXAorVmVyc2lvbiAyLjAgKCJFUEwiKS4gQSBjb3B5IG9mIHRoZSBFUEwgaXMgcHJvdmlkZWQgd2l0aCB0aGlzIENvbnRlbnQgYW5kIGlzIGFsc29cblwKK2F2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAuIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLFxuXAorIlByb2dyYW0iIHdpbGwgbWVhbiB0aGUgQ29udGVudC5cblwKIFxuXAotQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsXG5cCi1kb2N1bWVudGF0aW9uIGFuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGVcblwKLXJlcG9zaXRvcnkgKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGVcblwKLWFzIGRvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLlxuXAorQ29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb25cblwKK2FuZCBvdGhlciBmaWxlcyBtYWludGFpbmVkIGluIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gc291cmNlIGNvZGUgcmVwb3NpdG9yeVxuXAorKCJSZXBvc2l0b3J5IikgaW4gc29mdHdhcmUgbW9kdWxlcyAoIk1vZHVsZXMiKSBhbmQgbWFkZSBhdmFpbGFibGUgYXNcblwKK2Rvd25sb2FkYWJsZSBhcmNoaXZlcyAoIkRvd25sb2FkcyIpLlxuXAogXG5cCi1cdC0gQ29udGVudCBtYXkgYmUgc3RydWN0dXJlZCBhbmQgcGFja2FnZWQgaW50byBtb2R1bGVzIHRvIGZhY2lsaXRhdGUgZGVsaXZlcmluZyxcblwKLVx0ICBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuIFR5cGljYWwgbW9kdWxlcyBtYXkgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksXG5cCi1cdCAgcGx1Zy1pbiBmcmFnbWVudHMgKCJGcmFnbWVudHMiKSwgYW5kIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKLVx0LSBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVIgKEphdmEoVE0pIEFSY2hpdmUpXG5cCi1cdCAgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLlxuXAotXHQtIEEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLlxuXAotXHQgIEVhY2ggRmVhdHVyZSBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IGluIGEgZGlyZWN0b3J5IG5hbWVkICJmZWF0dXJlcyIuXG5cCi1cdCAgV2l0aGluIGEgRmVhdHVyZSwgZmlsZXMgbmFtZWQgImZlYXR1cmUueG1sIiBtYXkgY29udGFpbiBhIGxpc3Qgb2YgdGhlIG5hbWVzIGFuZCB2ZXJzaW9uXG5cCi1cdCAgbnVtYmVycyBvZiB0aGUgUGx1Zy1pbnMgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLlxuXAotXHQtIEZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlc1xuXAotXHQgIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAorLSAgIENvbnRlbnQgbWF5IGJlIHN0cnVjdHVyZWQgYW5kIHBhY2thZ2VkIGludG8gbW9kdWxlcyB0byBmYWNpbGl0YXRlXG5cCisgICAgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsIG1vZHVsZXMgbWF5XG5cCisgICAgaW5jbHVkZSBwbHVnLWlucyAoIlBsdWctaW5zIiksIHBsdWctaW4gZnJhZ21lbnRzICgiRnJhZ21lbnRzIiksIGFuZFxuXAorICAgIGZlYXR1cmVzICgiRmVhdHVyZXMiKS5cblwKKy0gICBFYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeSBvciBKQVJcblwKKyAgICAoSmF2YVx1MjEyMiBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZCAicGx1Z2lucyIuXG5cCistICAgQSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vciBGcmFnbWVudHMgYW5kXG5cCisgICAgYXNzb2NpYXRlZCBtYXRlcmlhbC4gRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYVxuXAorICAgIGRpcmVjdG9yeSBuYW1lZCAiZmVhdHVyZXMiLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heVxuXAorICAgIGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3JcblwKKyAgICBGcmFnbWVudHMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgRmVhdHVyZS5cblwKKy0gICBGZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgiSW5jbHVkZWQgRmVhdHVyZXMiKS4gV2l0aGluIGFcblwKKyAgICBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kXG5cCisgICAgdmVyc2lvbiBudW1iZXJzIG9mIEluY2x1ZGVkIEZlYXR1cmVzLlxuXAogXG5cCi1UaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgc2hvdWxkIGJlXG5cCi1jb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImFib3V0Lmh0bWwiICgiQWJvdXRzIikuIFRoZSB0ZXJtcyBhbmRcblwKLWNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZCBJbmNsdWRlZCBGZWF0dXJlcyBzaG91bGQgYmUgY29udGFpbmVkXG5cCi1pbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gQWJvdXRzIGFuZCBGZWF0dXJlXG5cCi1MaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlXG5cCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczpcblwKK1RoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluXG5cCitmaWxlcyBuYW1lZCAiYWJvdXQuaHRtbCIgKCJBYm91dHMiKS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlc1xuXAorYW5kIEluY2x1ZGVkIEZlYXR1cmVzIHNob3VsZCBiZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgImxpY2Vuc2UuaHRtbCJcblwKKygiRmVhdHVyZSBMaWNlbnNlcyIpLiBBYm91dHMgYW5kIEZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55XG5cCitkaXJlY3Rvcnkgb2YgYSBEb3dubG9hZCBvciBNb2R1bGUgaW5jbHVkaW5nLCBidXQgbm90IGxpbWl0ZWQgdG8gdGhlIGZvbGxvd2luZ1xuXAorbG9jYXRpb25zOlxuXAogXG5cCi1cdC0gVGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5XG5cCi1cdC0gUGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXNcblwKLVx0LSBJbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzXG5cCi1cdC0gU3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluc1xuXAotXHQtIEZlYXR1cmUgZGlyZWN0b3JpZXNcblwKKy0gICBUaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3RvcnlcblwKKy0gICBQbHVnLWluIGFuZCBGcmFnbWVudCBkaXJlY3Rvcmllc1xuXAorLSAgIEluc2lkZSBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHBhY2thZ2VkIGFzIEpBUnNcblwKKy0gICBTdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAic3JjIiBvZiBjZXJ0YWluIFBsdWctaW5zXG5cCistICAgRmVhdHVyZSBkaXJlY3Rvcmllc1xuXAogXG5cCi1Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcyBpbnN0YWxsZWQgdXNpbmcgdGhlXG5cCi1Qcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgXG5cCi1VcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zXG5cCi1JbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAotd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm1cblwKLXlvdSB3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW5cblwKLXRoZSAibGljZW5zZSIgcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS5cblwKLVN1Y2ggQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGVcblwKLXRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXRcblwKLWdvdmVybiB5b3VyIHVzZSBvZiB0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAorTm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nXG5cCit0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgKGFzIGRlZmluZWQgYmVsb3cpLCB5b3UgbXVzdCBhZ3JlZSB0byBhIGxpY2Vuc2VcblwKKygiRmVhdHVyZSBVcGRhdGUgTGljZW5zZSIpIGR1cmluZyB0aGUgaW5zdGFsbGF0aW9uIHByb2Nlc3MuIElmIHRoZSBGZWF0dXJlXG5cCitjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywgdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdVxuXAord2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIHRoZSBJbmNsdWRlZCBGZWF0dXJlcyBvciBpbmZvcm0geW91XG5cCit3aGVyZSB5b3UgY2FuIGxvY2F0ZSB0aGVtLiBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlcyBtYXkgYmUgZm91bmQgaW4gdGhlICJsaWNlbnNlIlxuXAorcHJvcGVydHkgb2YgZmlsZXMgbmFtZWQgImZlYXR1cmUucHJvcGVydGllcyIgZm91bmQgd2l0aGluIGEgRmVhdHVyZS4gU3VjaFxuXAorQWJvdXRzLCBGZWF0dXJlIExpY2Vuc2VzLCBhbmQgRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgY29udGFpbiB0aGUgdGVybXMgYW5kXG5cCitjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mXG5cCit0aGUgYXNzb2NpYXRlZCBDb250ZW50IGluIHRoYXQgZGlyZWN0b3J5LlxuXAogXG5cCi1USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSXG5cCi1UTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQgQ09ORElUSU9OUy5cblwKLVNPTUUgT0YgVEhFU0UgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTpcblwKK1RIRSBBQk9VVFMsIEZFQVRVUkUgTElDRU5TRVMsIEFORCBGRUFUVVJFIFVQREFURSBMSUNFTlNFUyBNQVkgUkVGRVIgVE8gVEhFIEVQTFxuXAorT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiBTT01FIE9GIFRIRVNFXG5cCitPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVCBBUkUgTk9UIExJTUlURUQgVE8pOlxuXAogXG5cCi1cdC0gRWNsaXBzZSBEaXN0cmlidXRpb24gTGljZW5zZSBWZXJzaW9uIDEuMCAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbClcblwKLVx0LSBDb21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKLVx0LSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSlcblwKLVx0LSBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAyLjAgKGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjApXG5cCi1cdC0gTW96aWxsYSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMSAoYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKKy0gICBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbClcblwKKy0gICBFY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xpY2Vuc2VzL2VkbC12MS4wLmh0bWwpXG5cCistICAgQ29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXRcblwKKyAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2NwbC12MTAuaHRtbClcblwKKy0gICBBcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFKVxuXAorLSAgIEFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0XG5cCisgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wKVxuXAorLSAgIE1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdFxuXAorICAgIGh0dHA6Ly93d3cubW96aWxsYS5vcmcvTVBML01QTC0xLjEuaHRtbClcblwKIFxuXAotSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUlxuXAotVE8gVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlXG5cCi1pcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9uc1xuXAotZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAorSVQgSVMgWU9VUiBPQkxJR0FUSU9OIFRPIFJFQUQgQU5EIEFDQ0VQVCBBTEwgU1VDSCBURVJNUyBBTkQgQ09ORElUSU9OUyBQUklPUiBUT1xuXAorVVNFIE9GIFRIRSBDT05URU5ULiBJZiBubyBBYm91dCwgRmVhdHVyZSBMaWNlbnNlLCBvciBGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlIGlzXG5cCitwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmRcblwKK2NvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LlxuXAogXG5cCi1cblxVc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3lcblwKK1VzZSBvZiBQcm92aXNpb25pbmcgVGVjaG5vbG9neVxuXAogXG5cCi1UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsXG5cCi1idXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvclxuXAotdGhlIHB1cnBvc2Ugb2YgYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yXG5cCi1vdGhlciBtYXRlcmlhbHMgKGNvbGxlY3RpdmVseSAiSW5zdGFsbGFibGUgU29mdHdhcmUiKS4gVGhpcyBjYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGhcblwKLXRoZSBpbnRlbnQgb2YgYWxsb3dpbmcgc3VjaCB1c2VycyB0byBpbnN0YWxsLCBleHRlbmQgYW5kIHVwZGF0ZSBFY2xpcHNlLWJhc2VkIHByb2R1Y3RzLlxuXAotSW5mb3JtYXRpb24gYWJvdXQgcGFja2FnaW5nIEluc3RhbGxhYmxlIFNvZnR3YXJlIGlzIGF2YWlsYWJsZSBhdFxuXAorVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcyBvZiB3aGljaFxuXAoraW5jbHVkZSwgYnV0IGFyZSBub3QgbGltaXRlZCB0bywgcDIgYW5kIHRoZSBFY2xpcHNlIFVwZGF0ZSBNYW5hZ2VyXG5cCisoIlByb3Zpc2lvbmluZyBUZWNobm9sb2d5IikgZm9yIHRoZSBwdXJwb3NlIG9mIGFsbG93aW5nIHVzZXJzIHRvIGluc3RhbGxcblwKK3NvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIChjb2xsZWN0aXZlbHlcblwKKyJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nXG5cCitzdWNoIHVzZXJzIHRvIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uXG5cCithYm91dCBwYWNrYWdpbmcgSW5zdGFsbGFibGUgU29mdHdhcmUgaXMgYXZhaWxhYmxlIGF0XG5cCiBodHRwOi8vZWNsaXBzZS5vcmcvZXF1aW5veC9wMi9yZXBvc2l0b3J5X3BhY2thZ2luZy5odG1sICgiU3BlY2lmaWNhdGlvbiIpLlxuXAogXG5cCi1Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvIGluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuXG5cCi1Zb3Ugc2hhbGwgYmUgcmVzcG9uc2libGUgZm9yIGVuYWJsaW5nIHRoZSBhcHBsaWNhYmxlIGxpY2Vuc2UgYWdyZWVtZW50cyByZWxhdGluZyB0byB0aGVcblwKLUluc3RhbGxhYmxlIFNvZnR3YXJlIHRvIGJlIHByZXNlbnRlZCB0bywgYW5kIGFjY2VwdGVkIGJ5LCB0aGUgdXNlcnMgb2YgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5XG5cCi1pbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kXG5cCi1tYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgU3BlY2lmaWNhdGlvbiwgeW91IGZ1cnRoZXIgYWNrbm93bGVkZ2UgeW91clxuXAotYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOlxuXAorWW91IG1heSB1c2UgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgdG8gYWxsb3cgb3RoZXIgcGFydGllcyB0byBpbnN0YWxsXG5cCitJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUgYXBwbGljYWJsZVxuXAorbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZFxuXAorYWNjZXB0ZWQgYnksIHRoZSB1c2VycyBvZiB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZVxuXAorU3BlY2lmaWNhdGlvbi4gQnkgdXNpbmcgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgaW4gc3VjaCBhIG1hbm5lciBhbmQgbWFraW5nIGl0XG5cCithdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyXG5cCithZ3JlZW1lbnQgdG8sIGFuZCB0aGUgYWNxdWlzaXRpb24gb2YgYWxsIG5lY2Vzc2FyeSByaWdodHMgdG8gcGVybWl0IHRoZVxuXAorZm9sbG93aW5nOlxuXAogXG5cCi1cdDEuIEEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgiUHJvdmlzaW9uaW5nIFByb2Nlc3MiKSBpbiB3aGljaCBhIHVzZXIgbWF5IGV4ZWN1dGVcblwKLVx0ICAgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGUgaW50ZW50IG9mIGluc3RhbGxpbmcsXG5cCi1cdCAgIGV4dGVuZGluZyBvciB1cGRhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBFY2xpcHNlLWJhc2VkIHByb2R1Y3QuXG5cCi1cdDIuIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmQgcGFydHlcblwKLVx0ICAgSW5zdGFsbGFibGUgU29mdHdhcmUgb3IgYSBwb3J0aW9uIHRoZXJlb2YgdG8gYmUgYWNjZXNzZWQgYW5kIGNvcGllZCB0byB0aGUgVGFyZ2V0IE1hY2hpbmUuXG5cCi1cdDMuIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0XG5cCi1cdCAgIGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSAoIkluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCIpIGFuZCBzdWNoXG5cCi1cdCAgIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlXG5cCi1cdCAgIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IG11c3QgaW5mb3JtIHRoZSB1c2VyIG9mIHRoZVxuXAotXHQgICB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5XG5cCi1cdCAgIHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaFxuXAotXHQgICBpbmRpY2F0aW9uIG9mIGFncmVlbWVudCBieSB0aGUgdXNlciwgdGhlIHByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uXG5cCi1cdCAgIG9mIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKKzEuICBBIHNlcmllcyBvZiBhY3Rpb25zIG1heSBvY2N1ciAoIlByb3Zpc2lvbmluZyBQcm9jZXNzIikgaW4gd2hpY2ggYSB1c2VyIG1heVxuXAorICAgIGV4ZWN1dGUgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoIlRhcmdldCBNYWNoaW5lIikgd2l0aCB0aGVcblwKKyAgICBpbnRlbnQgb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuXG5cCisgICAgRWNsaXBzZS1iYXNlZCBwcm9kdWN0LlxuXAorMi4gIER1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBtYXkgY2F1c2UgdGhpcmRcblwKKyAgICBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZSBhY2Nlc3NlZCBhbmQgY29waWVkIHRvXG5cCisgICAgdGhlIFRhcmdldCBNYWNoaW5lLlxuXAorMy4gIFB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmRcblwKKyAgICBjb25kaXRpb25zIHRoYXQgZ292ZXJuIHRoZSB1c2Ugb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlICgiSW5zdGFsbGFibGVcblwKKyAgICBTb2Z0d2FyZSBBZ3JlZW1lbnQiKSBhbmQgc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgc2hhbGwgYmVcblwKKyAgICBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQgTWFjaGluZSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIFN1Y2hcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZFxuXAorICAgIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4gdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlIGFuZCBtdXN0IHNvbGljaXQgYWNjZXB0YW5jZVxuXAorICAgIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZVxuXAorICAgIFNvZnR3YXJlIEFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGVcblwKKyAgICBwcm92aXNpb25pbmcgVGVjaG5vbG9neSB3aWxsIGNvbXBsZXRlIGluc3RhbGxhdGlvbiBvZiB0aGVcblwKKyAgICBJbnN0YWxsYWJsZSBTb2Z0d2FyZS5cblwKIFxuXAogQ3J5cHRvZ3JhcGh5XG5cCiBcblwKLUNvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZVxuXAotY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLFxuXAotYW5kL29yIHJlLWV4cG9ydCB0byBhbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRVxuXAotdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsXG5cCi1yZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZFxuXAotcmUtZXhwb3J0IG9mIGVuY3J5cHRpb24gc29mdHdhcmUsIHRvIHNlZSBpZiB0aGlzIGlzIHBlcm1pdHRlZC5cblwKK0NvbnRlbnQgbWF5IGNvbnRhaW4gZW5jcnlwdGlvbiBzb2Z0d2FyZS4gVGhlIGNvdW50cnkgaW4gd2hpY2ggeW91IGFyZSBjdXJyZW50bHlcblwKK21heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQgdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvXG5cCithbm90aGVyIGNvdW50cnksIG9mIGVuY3J5cHRpb24gc29mdHdhcmUuIEJFRk9SRSB1c2luZyBhbnkgZW5jcnlwdGlvbiBzb2Z0d2FyZSxcblwKK3BsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsXG5cCitwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXNcblwKK3Blcm1pdHRlZC5cblwKIFxuXAotSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC5cbgorSmF2YSBhbmQgYWxsIEphdmEtYmFzZWQgdHJhZGVtYXJrcyBhcmUgdHJhZGVtYXJrcyBvZiBPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlXG5cCitVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguXG4KICMjIyMjIyMjIyMjIGVuZCBvZiBsaWNlbnNlIHByb3BlcnR5ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotCi0KLQpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2xpY2Vuc2UuaHRtbCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9saWNlbnNlLmh0bWwKaW5kZXggY2VjZjEzNy4uYWZiMmYzNSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL2xpY2Vuc2UuaHRtbAorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLWZlYXR1cmUvbGljZW5zZS5odG1sCkBAIC0xLDEwNiArMSwxOTAgQEAKLTwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4KLTwhLS0gc2F2ZWQgZnJvbSB1cmw9KDAwNDQpaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwvbm90aWNlLmh0bWwgLS0+Ci08aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9SVNPLTg4NTktMSI+CiAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IklTTy04ODU5LTEiID8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+Cis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiIC8+CiA8dGl0bGU+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC90aXRsZT4KLTxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+PC9zdHlsZT48L2hlYWQ+Cis8L2hlYWQ+CiAKIDxib2R5IGxhbmc9IkVOLVVTIj4KLTxoMj5FY2xpcHNlIEZvdW5kYXRpb24gU29mdHdhcmUgVXNlciBBZ3JlZW1lbnQ8L2gyPgotPHA+QXByaWwgOSwgMjAxNDwvcD4KKwk8aDI+RWNsaXBzZSBGb3VuZGF0aW9uIFNvZnR3YXJlIFVzZXIgQWdyZWVtZW50PC9oMj4KKwk8cD5Ob3ZlbWJlciAyMiwgMjAxNzwvcD4KIAotPGgzPlVzYWdlIE9mIENvbnRlbnQ8L2gzPgorCTxoMz5Vc2FnZSBPZiBDb250ZW50PC9oMz4KIAotPHA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sIElORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCi0gICAoQ09MTEVDVElWRUxZICJDT05URU5UIikuICBVU0UgT0YgVEhFIENPTlRFTlQgSVMgR09WRVJORUQgQlkgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLiAgQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFCi0gICBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWSBUSElTIEFHUkVFTUVOVCBBTkQvT1IgVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUgotICAgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRCBCRUxPVy4gIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMgQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5ECi0gICBDT05ESVRJT05TIE9GIEFOWSBBUFBMSUNBQkxFIExJQ0VOU0UgQUdSRUVNRU5UUyBPUiBOT1RJQ0VTIElORElDQVRFRCBPUiBSRUZFUkVOQ0VEIEJFTE9XLCBUSEVOIFlPVSBNQVkgTk9UIFVTRSBUSEUgQ09OVEVOVC48L3A+CisJPHA+VEhFIEVDTElQU0UgRk9VTkRBVElPTiBNQUtFUyBBVkFJTEFCTEUgU09GVFdBUkUsIERPQ1VNRU5UQVRJT04sCisJCUlORk9STUFUSU9OIEFORC9PUiBPVEhFUiBNQVRFUklBTFMgRk9SIE9QRU4gU09VUkNFIFBST0pFQ1RTCisJCShDT0xMRUNUSVZFTFkgJnF1b3Q7Q09OVEVOVCZxdW90OykuIFVTRSBPRiBUSEUgQ09OVEVOVCBJUyBHT1ZFUk5FRCBCWQorCQlUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgVEhJUyBBR1JFRU1FTlQgQU5EL09SIFRIRSBURVJNUyBBTkQKKwkJQ09ORElUSU9OUyBPRiBMSUNFTlNFIEFHUkVFTUVOVFMgT1IgTk9USUNFUyBJTkRJQ0FURUQgT1IgUkVGRVJFTkNFRAorCQlCRUxPVy4gQlkgVVNJTkcgVEhFIENPTlRFTlQsIFlPVSBBR1JFRSBUSEFUIFlPVVIgVVNFIE9GIFRIRSBDT05URU5UIElTCisJCUdPVkVSTkVEIEJZIFRISVMgQUdSRUVNRU5UIEFORC9PUiBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZCisJCUFQUExJQ0FCTEUgTElDRU5TRSBBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQKKwkJQkVMT1cuIElGIFlPVSBETyBOT1QgQUdSRUUgVE8gVEhFIFRFUk1TIEFORCBDT05ESVRJT05TIE9GIFRISVMKKwkJQUdSRUVNRU5UIEFORCBUSEUgVEVSTVMgQU5EIENPTkRJVElPTlMgT0YgQU5ZIEFQUExJQ0FCTEUgTElDRU5TRQorCQlBR1JFRU1FTlRTIE9SIE5PVElDRVMgSU5ESUNBVEVEIE9SIFJFRkVSRU5DRUQgQkVMT1csIFRIRU4gWU9VIE1BWSBOT1QKKwkJVVNFIFRIRSBDT05URU5ULjwvcD4KIAotPGgzPkFwcGxpY2FibGUgTGljZW5zZXM8L2gzPgorCTxoMz5BcHBsaWNhYmxlIExpY2Vuc2VzPC9oMz4KIAotPHA+VW5sZXNzIG90aGVyd2lzZSBpbmRpY2F0ZWQsIGFsbCBDb250ZW50IG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMAotICAgKCJFUEwiKS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIHByb3ZpZGVkIHdpdGggdGhpcyBDb250ZW50IGFuZCBpcyBhbHNvIGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgotICAgRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICJQcm9ncmFtIiB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgorCTxwPgorCQlVbmxlc3Mgb3RoZXJ3aXNlIGluZGljYXRlZCwgYWxsIENvbnRlbnQgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQorCQlFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiBBIGNvcHkgb2YgdGhlCisJCUVQTCBpcyBwcm92aWRlZCB3aXRoIHRoaXMgQ29udGVudCBhbmQgaXMgYWxzbyBhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wPC9hPi4KKwkJRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LgorCTwvcD4KIAotPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0IGNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBzb3VyY2UgY29kZQotICAgcmVwb3NpdG9yeSAoIlJlcG9zaXRvcnkiKSBpbiBzb2Z0d2FyZSBtb2R1bGVzICgiTW9kdWxlcyIpIGFuZCBtYWRlIGF2YWlsYWJsZSBhcyBkb3dubG9hZGFibGUgYXJjaGl2ZXMgKCJEb3dubG9hZHMiKS48L3A+CisJPHA+Q29udGVudCBpbmNsdWRlcywgYnV0IGlzIG5vdCBsaW1pdGVkIHRvLCBzb3VyY2UgY29kZSwgb2JqZWN0CisJCWNvZGUsIGRvY3VtZW50YXRpb24gYW5kIG90aGVyIGZpbGVzIG1haW50YWluZWQgaW4gdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiBzb3VyY2UgY29kZSByZXBvc2l0b3J5ICgmcXVvdDtSZXBvc2l0b3J5JnF1b3Q7KSBpbiBzb2Z0d2FyZQorCQltb2R1bGVzICgmcXVvdDtNb2R1bGVzJnF1b3Q7KSBhbmQgbWFkZSBhdmFpbGFibGUgYXMgZG93bmxvYWRhYmxlCisJCWFyY2hpdmVzICgmcXVvdDtEb3dubG9hZHMmcXVvdDspLjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8gZmFjaWxpdGF0ZSBkZWxpdmVyaW5nLCBleHRlbmRpbmcsIGFuZCB1cGdyYWRpbmcgdGhlIENvbnRlbnQuICBUeXBpY2FsIG1vZHVsZXMgbWF5IGluY2x1ZGUgcGx1Zy1pbnMgKCJQbHVnLWlucyIpLCBwbHVnLWluIGZyYWdtZW50cyAoIkZyYWdtZW50cyIpLCBhbmQgZmVhdHVyZXMgKCJGZWF0dXJlcyIpLjwvbGk+Ci0gICAgICAgPGxpPkVhY2ggUGx1Zy1pbiBvciBGcmFnbWVudCBtYXkgYmUgcGFja2FnZWQgYXMgYSBzdWItZGlyZWN0b3J5IG9yIEpBUiAoSmF2YZkgQVJjaGl2ZSkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgInBsdWdpbnMiLjwvbGk+Ci0gICAgICAgPGxpPkEgRmVhdHVyZSBpcyBhIGJ1bmRsZSBvZiBvbmUgb3IgbW9yZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiAgRWFjaCBGZWF0dXJlIG1heSBiZSBwYWNrYWdlZCBhcyBhIHN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgImZlYXR1cmVzIi4gIFdpdGhpbiBhIEZlYXR1cmUsIGZpbGVzIG5hbWVkICJmZWF0dXJlLnhtbCIgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucwotICAgICAgYW5kL29yIEZyYWdtZW50cyBhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+Ci0gICAgICAgPGxpPkZlYXR1cmVzIG1heSBhbHNvIGluY2x1ZGUgb3RoZXIgRmVhdHVyZXMgKCJJbmNsdWRlZCBGZWF0dXJlcyIpLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZCAiZmVhdHVyZS54bWwiIG1heSBjb250YWluIGEgbGlzdCBvZiB0aGUgbmFtZXMgYW5kIHZlcnNpb24gbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5Db250ZW50IG1heSBiZSBzdHJ1Y3R1cmVkIGFuZCBwYWNrYWdlZCBpbnRvIG1vZHVsZXMgdG8KKwkJCWZhY2lsaXRhdGUgZGVsaXZlcmluZywgZXh0ZW5kaW5nLCBhbmQgdXBncmFkaW5nIHRoZSBDb250ZW50LiBUeXBpY2FsCisJCQltb2R1bGVzIG1heSBpbmNsdWRlIHBsdWctaW5zICgmcXVvdDtQbHVnLWlucyZxdW90OyksIHBsdWctaW4KKwkJCWZyYWdtZW50cyAoJnF1b3Q7RnJhZ21lbnRzJnF1b3Q7KSwgYW5kIGZlYXR1cmVzCisJCQkoJnF1b3Q7RmVhdHVyZXMmcXVvdDspLjwvbGk+CisJCTxsaT5FYWNoIFBsdWctaW4gb3IgRnJhZ21lbnQgbWF5IGJlIHBhY2thZ2VkIGFzIGEgc3ViLWRpcmVjdG9yeQorCQkJb3IgSkFSIChKYXZhJnRyYWRlOyBBUmNoaXZlKSBpbiBhIGRpcmVjdG9yeSBuYW1lZAorCQkJJnF1b3Q7cGx1Z2lucyZxdW90Oy48L2xpPgorCQk8bGk+QSBGZWF0dXJlIGlzIGEgYnVuZGxlIG9mIG9uZSBvciBtb3JlIFBsdWctaW5zIGFuZC9vcgorCQkJRnJhZ21lbnRzIGFuZCBhc3NvY2lhdGVkIG1hdGVyaWFsLiBFYWNoIEZlYXR1cmUgbWF5IGJlIHBhY2thZ2VkIGFzIGEKKwkJCXN1Yi1kaXJlY3RvcnkgaW4gYSBkaXJlY3RvcnkgbmFtZWQgJnF1b3Q7ZmVhdHVyZXMmcXVvdDsuIFdpdGhpbiBhCisJCQlGZWF0dXJlLCBmaWxlcyBuYW1lZCAmcXVvdDtmZWF0dXJlLnhtbCZxdW90OyBtYXkgY29udGFpbiBhIGxpc3Qgb2YKKwkJCXRoZSBuYW1lcyBhbmQgdmVyc2lvbiBudW1iZXJzIG9mIHRoZSBQbHVnLWlucyBhbmQvb3IgRnJhZ21lbnRzCisJCQlhc3NvY2lhdGVkIHdpdGggdGhhdCBGZWF0dXJlLjwvbGk+CisJCTxsaT5GZWF0dXJlcyBtYXkgYWxzbyBpbmNsdWRlIG90aGVyIEZlYXR1cmVzICgmcXVvdDtJbmNsdWRlZAorCQkJRmVhdHVyZXMmcXVvdDspLiBXaXRoaW4gYSBGZWF0dXJlLCBmaWxlcyBuYW1lZAorCQkJJnF1b3Q7ZmVhdHVyZS54bWwmcXVvdDsgbWF5IGNvbnRhaW4gYSBsaXN0IG9mIHRoZSBuYW1lcyBhbmQgdmVyc2lvbgorCQkJbnVtYmVycyBvZiBJbmNsdWRlZCBGZWF0dXJlcy48L2xpPgorCTwvdWw+CiAKLTxwPlRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBzaG91bGQgYmUgY29udGFpbmVkIGluIGZpbGVzIG5hbWVkICJhYm91dC5odG1sIiAoIkFib3V0cyIpLiBUaGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuaW5nIEZlYXR1cmVzIGFuZAotSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZCAibGljZW5zZS5odG1sIiAoIkZlYXR1cmUgTGljZW5zZXMiKS4gIEFib3V0cyBhbmQgRmVhdHVyZSBMaWNlbnNlcyBtYXkgYmUgbG9jYXRlZCBpbiBhbnkgZGlyZWN0b3J5IG9mIGEgRG93bmxvYWQgb3IgTW9kdWxlCi1pbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CisJPHA+VGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBQbHVnLWlucyBhbmQgRnJhZ21lbnRzIHNob3VsZAorCQliZSBjb250YWluZWQgaW4gZmlsZXMgbmFtZWQgJnF1b3Q7YWJvdXQuaHRtbCZxdW90OworCQkoJnF1b3Q7QWJvdXRzJnF1b3Q7KS4gVGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyBGZWF0dXJlcyBhbmQKKwkJSW5jbHVkZWQgRmVhdHVyZXMgc2hvdWxkIGJlIGNvbnRhaW5lZCBpbiBmaWxlcyBuYW1lZAorCQkmcXVvdDtsaWNlbnNlLmh0bWwmcXVvdDsgKCZxdW90O0ZlYXR1cmUgTGljZW5zZXMmcXVvdDspLiBBYm91dHMgYW5kCisJCUZlYXR1cmUgTGljZW5zZXMgbWF5IGJlIGxvY2F0ZWQgaW4gYW55IGRpcmVjdG9yeSBvZiBhIERvd25sb2FkIG9yCisJCU1vZHVsZSBpbmNsdWRpbmcsIGJ1dCBub3QgbGltaXRlZCB0byB0aGUgZm9sbG93aW5nIGxvY2F0aW9uczo8L3A+CiAKLTx1bD4KLSAgICAgICA8bGk+VGhlIHRvcC1sZXZlbCAocm9vdCkgZGlyZWN0b3J5PC9saT4KLSAgICAgICA8bGk+UGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXM8L2xpPgotICAgICAgIDxsaT5JbnNpZGUgUGx1Zy1pbnMgYW5kIEZyYWdtZW50cyBwYWNrYWdlZCBhcyBKQVJzPC9saT4KLSAgICAgICA8bGk+U3ViLWRpcmVjdG9yaWVzIG9mIHRoZSBkaXJlY3RvcnkgbmFtZWQgInNyYyIgb2YgY2VydGFpbiBQbHVnLWluczwvbGk+Ci0gICAgICAgPGxpPkZlYXR1cmUgZGlyZWN0b3JpZXM8L2xpPgotPC91bD4KKwk8dWw+CisJCTxsaT5UaGUgdG9wLWxldmVsIChyb290KSBkaXJlY3Rvcnk8L2xpPgorCQk8bGk+UGx1Zy1pbiBhbmQgRnJhZ21lbnQgZGlyZWN0b3JpZXM8L2xpPgorCQk8bGk+SW5zaWRlIFBsdWctaW5zIGFuZCBGcmFnbWVudHMgcGFja2FnZWQgYXMgSkFSczwvbGk+CisJCTxsaT5TdWItZGlyZWN0b3JpZXMgb2YgdGhlIGRpcmVjdG9yeSBuYW1lZCAmcXVvdDtzcmMmcXVvdDsgb2YKKwkJCWNlcnRhaW4gUGx1Zy1pbnM8L2xpPgorCQk8bGk+RmVhdHVyZSBkaXJlY3RvcmllczwvbGk+CisJPC91bD4KIAotPHA+Tm90ZTogaWYgYSBGZWF0dXJlIG1hZGUgYXZhaWxhYmxlIGJ5IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gaXMgaW5zdGFsbGVkIHVzaW5nIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSAoYXMgZGVmaW5lZCBiZWxvdyksIHlvdSBtdXN0IGFncmVlIHRvIGEgbGljZW5zZSAoIkZlYXR1cmUgVXBkYXRlIExpY2Vuc2UiKSBkdXJpbmcgdGhlCi1pbnN0YWxsYXRpb24gcHJvY2Vzcy4gIElmIHRoZSBGZWF0dXJlIGNvbnRhaW5zIEluY2x1ZGVkIEZlYXR1cmVzLCB0aGUgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBzaG91bGQgZWl0aGVyIHByb3ZpZGUgeW91IHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIGdvdmVybmluZyB0aGUgSW5jbHVkZWQgRmVhdHVyZXMgb3IKLWluZm9ybSB5b3Ugd2hlcmUgeW91IGNhbiBsb2NhdGUgdGhlbS4gIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIG1heSBiZSBmb3VuZCBpbiB0aGUgImxpY2Vuc2UiIHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkICJmZWF0dXJlLnByb3BlcnRpZXMiIGZvdW5kIHdpdGhpbiBhIEZlYXR1cmUuCi1TdWNoIEFib3V0cywgRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuIHlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4KLXRoYXQgZGlyZWN0b3J5LjwvcD4KKwk8cD5Ob3RlOiBpZiBhIEZlYXR1cmUgbWFkZSBhdmFpbGFibGUgYnkgdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBpcworCQlpbnN0YWxsZWQgdXNpbmcgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IChhcyBkZWZpbmVkIGJlbG93KSwgeW91CisJCW11c3QgYWdyZWUgdG8gYSBsaWNlbnNlICgmcXVvdDtGZWF0dXJlIFVwZGF0ZSBMaWNlbnNlJnF1b3Q7KSBkdXJpbmcKKwkJdGhlIGluc3RhbGxhdGlvbiBwcm9jZXNzLiBJZiB0aGUgRmVhdHVyZSBjb250YWlucyBJbmNsdWRlZCBGZWF0dXJlcywKKwkJdGhlIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2Ugc2hvdWxkIGVpdGhlciBwcm92aWRlIHlvdSB3aXRoIHRoZSB0ZXJtcworCQlhbmQgY29uZGl0aW9ucyBnb3Zlcm5pbmcgdGhlIEluY2x1ZGVkIEZlYXR1cmVzIG9yIGluZm9ybSB5b3Ugd2hlcmUgeW91CisJCWNhbiBsb2NhdGUgdGhlbS4gRmVhdHVyZSBVcGRhdGUgTGljZW5zZXMgbWF5IGJlIGZvdW5kIGluIHRoZQorCQkmcXVvdDtsaWNlbnNlJnF1b3Q7IHByb3BlcnR5IG9mIGZpbGVzIG5hbWVkCisJCSZxdW90O2ZlYXR1cmUucHJvcGVydGllcyZxdW90OyBmb3VuZCB3aXRoaW4gYSBGZWF0dXJlLiBTdWNoIEFib3V0cywKKwkJRmVhdHVyZSBMaWNlbnNlcywgYW5kIEZlYXR1cmUgVXBkYXRlIExpY2Vuc2VzIGNvbnRhaW4gdGhlIHRlcm1zIGFuZAorCQljb25kaXRpb25zIChvciByZWZlcmVuY2VzIHRvIHN1Y2ggdGVybXMgYW5kIGNvbmRpdGlvbnMpIHRoYXQgZ292ZXJuCisJCXlvdXIgdXNlIG9mIHRoZSBhc3NvY2lhdGVkIENvbnRlbnQgaW4gdGhhdCBkaXJlY3RvcnkuPC9wPgogCi08cD5USEUgQUJPVVRTLCBGRUFUVVJFIExJQ0VOU0VTLCBBTkQgRkVBVFVSRSBVUERBVEUgTElDRU5TRVMgTUFZIFJFRkVSIFRPIFRIRSBFUEwgT1IgT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTLCBOT1RJQ0VTIE9SIFRFUk1TIEFORCBDT05ESVRJT05TLiAgU09NRSBPRiBUSEVTRQotT1RIRVIgTElDRU5TRSBBR1JFRU1FTlRTIE1BWSBJTkNMVURFIChCVVQgQVJFIE5PVCBMSU1JVEVEIFRPKTo8L3A+CisJPHA+VEhFIEFCT1VUUywgRkVBVFVSRSBMSUNFTlNFUywgQU5EIEZFQVRVUkUgVVBEQVRFIExJQ0VOU0VTIE1BWQorCQlSRUZFUiBUTyBUSEUgRVBMIE9SIE9USEVSIExJQ0VOU0UgQUdSRUVNRU5UUywgTk9USUNFUyBPUiBURVJNUyBBTkQKKwkJQ09ORElUSU9OUy4gU09NRSBPRiBUSEVTRSBPVEhFUiBMSUNFTlNFIEFHUkVFTUVOVFMgTUFZIElOQ0xVREUgKEJVVAorCQlBUkUgTk9UIExJTUlURUQgVE8pOjwvcD4KIAotPHVsPgotICAgICAgIDxsaT5FY2xpcHNlIERpc3RyaWJ1dGlvbiBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbDwvYT4pPC9saT4KLSAgICAgICA8bGk+Q29tbW9uIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPik8L2xpPgotICAgICAgIDxsaT5BcGFjaGUgU29mdHdhcmUgTGljZW5zZSAxLjEgKGF2YWlsYWJsZSBhdCA8YSBocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L2E+KTwvbGk+Ci0gICAgICAgPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDIuMCAoYXZhaWxhYmxlIGF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9hPik8L2xpPgotICAgICAgIDxsaT5Nb3ppbGxhIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4xIChhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KTwvbGk+Ci08L3VsPgorCTx1bD4KKwkJPGxpPkVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkVjbGlwc2UgRGlzdHJpYnV0aW9uIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9saWNlbnNlcy9lZGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGljZW5zZXMvZWRsLXYxLjAuaHRtbDwvYT4pCisJCTwvbGk+CisJCTxsaT5Db21tb24gUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9jcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvY3BsLXYxMC5odG1sPC9hPikKKwkJPC9saT4KKwkJPGxpPkFwYWNoZSBTb2Z0d2FyZSBMaWNlbnNlIDEuMSAoYXZhaWxhYmxlIGF0IDxhCisJCQlocmVmPSJodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRSI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0U8L2E+KQorCQk8L2xpPgorCQk8bGk+QXBhY2hlIFNvZnR3YXJlIExpY2Vuc2UgMi4wIChhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMCI+aHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wPC9hPikKKwkJPC9saT4KKwkJPGxpPk1vemlsbGEgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjEgKGF2YWlsYWJsZSBhdCA8YQorCQkJaHJlZj0iaHR0cDovL3d3dy5tb3ppbGxhLm9yZy9NUEwvTVBMLTEuMS5odG1sIj5odHRwOi8vd3d3Lm1vemlsbGEub3JnL01QTC9NUEwtMS4xLmh0bWw8L2E+KQorCQk8L2xpPgorCTwvdWw+CiAKLTxwPklUIElTIFlPVVIgT0JMSUdBVElPTiBUTyBSRUFEIEFORCBBQ0NFUFQgQUxMIFNVQ0ggVEVSTVMgQU5EIENPTkRJVElPTlMgUFJJT1IgVE8gVVNFIE9GIFRIRSBDT05URU5ULiAgSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwgb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlCi1jb250YWN0IHRoZSBFY2xpcHNlIEZvdW5kYXRpb24gdG8gZGV0ZXJtaW5lIHdoYXQgdGVybXMgYW5kIGNvbmRpdGlvbnMgZ292ZXJuIHRoYXQgcGFydGljdWxhciBDb250ZW50LjwvcD4KKwk8cD5JVCBJUyBZT1VSIE9CTElHQVRJT04gVE8gUkVBRCBBTkQgQUNDRVBUIEFMTCBTVUNIIFRFUk1TIEFORAorCQlDT05ESVRJT05TIFBSSU9SIFRPIFVTRSBPRiBUSEUgQ09OVEVOVC4gSWYgbm8gQWJvdXQsIEZlYXR1cmUgTGljZW5zZSwKKwkJb3IgRmVhdHVyZSBVcGRhdGUgTGljZW5zZSBpcyBwcm92aWRlZCwgcGxlYXNlIGNvbnRhY3QgdGhlIEVjbGlwc2UKKwkJRm91bmRhdGlvbiB0byBkZXRlcm1pbmUgd2hhdCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBnb3Zlcm4gdGhhdAorCQlwYXJ0aWN1bGFyIENvbnRlbnQuPC9wPgogCiAKLTxoMz5Vc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3k8L2gzPgorCTxoMz5Vc2Ugb2YgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3k8L2gzPgogCi08cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBwcm92aXNpb25pbmcgc29mdHdhcmUsIGV4YW1wbGVzIG9mIHdoaWNoIGluY2x1ZGUsIGJ1dCBhcmUgbm90IGxpbWl0ZWQgdG8sIHAyIGFuZCB0aGUgRWNsaXBzZQotICAgVXBkYXRlIE1hbmFnZXIgKCJQcm92aXNpb25pbmcgVGVjaG5vbG9neSIpIGZvciB0aGUgcHVycG9zZSBvZiBhbGxvd2luZyB1c2VycyB0byBpbnN0YWxsIHNvZnR3YXJlLCBkb2N1bWVudGF0aW9uLCBpbmZvcm1hdGlvbiBhbmQvb3IKLSAgIG90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5ICJJbnN0YWxsYWJsZSBTb2Z0d2FyZSIpLiBUaGlzIGNhcGFiaWxpdHkgaXMgcHJvdmlkZWQgd2l0aCB0aGUgaW50ZW50IG9mIGFsbG93aW5nIHN1Y2ggdXNlcnMgdG8KLSAgIGluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0IHBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEgaHJlZj0iaHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbCI+aHR0cDovL2VjbGlwc2Uub3JnL2VxdWlub3gvcDIvcmVwb3NpdG9yeV9wYWNrYWdpbmcuaHRtbDwvYT4KLSAgICgiU3BlY2lmaWNhdGlvbiIpLjwvcD4KKwk8cD4KKwkJVGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgcHJvdmlzaW9uaW5nIHNvZnR3YXJlLCBleGFtcGxlcworCQlvZiB3aGljaCBpbmNsdWRlLCBidXQgYXJlIG5vdCBsaW1pdGVkIHRvLCBwMiBhbmQgdGhlIEVjbGlwc2UgVXBkYXRlCisJCU1hbmFnZXIgKCZxdW90O1Byb3Zpc2lvbmluZyBUZWNobm9sb2d5JnF1b3Q7KSBmb3IgdGhlIHB1cnBvc2Ugb2YKKwkJYWxsb3dpbmcgdXNlcnMgdG8gaW5zdGFsbCBzb2Z0d2FyZSwgZG9jdW1lbnRhdGlvbiwgaW5mb3JtYXRpb24gYW5kL29yCisJCW90aGVyIG1hdGVyaWFscyAoY29sbGVjdGl2ZWx5ICZxdW90O0luc3RhbGxhYmxlIFNvZnR3YXJlJnF1b3Q7KS4gVGhpcworCQljYXBhYmlsaXR5IGlzIHByb3ZpZGVkIHdpdGggdGhlIGludGVudCBvZiBhbGxvd2luZyBzdWNoIHVzZXJzIHRvCisJCWluc3RhbGwsIGV4dGVuZCBhbmQgdXBkYXRlIEVjbGlwc2UtYmFzZWQgcHJvZHVjdHMuIEluZm9ybWF0aW9uIGFib3V0CisJCXBhY2thZ2luZyBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBpcyBhdmFpbGFibGUgYXQgPGEKKwkJCWhyZWY9Imh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWwiPmh0dHA6Ly9lY2xpcHNlLm9yZy9lcXVpbm94L3AyL3JlcG9zaXRvcnlfcGFja2FnaW5nLmh0bWw8L2E+CisJCSgmcXVvdDtTcGVjaWZpY2F0aW9uJnF1b3Q7KS4KKwk8L3A+CiAKLTxwPllvdSBtYXkgdXNlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHRvIGFsbG93IG90aGVyIHBhcnRpZXMgdG8gaW5zdGFsbCBJbnN0YWxsYWJsZSBTb2Z0d2FyZS4gWW91IHNoYWxsIGJlIHJlc3BvbnNpYmxlIGZvciBlbmFibGluZyB0aGUKLSAgIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSB0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQotICAgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBCeSB1c2luZyBQcm92aXNpb25pbmcgVGVjaG5vbG9neSBpbiBzdWNoIGEgbWFubmVyIGFuZCBtYWtpbmcgaXQgYXZhaWxhYmxlIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUKLSAgIFNwZWNpZmljYXRpb24sIHlvdSBmdXJ0aGVyIGFja25vd2xlZGdlIHlvdXIgYWdyZWVtZW50IHRvLCBhbmQgdGhlIGFjcXVpc2l0aW9uIG9mIGFsbCBuZWNlc3NhcnkgcmlnaHRzIHRvIHBlcm1pdCB0aGUgZm9sbG93aW5nOjwvcD4KKwk8cD5Zb3UgbWF5IHVzZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neSB0byBhbGxvdyBvdGhlciBwYXJ0aWVzIHRvCisJCWluc3RhbGwgSW5zdGFsbGFibGUgU29mdHdhcmUuIFlvdSBzaGFsbCBiZSByZXNwb25zaWJsZSBmb3IgZW5hYmxpbmcKKwkJdGhlIGFwcGxpY2FibGUgbGljZW5zZSBhZ3JlZW1lbnRzIHJlbGF0aW5nIHRvIHRoZSBJbnN0YWxsYWJsZSBTb2Z0d2FyZQorCQl0byBiZSBwcmVzZW50ZWQgdG8sIGFuZCBhY2NlcHRlZCBieSwgdGhlIHVzZXJzIG9mIHRoZSBQcm92aXNpb25pbmcKKwkJVGVjaG5vbG9neSBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIFNwZWNpZmljYXRpb24uIEJ5IHVzaW5nIFByb3Zpc2lvbmluZworCQlUZWNobm9sb2d5IGluIHN1Y2ggYSBtYW5uZXIgYW5kIG1ha2luZyBpdCBhdmFpbGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoCisJCXRoZSBTcGVjaWZpY2F0aW9uLCB5b3UgZnVydGhlciBhY2tub3dsZWRnZSB5b3VyIGFncmVlbWVudCB0bywgYW5kIHRoZQorCQlhY3F1aXNpdGlvbiBvZiBhbGwgbmVjZXNzYXJ5IHJpZ2h0cyB0byBwZXJtaXQgdGhlIGZvbGxvd2luZzo8L3A+CiAKLTxvbD4KLSAgICAgICA8bGk+QSBzZXJpZXMgb2YgYWN0aW9ucyBtYXkgb2NjdXIgKCJQcm92aXNpb25pbmcgUHJvY2VzcyIpIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kKLSAgICAgICBvbiBhIG1hY2hpbmUgKCJUYXJnZXQgTWFjaGluZSIpIHdpdGggdGhlIGludGVudCBvZiBpbnN0YWxsaW5nLCBleHRlbmRpbmcgb3IgdXBkYXRpbmcgdGhlIGZ1bmN0aW9uYWxpdHkgb2YgYW4gRWNsaXBzZS1iYXNlZAotICAgICAgIHByb2R1Y3QuPC9saT4KLSAgICAgICA8bGk+RHVyaW5nIHRoZSBQcm92aXNpb25pbmcgUHJvY2VzcywgdGhlIFByb3Zpc2lvbmluZyBUZWNobm9sb2d5IG1heSBjYXVzZSB0aGlyZCBwYXJ0eSBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBvciBhIHBvcnRpb24gdGhlcmVvZiB0byBiZQotICAgICAgIGFjY2Vzc2VkIGFuZCBjb3BpZWQgdG8gdGhlIFRhcmdldCBNYWNoaW5lLjwvbGk+Ci0gICAgICAgPGxpPlB1cnN1YW50IHRvIHRoZSBTcGVjaWZpY2F0aW9uLCB5b3Ugd2lsbCBwcm92aWRlIHRvIHRoZSB1c2VyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQotICAgICAgIFNvZnR3YXJlICgiSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IikgYW5kIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUgQWdyZWVtZW50IHNoYWxsIGJlIGFjY2Vzc2VkIGZyb20gdGhlIFRhcmdldAotICAgICAgIE1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBtdXN0IGluZm9ybSB0aGUgdXNlciBvZiB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgdGhhdCBnb3Zlcm4KLSAgICAgICB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5IHRoZSBlbmQgdXNlciBpbiB0aGUgbWFubmVyIHByZXNjcmliZWQgaW4gc3VjaCBJbnN0YWxsYWJsZSBTb2Z0d2FyZSBBZ3JlZW1lbnQuIFVwb24gc3VjaAotICAgICAgIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUgcHJvdmlzaW9uaW5nIFRlY2hub2xvZ3kgd2lsbCBjb21wbGV0ZSBpbnN0YWxsYXRpb24gb2YgdGhlIEluc3RhbGxhYmxlIFNvZnR3YXJlLjwvbGk+Ci08L29sPgorCTxvbD4KKwkJPGxpPkEgc2VyaWVzIG9mIGFjdGlvbnMgbWF5IG9jY3VyICgmcXVvdDtQcm92aXNpb25pbmcKKwkJCVByb2Nlc3MmcXVvdDspIGluIHdoaWNoIGEgdXNlciBtYXkgZXhlY3V0ZSB0aGUgUHJvdmlzaW9uaW5nCisJCQlUZWNobm9sb2d5IG9uIGEgbWFjaGluZSAoJnF1b3Q7VGFyZ2V0IE1hY2hpbmUmcXVvdDspIHdpdGggdGhlIGludGVudAorCQkJb2YgaW5zdGFsbGluZywgZXh0ZW5kaW5nIG9yIHVwZGF0aW5nIHRoZSBmdW5jdGlvbmFsaXR5IG9mIGFuCisJCQlFY2xpcHNlLWJhc2VkIHByb2R1Y3QuPC9saT4KKwkJPGxpPkR1cmluZyB0aGUgUHJvdmlzaW9uaW5nIFByb2Nlc3MsIHRoZSBQcm92aXNpb25pbmcgVGVjaG5vbG9neQorCQkJbWF5IGNhdXNlIHRoaXJkIHBhcnR5IEluc3RhbGxhYmxlIFNvZnR3YXJlIG9yIGEgcG9ydGlvbiB0aGVyZW9mIHRvIGJlCisJCQlhY2Nlc3NlZCBhbmQgY29waWVkIHRvIHRoZSBUYXJnZXQgTWFjaGluZS48L2xpPgorCQk8bGk+UHVyc3VhbnQgdG8gdGhlIFNwZWNpZmljYXRpb24sIHlvdSB3aWxsIHByb3ZpZGUgdG8gdGhlIHVzZXIKKwkJCXRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyB0aGF0IGdvdmVybiB0aGUgdXNlIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUgKCZxdW90O0luc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCZxdW90OykgYW5kIHN1Y2gKKwkJCUluc3RhbGxhYmxlIFNvZnR3YXJlIEFncmVlbWVudCBzaGFsbCBiZSBhY2Nlc3NlZCBmcm9tIHRoZSBUYXJnZXQKKwkJCU1hY2hpbmUgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBTcGVjaWZpY2F0aW9uLiBTdWNoIEluc3RhbGxhYmxlCisJCQlTb2Z0d2FyZSBBZ3JlZW1lbnQgbXVzdCBpbmZvcm0gdGhlIHVzZXIgb2YgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zCisJCQl0aGF0IGdvdmVybiB0aGUgSW5zdGFsbGFibGUgU29mdHdhcmUgYW5kIG11c3Qgc29saWNpdCBhY2NlcHRhbmNlIGJ5CisJCQl0aGUgZW5kIHVzZXIgaW4gdGhlIG1hbm5lciBwcmVzY3JpYmVkIGluIHN1Y2ggSW5zdGFsbGFibGUgU29mdHdhcmUKKwkJCUFncmVlbWVudC4gVXBvbiBzdWNoIGluZGljYXRpb24gb2YgYWdyZWVtZW50IGJ5IHRoZSB1c2VyLCB0aGUKKwkJCXByb3Zpc2lvbmluZyBUZWNobm9sb2d5IHdpbGwgY29tcGxldGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBJbnN0YWxsYWJsZQorCQkJU29mdHdhcmUuPC9saT4KKwk8L29sPgogCi08aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KKwk8aDM+Q3J5cHRvZ3JhcGh5PC9oMz4KIAotPHA+Q29udGVudCBtYXkgY29udGFpbiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBUaGUgY291bnRyeSBpbiB3aGljaCB5b3UgYXJlIGN1cnJlbnRseSBtYXkgaGF2ZSByZXN0cmljdGlvbnMgb24gdGhlIGltcG9ydCwgcG9zc2Vzc2lvbiwgYW5kIHVzZSwgYW5kL29yIHJlLWV4cG9ydCB0bwotICAgYW5vdGhlciBjb3VudHJ5LCBvZiBlbmNyeXB0aW9uIHNvZnR3YXJlLiBCRUZPUkUgdXNpbmcgYW55IGVuY3J5cHRpb24gc29mdHdhcmUsIHBsZWFzZSBjaGVjayB0aGUgY291bnRyeSdzIGxhd3MsIHJlZ3VsYXRpb25zIGFuZCBwb2xpY2llcyBjb25jZXJuaW5nIHRoZSBpbXBvcnQsCi0gICBwb3NzZXNzaW9uLCBvciB1c2UsIGFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KKwk8cD5Db250ZW50IG1heSBjb250YWluIGVuY3J5cHRpb24gc29mdHdhcmUuIFRoZSBjb3VudHJ5IGluIHdoaWNoCisJCXlvdSBhcmUgY3VycmVudGx5IG1heSBoYXZlIHJlc3RyaWN0aW9ucyBvbiB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBhbmQKKwkJdXNlLCBhbmQvb3IgcmUtZXhwb3J0IHRvIGFub3RoZXIgY291bnRyeSwgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZS4KKwkJQkVGT1JFIHVzaW5nIGFueSBlbmNyeXB0aW9uIHNvZnR3YXJlLCBwbGVhc2UgY2hlY2sgdGhlIGNvdW50cnkncyBsYXdzLAorCQlyZWd1bGF0aW9ucyBhbmQgcG9saWNpZXMgY29uY2VybmluZyB0aGUgaW1wb3J0LCBwb3NzZXNzaW9uLCBvciB1c2UsCisJCWFuZCByZS1leHBvcnQgb2YgZW5jcnlwdGlvbiBzb2Z0d2FyZSwgdG8gc2VlIGlmIHRoaXMgaXMgcGVybWl0dGVkLjwvcD4KIAotPHA+PHNtYWxsPkphdmEgYW5kIGFsbCBKYXZhLWJhc2VkIHRyYWRlbWFya3MgYXJlIHRyYWRlbWFya3Mgb2YgT3JhY2xlIENvcnBvcmF0aW9uIGluIHRoZSBVbml0ZWQgU3RhdGVzLCBvdGhlciBjb3VudHJpZXMsIG9yIGJvdGguPC9zbWFsbD48L3A+Ci0KLQotPC9ib2R5PjwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCisJPHA+CisJCTxzbWFsbD5KYXZhIGFuZCBhbGwgSmF2YS1iYXNlZCB0cmFkZW1hcmtzIGFyZSB0cmFkZW1hcmtzIG9mCisJCQlPcmFjbGUgQ29ycG9yYXRpb24gaW4gdGhlIFVuaXRlZCBTdGF0ZXMsIG90aGVyIGNvdW50cmllcywgb3IgYm90aC48L3NtYWxsPgorCTwvcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMtZmVhdHVyZS9wb20ueG1sIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL3BvbS54bWwKaW5kZXggMDdmOGExMS4uNjU2ODIyYSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL3BvbS54bWwKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy1mZWF0dXJlL3BvbS54bWwKQEAgLTIsOSArMiw5IEBACiA8IS0tCiAgICAgQ29weXJpZ2h0IChjKSAyMDEyIE9iZW8uCiAgICAgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICAgIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICAgIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAgICBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICAgCiAgICAgQ29udHJpYnV0b3JzOgogICAgICAgICBPYmVvIC0gaW5pdGlhbCBjcmVhdG9yCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvYWJvdXQuaHRtbCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9hYm91dC5odG1sCmluZGV4IGMyNThlZjUuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9hYm91dC5odG1sCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPkp1bmUgNSwgMjAwNjwvcD4JCis8cD5BdWd1c3QgMSwgMjAxOTwvcD4JCiA8aDM+TGljZW5zZTwvaDM+CiAKIDxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIAogaW5kaWNhdGVkIGJlbG93LCB0aGUgQ29udGVudCBpcyBwcm92aWRlZCB0byB5b3UgdW5kZXIgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoZQotRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDEuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKLWF0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMi4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAorYXQgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8iPmh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvPC9hPi4KIEZvciBwdXJwb3NlcyBvZiB0aGUgRVBMLCAmcXVvdDtQcm9ncmFtJnF1b3Q7IHdpbGwgbWVhbiB0aGUgQ29udGVudC48L3A+CiAKIDxwPklmIHlvdSBkaWQgbm90IHJlY2VpdmUgdGhpcyBDb250ZW50IGRpcmVjdGx5IGZyb20gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiwgdGhlIENvbnRlbnQgaXMgCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvYWJvdXQucHJvcGVydGllcyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9hYm91dC5wcm9wZXJ0aWVzCmluZGV4IDUxMmJlYmEuLmI0MDFmODQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9hYm91dC5wcm9wZXJ0aWVzCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9hYm91dC5wcm9wZXJ0aWVzCkBAIC0zLDkgKzMsOSBAQAogIyAgKgogIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNSBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICoKICMgICogQ29udHJpYnV0b3JzOgogIyAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3BsdWdpbi5wcm9wZXJ0aWVzIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3BsdWdpbi5wcm9wZXJ0aWVzCmluZGV4IDc0YzI3MjIuLjU2OTNkYmQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9wbHVnaW4ucHJvcGVydGllcworKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvcGx1Z2luLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTEgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N0YW5kYWxvbmUvVGVzdEVNRlZNU3RhbmRhbG9uZS5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N0YW5kYWxvbmUvVGVzdEVNRlZNU3RhbmRhbG9uZS5qYXZhCmluZGV4IGEwMmQ5NmQuLjE0ZGExNjIgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdGFuZGFsb25lL1Rlc3RFTUZWTVN0YW5kYWxvbmUuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvc3RhbmRhbG9uZS9UZXN0RU1GVk1TdGFuZGFsb25lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDExIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdGFuZGFsb25lL1Rlc3RFTUZWTVN0YW5kYWxvbmUucHJvcGVydGllcyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdGFuZGFsb25lL1Rlc3RFTUZWTVN0YW5kYWxvbmUucHJvcGVydGllcwppbmRleCAyYzEyMDI1Li44ZjI1MjE3IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvc3RhbmRhbG9uZS9UZXN0RU1GVk1TdGFuZGFsb25lLnByb3BlcnRpZXMKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N0YW5kYWxvbmUvVGVzdEVNRlZNU3RhbmRhbG9uZS5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTEgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N0YW5kYWxvbmUvVGVzdFZNU3RhbmRhbG9uZS5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N0YW5kYWxvbmUvVGVzdFZNU3RhbmRhbG9uZS5qYXZhCmluZGV4IGVkNTkwOWMuLjAwOTZkYTEgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdGFuZGFsb25lL1Rlc3RWTVN0YW5kYWxvbmUuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvc3RhbmRhbG9uZS9UZXN0Vk1TdGFuZGFsb25lLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDExIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdGFuZGFsb25lL1Rlc3RWTVN0YW5kYWxvbmUucHJvcGVydGllcyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMuc3RhbmRhbG9uZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdGFuZGFsb25lL1Rlc3RWTVN0YW5kYWxvbmUucHJvcGVydGllcwppbmRleCAyYzEyMDI1Li44ZjI1MjE3IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzLnN0YW5kYWxvbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvc3RhbmRhbG9uZS9UZXN0Vk1TdGFuZGFsb25lLnByb3BlcnRpZXMKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy5zdGFuZGFsb25lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N0YW5kYWxvbmUvVGVzdFZNU3RhbmRhbG9uZS5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTEgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9hYm91dC5odG1sIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9hYm91dC5odG1sCmluZGV4IGMyNThlZjUuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvYWJvdXQuaHRtbAorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL2Fib3V0Lmh0bWwKQEAgLTgsMTMgKzgsMTMgQEAKIDxib2R5IGxhbmc9IkVOLVVTIj4KIDxoMj5BYm91dCBUaGlzIENvbnRlbnQ8L2gyPgogIAotPHA+SnVuZSA1LCAyMDA2PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvYWJvdXQucHJvcGVydGllcyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvYWJvdXQucHJvcGVydGllcwppbmRleCA1MTJiZWJhLi5iNDAxZjg0IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL2Fib3V0LnByb3BlcnRpZXMKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9hYm91dC5wcm9wZXJ0aWVzCkBAIC0zLDkgKzMsOSBAQAogIyAgKgogIyAgKiBDb3B5cmlnaHQgKGMpIDIwMDItMjAwNSBJQk0gQ29ycG9yYXRpb24gYW5kIG90aGVycy4KICMgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gICBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgICoKICMgICogQ29udHJpYnV0b3JzOgogIyAgKiAgIElCTSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9wbHVnaW4ucHJvcGVydGllcyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggNDJjNGRkYi4uZmQzOTNjMyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9wbHVnaW4ucHJvcGVydGllcworKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvcG9tLnhtbCBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvcG9tLnhtbAppbmRleCAwMjQ3ZmVmLi5kMmNhZjJmIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3BvbS54bWwKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9wb20ueG1sCkBAIC0yLDkgKzIsOSBAQAogPCEtLQogICAgIENvcHlyaWdodCAoYykgMjAxMiBPYmVvLgogICAgIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAgICBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAgICB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgICAgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAgIAogICAgIENvbnRyaWJ1dG9yczoKICAgICAgICAgT2JlbyAtIGluaXRpYWwgY3JlYXRvcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9BdGxUZXN0UGx1Z2luLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL0F0bFRlc3RQbHVnaW4uamF2YQppbmRleCBjMTBkYjQ5Li4wOTM1ZGM1IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL0F0bFRlc3RQbHVnaW4uamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL0F0bFRlc3RQbHVnaW4uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdWl0ZS9BbGxUZXN0cy5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy9zdWl0ZS9BbGxUZXN0cy5qYXZhCmluZGV4IDk3NGEwNWQuLmEyZWJkOGQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvc3VpdGUvQWxsVGVzdHMuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3N1aXRlL0FsbFRlc3RzLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9UZXN0Tm9uUmVncmVzc2lvbi5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uLmphdmEKaW5kZXggZTFiMTU2OC4uOWI4Y2RhMyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9UZXN0Tm9uUmVncmVzc2lvbkNvbXBpbGVyLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Db21waWxlci5qYXZhCmluZGV4IDhhYjViMTIuLmRjZWNjM2UgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9UZXN0Tm9uUmVncmVzc2lvbkNvbXBpbGVyLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uQ29tcGlsZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uRm9ybWF0dGVyLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Gb3JtYXR0ZXIuamF2YQppbmRleCBjMTNhN2FiLi44MjdmMWYzIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Gb3JtYXR0ZXIuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Gb3JtYXR0ZXIuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uRm9ybWF0dGVyLnByb3BlcnRpZXMgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Gb3JtYXR0ZXIucHJvcGVydGllcwppbmRleCA2NDJiNmVhLi4zNWMyMTgzIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Gb3JtYXR0ZXIucHJvcGVydGllcworKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25Gb3JtYXR0ZXIucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9UZXN0Tm9uUmVncmVzc2lvblBhcnNlci5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uUGFyc2VyLmphdmEKaW5kZXggMjI1MTljZi4uMzZhY2M5MSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uUGFyc2VyLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uUGFyc2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9UZXN0Tm9uUmVncmVzc2lvblBhcnNlci5wcm9wZXJ0aWVzIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uUGFyc2VyLnByb3BlcnRpZXMKaW5kZXggYjk1YzFiNy4uNzFmNjY3OSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uUGFyc2VyLnByb3BlcnRpZXMKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uUGFyc2VyLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBBVEwgdGVzdGVyCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25UcmFuc2ZvLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvVGVzdE5vblJlZ3Jlc3Npb25UcmFuc2ZvLmphdmEKaW5kZXggYWY2OGI2YS4uZDdjNmQ2NyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L1Rlc3ROb25SZWdyZXNzaW9uVHJhbnNmby5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9UZXN0Tm9uUmVncmVzc2lvblRyYW5zZm8uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uRU1GVFZNLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZUVk0uamF2YQppbmRleCBlMzJmZmI2Li5hMTg4NmRhIDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZUVk0uamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZUVk0uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uRU1GVFZNLnByb3BlcnRpZXMgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZUVk0ucHJvcGVydGllcwppbmRleCAwZTJmMDc4Li43MWQ5NTQ4IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZUVk0ucHJvcGVydGllcworKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZUVk0ucHJvcGVydGllcwpAQCAtMSw5ICsxLDkgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIyBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogIyAKICMgQ29udHJpYnV0b3JzOgogIyAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9hdGx2bS9UZXN0Tm9uUmVncmVzc2lvbkVNRlZNLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZWTS5qYXZhCmluZGV4IGM1ZGE4N2MuLmVkOGI5MmQgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9hdGx2bS9UZXN0Tm9uUmVncmVzc2lvbkVNRlZNLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uRU1GVk0uamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uRU1GVk0ucHJvcGVydGllcyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9hdGx2bS9UZXN0Tm9uUmVncmVzc2lvbkVNRlZNLnByb3BlcnRpZXMKaW5kZXggNDcyZDc2Ni4uZTdmODg3MyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uRU1GVk0ucHJvcGVydGllcworKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25FTUZWTS5wcm9wZXJ0aWVzCkBAIC0xLDkgKzEsOSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwogIyBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAjIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0jIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAjIAogIyBDb250cmlidXRvcnM6CiAjICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uVk0uamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9hdGx2bS9UZXN0Tm9uUmVncmVzc2lvblZNLmphdmEKaW5kZXggZDIzMGU1YS4uNzFkYjZkNSAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uVk0uamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25WTS5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBBVEwgdGVzdGVyCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25WTS5wcm9wZXJ0aWVzIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91bml0L2F0bHZtL1Rlc3ROb25SZWdyZXNzaW9uVk0ucHJvcGVydGllcwppbmRleCBlYzVmM2E2Li5mYzQ3NDA5IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3VuaXQvYXRsdm0vVGVzdE5vblJlZ3Jlc3Npb25WTS5wcm9wZXJ0aWVzCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdW5pdC9hdGx2bS9UZXN0Tm9uUmVncmVzc2lvblZNLnByb3BlcnRpZXMKQEAgLTEsOSArMSw5IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENvcHlyaWdodCAoYykgMjAwNywgMjAxMiBPYmVvLgogIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0jIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMgaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICMgCiAjIENvbnRyaWJ1dG9yczoKICMgICAgIE9iZW8gLSBBVEwgdGVzdGVyCmRpZmYgLS1naXQgYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvRmlsZVV0aWxzLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvRmlsZVV0aWxzLmphdmEKaW5kZXggNGMxYWFhYi4uNjNjY2IxYyAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL0ZpbGVVdGlscy5qYXZhCisrKyBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdXRpbC9GaWxlVXRpbHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL0luaXRQYXJzZXJEYXRhLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvSW5pdFBhcnNlckRhdGEuamF2YQppbmRleCBkNWU2ZTdmLi4xYmEwNjc5IDEwMDY0NAotLS0gYS90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvSW5pdFBhcnNlckRhdGEuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvSW5pdFBhcnNlckRhdGEuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDgsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIGV4dHJhY3RvcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL0xhdW5jaFBhcnNlci5qYXZhIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL0xhdW5jaFBhcnNlci5qYXZhCmluZGV4IGUzNWJiM2UuLmI0M2NkM2YgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdXRpbC9MYXVuY2hQYXJzZXIuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvTGF1bmNoUGFyc2VyLmphdmEKQEAgLTEsOSArMSw5IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogQ29weXJpZ2h0IChjKSAyMDA3LCAyMDEyIE9iZW8uCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICogCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICAgT2JlbyAtIEFUTCB0ZXN0ZXIKZGlmZiAtLWdpdCBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdXRpbC9Nb2RlbFV0aWxzLmphdmEgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvTW9kZWxVdGlscy5qYXZhCmluZGV4IDM2M2YzNTQuLjE4ZWFlMWMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdXRpbC9Nb2RlbFV0aWxzLmphdmEKKysrIGIvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL01vZGVsVXRpbHMuamF2YQpAQCAtMSw5ICsxLDkgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKiBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMTIgT2Jlby4KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKiAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gQVRMIHRlc3RlcgpkaWZmIC0tZ2l0IGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL1dpa2lPdXRwdXR0ZXIuamF2YSBiL3Rlc3RzL29yZy5lY2xpcHNlLm0ybS5hdGwudGVzdHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvdGVzdHMvdXRpbC9XaWtpT3V0cHV0dGVyLmphdmEKaW5kZXggNWFhZWQ4Ni4uMjZmZWVjZiAxMDA2NDQKLS0tIGEvdGVzdHMvb3JnLmVjbGlwc2UubTJtLmF0bC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC90ZXN0cy91dGlsL1dpa2lPdXRwdXR0ZXIuamF2YQorKysgYi90ZXN0cy9vcmcuZWNsaXBzZS5tMm0uYXRsLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Rlc3RzL3V0aWwvV2lraU91dHB1dHRlci5qYXZhCkBAIC0xLDkgKzEsOSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMiBPYmVvLgogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqIAogICogQ29udHJpYnV0b3JzOgogICogICAgIE9iZW8gLSBXaWtpIHV0aWxpdGllcwpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRMLy5naXRpZ25vcmUgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9kc2xzL0FNTC9BVEwvLmdpdGlnbm9yZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44MzAzODRhCi0tLSAvZGV2L251bGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRMLy5naXRpZ25vcmUKQEAgLTAsMCArMSBAQAorKi5hc20KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyQVRMLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyQVRMLmF0bAppbmRleCBlOTQ0ZDkzLi4xN2I3ZDhlIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9kc2xzL0FNTC9BVEwvQU1MMkFUTC5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML0FNTDJBVEwuYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyQW50U2NyaXB0cy5hdGwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9kc2xzL0FNTC9BVEwvQU1MMkFudFNjcmlwdHMuYXRsCmluZGV4IGFiNWU3ZTAuLmQ3YjgwOWIgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyQW50U2NyaXB0cy5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML0FNTDJBbnRTY3JpcHRzLmF0bApAQCAtNCw5ICs0LDkgQEAKIC0tICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKIC0tICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKy0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAtLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0tLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCistLSAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAtLSAqCiAtLSAqIENvbnRyaWJ1dG9yczoKIC0tICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9kc2xzL0FNTC9BVEwvQU1MMlByb3BlcnRpZXNGaWxlLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyUHJvcGVydGllc0ZpbGUuYXRsCmluZGV4IGI2NGRiMGIuLjUwZjgxMTQgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyUHJvcGVydGllc0ZpbGUuYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUwyUHJvcGVydGllc0ZpbGUuYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUxMaWJyYXJ5LmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BTUxMaWJyYXJ5LmF0bAppbmRleCBjYzI0ZDdkLi5mM2MzYjRhIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9kc2xzL0FNTC9BVEwvQU1MTGlicmFyeS5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML0FNTExpYnJhcnkuYXRsCkBAIC0zLDkgKzMsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BbnRTY3JpcHQyWE1MLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9BbnRTY3JpcHQyWE1MLmF0bAppbmRleCBmMWNiOGU5Li42MGZjZDhmIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9kc2xzL0FNTC9BVEwvQW50U2NyaXB0MlhNTC5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML0FudFNjcmlwdDJYTUwuYXRsCkBAIC0zLDkgKzMsOSBAQAogLS0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAtLSBDb3B5cmlnaHQgKGMpIDIwMDcsIDIwMDggSU5SSUEuIAogLS0gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyAKLS0tIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCAKKy0tIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMCAKIC0tIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0tLSBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorLS0gaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tIAogLS0gQ29udHJpYnV0b3JzOiAKIC0tIAlJTlJJQSAtIEluaXRpYWwgaW1wbGVtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL2RzbHMvQU1ML0FUTC9NYXRjaGluZ01ldHJpY3MuYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML01hdGNoaW5nTWV0cmljcy5hdGwKaW5kZXggM2M0NjQwMi4uMjRiNTc3NCAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML01hdGNoaW5nTWV0cmljcy5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvZHNscy9BTUwvQVRML01hdGNoaW5nTWV0cmljcy5hdGwKQEAgLTMsOSArMyw5IEBACiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAtLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLS0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCistLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogLS0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotLS0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorLS0gKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogLS0gKgogLS0gKiBDb250cmlidXRvcnM6CiAtLSAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5hY3Rpb25zL2Fib3V0Lmh0bWwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvYWJvdXQuaHRtbAppbmRleCA4OGY0NjlhLi4wNDRjMGM4IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvYWJvdXQuaHRtbAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyMDA5PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYWN0aW9ucy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYWN0aW9ucy9BbWxBY3Rpb25BY3RpdmF0b3IuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYWN0aW9ucy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYWN0aW9ucy9BbWxBY3Rpb25BY3RpdmF0b3IuamF2YQppbmRleCA4N2YxMzIyLi5kYTUzYmU3IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2FjdGlvbnMvQW1sQWN0aW9uQWN0aXZhdG9yLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5hY3Rpb25zL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9hY3Rpb25zL0FtbEFjdGlvbkFjdGl2YXRvci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYWN0aW9ucy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYWN0aW9ucy9wb3B1cC9hY3Rpb25zL0FjdGlvbkdlbmVyYXRlRW1wdHlFcXVhbE1vZGVsLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2FjdGlvbnMvcG9wdXAvYWN0aW9ucy9BY3Rpb25HZW5lcmF0ZUVtcHR5RXF1YWxNb2RlbC5qYXZhCmluZGV4IDgyMDkwYmMuLjJlYjRiMGUgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYWN0aW9ucy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYWN0aW9ucy9wb3B1cC9hY3Rpb25zL0FjdGlvbkdlbmVyYXRlRW1wdHlFcXVhbE1vZGVsLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5hY3Rpb25zL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9hY3Rpb25zL3BvcHVwL2FjdGlvbnMvQWN0aW9uR2VuZXJhdGVFbXB0eUVxdWFsTW9kZWwuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2FjdGlvbnMvcG9wdXAvYWN0aW9ucy9BY3Rpb25HZW5lcmF0ZVByb3BGaWxlLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmFjdGlvbnMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2FjdGlvbnMvcG9wdXAvYWN0aW9ucy9BY3Rpb25HZW5lcmF0ZVByb3BGaWxlLmphdmEKaW5kZXggMDQ1YzdlZi4uM2ExY2M4MyAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5hY3Rpb25zL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9hY3Rpb25zL3BvcHVwL2FjdGlvbnMvQWN0aW9uR2VuZXJhdGVQcm9wRmlsZS5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYWN0aW9ucy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYWN0aW9ucy9wb3B1cC9hY3Rpb25zL0FjdGlvbkdlbmVyYXRlUHJvcEZpbGUuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmJ1aWxkZXIvYWJvdXQuaHRtbCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9hYm91dC5odG1sCmluZGV4IDg4ZjQ2OWEuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9hYm91dC5odG1sCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9hYm91dC5odG1sCkBAIC04LDEzICs4LDEzIEBACiA8Ym9keSBsYW5nPSJFTi1VUyI+CiA8aDI+QWJvdXQgVGhpcyBDb250ZW50PC9oMj4KICAKLTxwPk5vdmVtYmVyIDIwMDk8L3A+CQorPHA+QXVndXN0IDEsIDIwMTk8L3A+CQogPGgzPkxpY2Vuc2U8L2gzPgogCiA8cD5UaGUgRWNsaXBzZSBGb3VuZGF0aW9uIG1ha2VzIGF2YWlsYWJsZSBhbGwgY29udGVudCBpbiB0aGlzIHBsdWctaW4gKCZxdW90O0NvbnRlbnQmcXVvdDspLiAgVW5sZXNzIG90aGVyd2lzZSAKIGluZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUKLUVjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAxLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCi1hdCA8YSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbCI+aHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWw8L2E+LgorRWNsaXBzZSBQdWJsaWMgTGljZW5zZSBWZXJzaW9uIDIuMCAoJnF1b3Q7RVBMJnF1b3Q7KS4gIEEgY29weSBvZiB0aGUgRVBMIGlzIGF2YWlsYWJsZSAKK2F0IDxhIGhyZWY9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvIj5odHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLzwvYT4uCiBGb3IgcHVycG9zZXMgb2YgdGhlIEVQTCwgJnF1b3Q7UHJvZ3JhbSZxdW90OyB3aWxsIG1lYW4gdGhlIENvbnRlbnQuPC9wPgogCiA8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIApkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FjdGl2YXRvci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FjdGl2YXRvci5qYXZhCmluZGV4IDg3NzlmYzEuLjA4MmZkYzUgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYnVpbGRlci9BY3RpdmF0b3IuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmJ1aWxkZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2J1aWxkZXIvQWN0aXZhdG9yLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FtbEJ1aWxkVmlzaXRvci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FtbEJ1aWxkVmlzaXRvci5qYXZhCmluZGV4IDUyZTU5ZDkuLmRkNTBmYmMgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYnVpbGRlci9BbWxCdWlsZFZpc2l0b3IuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmJ1aWxkZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2J1aWxkZXIvQW1sQnVpbGRWaXNpdG9yLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FtbEJ1aWxkZXIuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYnVpbGRlci9BbWxCdWlsZGVyLmphdmEKaW5kZXggNzg5NzViYy4uMWQxYjM2MCAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FtbEJ1aWxkZXIuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmJ1aWxkZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2J1aWxkZXIvQW1sQnVpbGRlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYnVpbGRlci9BbWxOYXR1cmUuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuYnVpbGRlci9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvYnVpbGRlci9BbWxOYXR1cmUuamF2YQppbmRleCA5NzEyNzlkLi41NTAxMzgxIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmJ1aWxkZXIvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2J1aWxkZXIvQW1sTmF0dXJlLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5idWlsZGVyL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9idWlsZGVyL0FtbE5hdHVyZS5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL2Fib3V0Lmh0bWwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9hYm91dC5odG1sCmluZGV4IDg4ZjQ2OWEuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL2Fib3V0Lmh0bWwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyMDA5PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL21hdGNoL21hdGNoL0FNTDJBbnRTY3JpcHRzVXRpbHMuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL21hdGNoL21hdGNoL0FNTDJBbnRTY3JpcHRzVXRpbHMuamF2YQppbmRleCBkYWEzOGFiLi5jNzljNTlmIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9tYXRjaC9tYXRjaC9BTUwyQW50U2NyaXB0c1V0aWxzLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvbWF0Y2gvbWF0Y2gvQU1MMkFudFNjcmlwdHNVdGlscy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL21hdGNoL21hdGNoL01hdGNoaW5nTWV0cmljc1V0aWxzLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9tYXRjaC9tYXRjaC9NYXRjaGluZ01ldHJpY3NVdGlscy5qYXZhCmluZGV4IGEzNGVjMDYuLjIyMzc0YWIgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL21hdGNoL21hdGNoL01hdGNoaW5nTWV0cmljc1V0aWxzLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvbWF0Y2gvbWF0Y2gvTWF0Y2hpbmdNZXRyaWNzVXRpbHMuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbDIwMDlDb21waWxlci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWwyMDA5Q29tcGlsZXIuamF2YQppbmRleCA2MjMwZTYwLi4yOTc3ZDQ3IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbDIwMDlDb21waWxlci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sMjAwOUNvbXBpbGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxDb21waWxlci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxDb21waWxlci5qYXZhCmluZGV4IGI2MzcwZWYuLjZlNjIyNTkgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sQ29tcGlsZXIuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbENvbXBpbGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxEZWZhdWx0Q29tcGlsZXIuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sRGVmYXVsdENvbXBpbGVyLmphdmEKaW5kZXggYmNlMWRjNC4uNTg2NmVjZSAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxEZWZhdWx0Q29tcGlsZXIuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbERlZmF1bHRDb21waWxlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sRW5naW5lUGx1Z2luLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbEVuZ2luZVBsdWdpbi5qYXZhCmluZGV4IGJjZGRjZDEuLjU2MmFhYjcgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sRW5naW5lUGx1Z2luLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxFbmdpbmVQbHVnaW4uamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbE1vZGVsVXRpbHMuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sTW9kZWxVdGlscy5qYXZhCmluZGV4IDUzYTQ4YzMuLjc0ZGJmMGYgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sTW9kZWxVdGlscy5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sTW9kZWxVdGlscy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sUmVzb3VyY2VNYW5hZ2VyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbFJlc291cmNlTWFuYWdlci5qYXZhCmluZGV4IDE2YmNhYjEuLjQ2NDNjYzkgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sUmVzb3VyY2VNYW5hZ2VyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxSZXNvdXJjZU1hbmFnZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbFN0YW5kYWxvbmVDb21waWxlci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9BbWxTdGFuZGFsb25lQ29tcGlsZXIuamF2YQppbmRleCA4OGUxNmRjLi45MGU5MjFmIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL0FtbFN0YW5kYWxvbmVDb21waWxlci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvQW1sU3RhbmRhbG9uZUNvbXBpbGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9TZW1hbnRpY1Byb2JsZW1FeGNlcHRpb24uamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9lbmdpbmUvU2VtYW50aWNQcm9ibGVtRXhjZXB0aW9uLmphdmEKaW5kZXggZWZhOTBkNy4uOGYxY2EzNyAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL2VuZ2luZS9TZW1hbnRpY1Byb2JsZW1FeGNlcHRpb24uamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvZW5naW5lL1NlbWFudGljUHJvYmxlbUV4Y2VwdGlvbi5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC9zcGxpdC9FTUZTcGxpdHRlci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3NwbGl0L0VNRlNwbGl0dGVyLmphdmEKaW5kZXggNmEyNWFiYS4uNzg5NjViNSAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3NwbGl0L0VNRlNwbGl0dGVyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3NwbGl0L0VNRlNwbGl0dGVyLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3NwbGl0L1NwbGl0dGVyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvc3BsaXQvU3BsaXR0ZXIuamF2YQppbmRleCA5ZDhjODkzLi43NzAwNWQ4IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvc3BsaXQvU3BsaXR0ZXIuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvc3BsaXQvU3BsaXR0ZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdGNzL2luamVjdG9yL2FtbC9BTUxfQU5UTFIzTGV4ZXIuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvYW1sL0FNTF9BTlRMUjNMZXhlci5qYXZhCmluZGV4IGRkMjdmYWYuLmEyOTE1MDIgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvYW1sL0FNTF9BTlRMUjNMZXhlci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvYW1sL0FNTF9BTlRMUjNMZXhlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvYW1sL0FNTF9BTlRMUjNQYXJzZXIuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvYW1sL0FNTF9BTlRMUjNQYXJzZXIuamF2YQppbmRleCBmNjc0Zjg0Li5iMWUyZmE1IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdGNzL2luamVjdG9yL2FtbC9BTUxfQU5UTFIzUGFyc2VyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3Rjcy9pbmplY3Rvci9hbWwvQU1MX0FOVExSM1BhcnNlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvcHJvcGVydGllcy9Qcm9wZXJ0aWVzX0FOVExSM0xleGVyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdGNzL2luamVjdG9yL3Byb3BlcnRpZXMvUHJvcGVydGllc19BTlRMUjNMZXhlci5qYXZhCmluZGV4IGRhMjUwZDAuLjg0Zjc3NDggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvcHJvcGVydGllcy9Qcm9wZXJ0aWVzX0FOVExSM0xleGVyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3Rjcy9pbmplY3Rvci9wcm9wZXJ0aWVzL1Byb3BlcnRpZXNfQU5UTFIzTGV4ZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdGNzL2luamVjdG9yL3Byb3BlcnRpZXMvUHJvcGVydGllc19BTlRMUjNQYXJzZXIuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvcHJvcGVydGllcy9Qcm9wZXJ0aWVzX0FOVExSM1BhcnNlci5qYXZhCmluZGV4IDI4YjdlMGUuLjE0ZTI5MTggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvcHJvcGVydGllcy9Qcm9wZXJ0aWVzX0FOVExSM1BhcnNlci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvcHJvcGVydGllcy9Qcm9wZXJ0aWVzX0FOVExSM1BhcnNlci5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vcmVzZWFyY2gvYW1sL3Rjcy9pbmplY3Rvci9Nb2RpZmllZEVNRlRDU0luamVjdG9yLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLmVuZ2luZS9zcmMvb3JnL2VjbGlwc2UvbTJtL3Jlc2VhcmNoL2FtbC90Y3MvaW5qZWN0b3IvTW9kaWZpZWRFTUZUQ1NJbmplY3Rvci5qYXZhCmluZGV4IGZjY2Y3OGYuLmE3MDI4NDMgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwuZW5naW5lL3NyYy9vcmcvZWNsaXBzZS9tMm0vcmVzZWFyY2gvYW1sL3Rjcy9pbmplY3Rvci9Nb2RpZmllZEVNRlRDU0luamVjdG9yLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC5lbmdpbmUvc3JjL29yZy9lY2xpcHNlL20ybS9yZXNlYXJjaC9hbWwvdGNzL2luamVjdG9yL01vZGlmaWVkRU1GVENTSW5qZWN0b3IuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBJTlJJQSwgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBHdWlsbGF1bWUgRG91eCAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL2Fib3V0Lmh0bWwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL2Fib3V0Lmh0bWwKaW5kZXggODhmNDY5YS4uMDQ0YzBjOCAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9hYm91dC5odG1sCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyMDA5PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0FtbEFjdGl2YXRvci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvQW1sQWN0aXZhdG9yLmphdmEKaW5kZXggN2M4YmE1Ni4uMWVjNWYzMyAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvQW1sQWN0aXZhdG9yLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvQW1sQWN0aXZhdG9yLmphdmEKQEAgLTIsOSArMiw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvQW1sVUlFeGNlcHRpb24uamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0FtbFVJRXhjZXB0aW9uLmphdmEKaW5kZXggZjNkYTAwZC4uOTE2NzJmMiAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvQW1sVUlFeGNlcHRpb24uamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC91dGlscy9BbWxVSUV4Y2VwdGlvbi5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0FtbFVJUmVzb3VyY2VNYW5hZ2VyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC91dGlscy9BbWxVSVJlc291cmNlTWFuYWdlci5qYXZhCmluZGV4IDk2ZTBjNjUuLmNkM2U4ZDggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0FtbFVJUmVzb3VyY2VNYW5hZ2VyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvQW1sVUlSZXNvdXJjZU1hbmFnZXIuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC91dGlscy9FcXVhbE1vZGVsVXRpbHMuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0VxdWFsTW9kZWxVdGlscy5qYXZhCmluZGV4IDU3YTQxYjEuLjJkYTU3NWIgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0VxdWFsTW9kZWxVdGlscy5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL0VxdWFsTW9kZWxVdGlscy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL01vZGVsVXRpbHMuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL01vZGVsVXRpbHMuamF2YQppbmRleCBmMmViYTc3Li4wMzhhOTAwIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC91dGlscy9Nb2RlbFV0aWxzLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvTW9kZWxVdGlscy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL1Jlc291cmNlVXRpbHMuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwudXRpbHMvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3V0aWxzL1Jlc291cmNlVXRpbHMuamF2YQppbmRleCBmMzViZTFjLi45MjE5ODhlIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLnV0aWxzL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC91dGlscy9SZXNvdXJjZVV0aWxzLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC51dGlscy9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvdXRpbHMvUmVzb3VyY2VVdGlscy5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL2Fib3V0Lmh0bWwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLndpemFyZC9hYm91dC5odG1sCmluZGV4IDg4ZjQ2OWEuLjA0NGMwYzggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL2Fib3V0Lmh0bWwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC53aXphcmQvYWJvdXQuaHRtbApAQCAtOCwxMyArOCwxMyBAQAogPGJvZHkgbGFuZz0iRU4tVVMiPgogPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+CiAgCi08cD5Ob3ZlbWJlciAyMDA5PC9wPgkKKzxwPkF1Z3VzdCAxLCAyMDE5PC9wPgkKIDxoMz5MaWNlbnNlPC9oMz4KIAogPHA+VGhlIEVjbGlwc2UgRm91bmRhdGlvbiBtYWtlcyBhdmFpbGFibGUgYWxsIGNvbnRlbnQgaW4gdGhpcyBwbHVnLWluICgmcXVvdDtDb250ZW50JnF1b3Q7KS4gIFVubGVzcyBvdGhlcndpc2UgCiBpbmRpY2F0ZWQgYmVsb3csIHRoZSBDb250ZW50IGlzIHByb3ZpZGVkIHRvIHlvdSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCi1FY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIAotYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwiPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sPC9hPi4KK0VjbGlwc2UgUHVibGljIExpY2Vuc2UgVmVyc2lvbiAyLjAgKCZxdW90O0VQTCZxdW90OykuICBBIGNvcHkgb2YgdGhlIEVQTCBpcyBhdmFpbGFibGUgCithdCA8YSBocmVmPSJodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLyI+aHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC88L2E+LgogRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4KIAogPHA+SWYgeW91IGRpZCBub3QgcmVjZWl2ZSB0aGlzIENvbnRlbnQgZGlyZWN0bHkgZnJvbSB0aGUgRWNsaXBzZSBGb3VuZGF0aW9uLCB0aGUgQ29udGVudCBpcyAKZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQWN0aXZhdG9yLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLndpemFyZC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvd2l6YXJkL0FjdGl2YXRvci5qYXZhCmluZGV4IDkyYWE5NzEuLjhlZDk0MzkgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQWN0aXZhdG9yLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC53aXphcmQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3dpemFyZC9BY3RpdmF0b3IuamF2YQpAQCAtMiw5ICsyLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLndpemFyZC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvd2l6YXJkL0FtbFByb2plY3RXaXphcmQuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQW1sUHJvamVjdFdpemFyZC5qYXZhCmluZGV4IGE5MzI1MzYuLjQ1M2RjNGQgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQW1sUHJvamVjdFdpemFyZC5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQW1sUHJvamVjdFdpemFyZC5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQW1sUHJvamVjdFdpemFyZFBhZ2UuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3BsdWdpbnMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwud2l6YXJkL3NyYy9vcmcvZWNsaXBzZS9tMm0vYXRsL3Jlc2VhcmNoL2FtbC93aXphcmQvQW1sUHJvamVjdFdpemFyZFBhZ2UuamF2YQppbmRleCBjYTU0NDc0Li41YjdiN2FhIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9wbHVnaW5zL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sLndpemFyZC9zcmMvb3JnL2VjbGlwc2UvbTJtL2F0bC9yZXNlYXJjaC9hbWwvd2l6YXJkL0FtbFByb2plY3RXaXphcmRQYWdlLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcGx1Z2lucy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC53aXphcmQvc3JjL29yZy9lY2xpcHNlL20ybS9hdGwvcmVzZWFyY2gvYW1sL3dpemFyZC9BbWxQcm9qZWN0V2l6YXJkUGFnZS5qYXZhCkBAIC0yLDkgKzIsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsLy5naXRpZ25vcmUgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMDM4NGEKLS0tIC9kZXYvbnVsbAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKyouYXNtCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9Db25jZXB0dWFsTGluay5hdGwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9Db25jZXB0dWFsTGluay5hdGwKaW5kZXggYmUwZWVjYi4uM2I1MjEzZCAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9FY29yZU1ldGFtZXRhbW9kZWwvQ29uY2VwdHVhbExpbmsuYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL0NvbmNlcHR1YWxMaW5rLmF0bApAQCAtNCw5ICs0LDkgQEAKIC0tICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKIC0tICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKy0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAtLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0tLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCistLSAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAtLSAqCiAtLSAqIENvbnRyaWJ1dG9yczoKIC0tICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9EaWZmZXJlbnRpYXRpb24uYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9FY29yZU1ldGFtZXRhbW9kZWwvRGlmZmVyZW50aWF0aW9uLmF0bAppbmRleCA5ZDI0NDliLi43YWIwY2RhIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9EaWZmZXJlbnRpYXRpb24uYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL0RpZmZlcmVudGlhdGlvbi5hdGwKQEAgLTQsOSArNCw5IEBACiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAtLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLS0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCistLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogLS0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotLS0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorLS0gKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogLS0gKgogLS0gKiBDb250cmlidXRvcnM6CiAtLSAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9FY29yZU1ldGFtZXRhbW9kZWwvRmxhdHRlbkZlYXR1cmVzLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL0ZsYXR0ZW5GZWF0dXJlcy5hdGwKaW5kZXggNGQ3MTkzYy4uMWUwOGQ0MSAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9FY29yZU1ldGFtZXRhbW9kZWwvRmxhdHRlbkZlYXR1cmVzLmF0bAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9GbGF0dGVuRmVhdHVyZXMuYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1Byb3BhZ2F0aW9uLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1Byb3BhZ2F0aW9uLmF0bAppbmRleCBkZTMzNWJhLi4yZDU4YjI5IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9Qcm9wYWdhdGlvbi5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9FY29yZU1ldGFtZXRhbW9kZWwvUHJvcGFnYXRpb24uYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1Jld3JpdGluZy5hdGwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9SZXdyaXRpbmcuYXRsCmluZGV4IGQxZWRiZTcuLmM1OWNmZTcgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1Jld3JpdGluZy5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9FY29yZU1ldGFtZXRhbW9kZWwvUmV3cml0aW5nLmF0bApAQCAtNCw5ICs0LDkgQEAKIC0tICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKIC0tICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKy0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAtLSAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0tLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCistLSAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAtLSAqCiAtLSAqIENvbnRyaWJ1dG9yczoKIC0tICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0Vjb3JlTWV0YW1ldGFtb2RlbC9UeXBlRGlmZmVyZW50aWF0aW9uLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1R5cGVEaWZmZXJlbnRpYXRpb24uYXRsCmluZGV4IGU5M2JhZTIuLmZkOGE3MjAgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1R5cGVEaWZmZXJlbnRpYXRpb24uYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvRWNvcmVNZXRhbWV0YW1vZGVsL1R5cGVEaWZmZXJlbnRpYXRpb24uYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSE9ULy5naXRpZ25vcmUgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hPVC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgzMDM4NGEKLS0tIC9kZXYvbnVsbAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hPVC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKyouYXNtCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hPVC9IT1RfQ29uY2VwdHVhbExpbmsuYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IT1QvSE9UX0NvbmNlcHR1YWxMaW5rLmF0bAppbmRleCBkMTc3N2FkLi44ZWFjZGQwIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hPVC9IT1RfQ29uY2VwdHVhbExpbmsuYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSE9UL0hPVF9Db25jZXB0dWFsTGluay5hdGwKQEAgLTQsOSArNCw5IEBACiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAtLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLS0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCistLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogLS0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotLS0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorLS0gKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogLS0gKgogLS0gKiBDb250cmlidXRvcnM6CiAtLSAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IT1QvSE9UX21hdGNoLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSE9UL0hPVF9tYXRjaC5hdGwKaW5kZXggMjkyOWM2NC4uZTU5OThlZCAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IT1QvSE9UX21hdGNoLmF0bAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hPVC9IT1RfbWF0Y2guYXRsCkBAIC0zLDkgKzMsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy8uZ2l0aWdub3JlIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IZWxwZXJzLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMwMzg0YQotLS0gL2Rldi9udWxsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKyouYXNtCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hlbHBlcnMvRWNvcmVNZXRhbWV0YW1vZGVsLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9FY29yZU1ldGFtZXRhbW9kZWwuYXRsCmluZGV4IGZlNTk4M2UuLjcwMDUyMWUgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9FY29yZU1ldGFtZXRhbW9kZWwuYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9FY29yZU1ldGFtZXRhbW9kZWwuYXRsCkBAIC0zLDkgKzMsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9FcXVhbE1NLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9FcXVhbE1NLmF0bAppbmRleCBkMzBkMmY3Li5mNzRkOWRhIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hlbHBlcnMvRXF1YWxNTS5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IZWxwZXJzL0VxdWFsTU0uYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9LTTNNZXRhbWV0YW1vZGVsLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9LTTNNZXRhbWV0YW1vZGVsLmF0bAppbmRleCBkNjFjZmUxLi45NTJjYzU1IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hlbHBlcnMvS00zTWV0YW1ldGFtb2RlbC5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IZWxwZXJzL0tNM01ldGFtZXRhbW9kZWwuYXRsCkBAIC0zLDkgKzMsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9NZXRhbWV0YW1vZGVsLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9NZXRhbWV0YW1vZGVsLmF0bAppbmRleCA2MTAwMmQ5Li5jN2Q0OGU1IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hlbHBlcnMvTWV0YW1ldGFtb2RlbC5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IZWxwZXJzL01ldGFtZXRhbW9kZWwuYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9TdHJpbmdzLmF0bCBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvSGVscGVycy9TdHJpbmdzLmF0bAppbmRleCAwNDljYzJjLi42ZmRhZTc2IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0hlbHBlcnMvU3RyaW5ncy5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9IZWxwZXJzL1N0cmluZ3MuYXRsCkBAIC00LDkgKzQsOSBAQAogLS0gKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC8uZ2l0aWdub3JlIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODMwMzg0YQotLS0gL2Rldi9udWxsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC8uZ2l0aWdub3JlCkBAIC0wLDAgKzEgQEAKKyouYXNtCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvQ29uY2VwdHVhbExpbmsuYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0NvbmNlcHR1YWxMaW5rLmF0bAppbmRleCBiM2U3YWZmLi5hYzAyYjg5IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvQ29uY2VwdHVhbExpbmsuYXRsCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC9Db25jZXB0dWFsTGluay5hdGwKQEAgLTIsOSArMiw5IEBACiAtLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC9EaWZmZXJlbnRpYXRpb24uYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0RpZmZlcmVudGlhdGlvbi5hdGwKaW5kZXggYmI1OGQ3MS4uYzk4MjZmNSAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0RpZmZlcmVudGlhdGlvbi5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0RpZmZlcmVudGlhdGlvbi5hdGwKQEAgLTIsOSArMiw5IEBACiAtLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC9GbGF0dGVuRmVhdHVyZXMuYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0ZsYXR0ZW5GZWF0dXJlcy5hdGwKaW5kZXggMjA3YzEwYS4uZDVmN2RiNiAxMDA2NDQKLS0tIGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0ZsYXR0ZW5GZWF0dXJlcy5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL0ZsYXR0ZW5GZWF0dXJlcy5hdGwKQEAgLTIsOSArMiw5IEBACiAtLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC9Qcm9wYWdhdGlvbi5hdGwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvUHJvcGFnYXRpb24uYXRsCmluZGV4IDA5NTM4MjcuLjZiODBiMjAgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC9Qcm9wYWdhdGlvbi5hdGwKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL1Byb3BhZ2F0aW9uLmF0bApAQCAtMiw5ICsyLDkgQEAKIC0tLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIC0tICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAtLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLS0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCistLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogLS0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotLS0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorLS0gKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogLS0gKgogLS0gKiBDb250cmlidXRvcnM6CiAtLSAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL1Jld3JpdGluZy5hdGwgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvUmV3cml0aW5nLmF0bAppbmRleCBmM2M1ZmM2Li5lMjgwZjYxIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvUmV3cml0aW5nLmF0bAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvUmV3cml0aW5nLmF0bApAQCAtMiw5ICsyLDkgQEAKIC0tLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIC0tICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAtLSAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLS0tICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCistLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogLS0gKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotLS0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorLS0gKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogLS0gKgogLS0gKiBDb250cmlidXRvcnM6CiAtLSAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL1R5cGVEaWZmZXJlbnRpYXRpb24uYXRsIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L0FUTC9LTTNNZXRhbWV0YW1vZGVsL1R5cGVEaWZmZXJlbnRpYXRpb24uYXRsCmluZGV4IGQ3MDBkNGEuLjI4NzBhOTYgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9BVEwvS00zTWV0YW1ldGFtb2RlbC9UeXBlRGlmZmVyZW50aWF0aW9uLmF0bAorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvQVRML0tNM01ldGFtZXRhbW9kZWwvVHlwZURpZmZlcmVudGlhdGlvbi5hdGwKQEAgLTIsOSArMiw5IEBACiAtLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAtLSAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogLS0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0tLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorLS0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKIC0tICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLS0tICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKy0tICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KIC0tICoKIC0tICogQ29udHJpYnV0b3JzOgogLS0gKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvQW13TW9kZWxIYW5kbGVyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL0Ftd01vZGVsSGFuZGxlci5qYXZhCmluZGV4IDJlMjQ2YTMuLjEyYjQ0YzggMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvQW13TW9kZWxIYW5kbGVyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9BbXdNb2RlbEhhbmRsZXIuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL0Rpc3RyYWN0b3JGaWx0ZXIuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvRGlzdHJhY3RvckZpbHRlci5qYXZhCmluZGV4IDQxZWRiMTEuLjk1Nzg1Y2EgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvRGlzdHJhY3RvckZpbHRlci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvRGlzdHJhY3RvckZpbHRlci5qYXZhCkBAIC0zLDkgKzMsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvSFRUUFJlcXVlc3QuamF2YSBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvSFRUUFJlcXVlc3QuamF2YQppbmRleCAzYjdjMzMzLi5mNmUyODlhIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL0hUVFBSZXF1ZXN0LmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9IVFRQUmVxdWVzdC5qYXZhCkBAIC0zLDkgKzMsOSBAQAogICogQ29weXJpZ2h0IChjKSAyMDA5IEVjb2xlIGRlcyBNaW5lcyBkZSBOYW50ZXMuCiAKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKLSAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2Mi4wCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAotICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIGh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC0yLjAvCiAgKgogICogQ29udHJpYnV0b3JzOgogICogICAgS2VsbHkgR2FyY2VzIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uIGFuZC9vciBpbml0aWFsIGRvY3VtZW50YXRpb24KZGlmZiAtLWdpdCBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvSHlwaGVuVG9rZW5pemVyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL0h5cGhlblRva2VuaXplci5qYXZhCmluZGV4IGVlZDY4NTkuLjg2NDQyNWMgMTAwNjQ0Ci0tLSBhL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvSHlwaGVuVG9rZW5pemVyLmphdmEKKysrIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9IeXBoZW5Ub2tlbml6ZXIuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL01TUi5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9NU1IuamF2YQppbmRleCAzODhmNDE4Li5iYzcxODQzIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL01TUi5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvTVNSLmphdmEKQEAgLTMsOSArMyw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9NU1JTaW1pbGFyaXR5LmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL01TUlNpbWlsYXJpdHkuamF2YQppbmRleCA2NWY3MmM2Li44YTc0MmVkIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL01TUlNpbWlsYXJpdHkuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL01TUlNpbWlsYXJpdHkuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1N5bWJvbFRva2VuaXplci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9TeW1ib2xUb2tlbml6ZXIuamF2YQppbmRleCBhNmNhNTk2Li5hMzEzZWJlIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1N5bWJvbFRva2VuaXplci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvU3ltYm9sVG9rZW5pemVyLmphdmEKQEAgLTMsOSArMyw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9UZXJtUHJvY2Vzc29yLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1Rlcm1Qcm9jZXNzb3IuamF2YQppbmRleCA0YzgzNjNlLi5mOTllODc0IDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1Rlcm1Qcm9jZXNzb3IuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1Rlcm1Qcm9jZXNzb3IuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1Rva2VuaXplci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9Ub2tlbml6ZXIuamF2YQppbmRleCAxYjgwODQ3Li5iZTNlZjJhIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1Rva2VuaXplci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvVG9rZW5pemVyLmphdmEKQEAgLTMsOSArMyw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9VbmRlclNjb3JlVG9rZW5pemVyLmphdmEgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1VuZGVyU2NvcmVUb2tlbml6ZXIuamF2YQppbmRleCBiZjcxMTFiLi42ZWI1M2RkIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1VuZGVyU2NvcmVUb2tlbml6ZXIuamF2YQorKysgYi91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1VuZGVyU2NvcmVUb2tlbml6ZXIuamF2YQpAQCAtMyw5ICszLDkgQEAKICAqIENvcHlyaWdodCAoYykgMjAwOSBFY29sZSBkZXMgTWluZXMgZGUgTmFudGVzLgogCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCi0gKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjIuMAogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKLSAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisgKiBodHRwczovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtMi4wLwogICoKICAqIENvbnRyaWJ1dG9yczoKICAqICAgIEtlbGx5IEdhcmNlcyAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbiBhbmQvb3IgaW5pdGlhbCBkb2N1bWVudGF0aW9uCmRpZmYgLS1naXQgYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1VwcGVyQ2FzZVRva2VuaXplci5qYXZhIGIvdXNlY2FzZXMvb3JnLmVjbGlwc2UubTJtLmF0bC5yZXNlYXJjaC5hbWwvcnVudGltZS9BTUxMaWJyYXJ5L3NyYy9tYXRjaC9VcHBlckNhc2VUb2tlbml6ZXIuamF2YQppbmRleCA1Y2M0NGJjLi5mYTA5NGFmIDEwMDY0NAotLS0gYS91c2VjYXNlcy9vcmcuZWNsaXBzZS5tMm0uYXRsLnJlc2VhcmNoLmFtbC9ydW50aW1lL0FNTExpYnJhcnkvc3JjL21hdGNoL1VwcGVyQ2FzZVRva2VuaXplci5qYXZhCisrKyBiL3VzZWNhc2VzL29yZy5lY2xpcHNlLm0ybS5hdGwucmVzZWFyY2guYW1sL3J1bnRpbWUvQU1MTGlicmFyeS9zcmMvbWF0Y2gvVXBwZXJDYXNlVG9rZW5pemVyLmphdmEKQEAgLTMsOSArMyw5IEBACiAgKiBDb3B5cmlnaHQgKGMpIDIwMDkgRWNvbGUgZGVzIE1pbmVzIGRlIE5hbnRlcy4KIAogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscwotICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYyLjAKICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0Ci0gKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogaHR0cHM6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLTIuMC8KICAqCiAgKiBDb250cmlidXRvcnM6CiAgKiAgICBLZWxseSBHYXJjZXMgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24gYW5kL29yIGluaXRpYWwgZG9jdW1lbnRhdGlvbgo=