ZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmluZGV4IDY2MzRmNzkuLjA1ZGRjNzAgMTAwNjQ0Ci0tLSBhLy5naXRpZ25vcmUKKysrIGIvLmdpdGlnbm9yZQpAQCAtMSwxNyArMSwyMSBAQAotLyoqL19fdGFyZ2V0X18vDQotLyovYmluLw0KLS8qL3BvbS54bWwNCi0vKi9wb20ueG1sLioNCi0vKi9wb20ueG1sLmNvbmZpZ3VyZS1xdWFsaXR5LXBvbXMuYmFrDQotLyouZG9jL21lZGlhd2lraS8qLmh0bWwNCi0vKi5kb2MvbWVkaWF3aWtpLyoueG1sDQotLyouZG9jL3RvYy5odG1sDQotLyouZG9jLmFyY2hpL21lZGlhd2lraS8qLmh0bWwNCi0vKi5kb2MuYXJjaGkvbWVkaWF3aWtpLyoueG1sDQotLyoudGVzdHMvc2NyZWVuc2hvdHMvDQotLyouZWNsaXBzZXBhY2thZ2UvcG9tX3VwZGF0ZWRfbW9kdWxlcy54bWwNCi0vKi50YXJnZXRwbGF0Zm9ybS9wb20udG1wLnhtbA0KLS8qLnVwZGF0ZXNpdGUvY2F0ZWdvcnkueG1sDQotLyoudXBkYXRlc2l0ZS9wb21fYWZ0ZXJfdXBkYXRlc2l0ZS54bWwNCi0vKi51cGRhdGVzaXRlL3BvbWEueG1sDQotDQorLyoqL19fdGFyZ2V0X18vCisvKi5kb2MuYXJjaGkvbWVkaWF3aWtpLyouaHRtbAorLyouZG9jLmFyY2hpL21lZGlhd2lraS8qLnhtbAorLyouZG9jL21lZGlhd2lraS8qKi8qLmh0bWwKKy8qLmRvYy9tZWRpYXdpa2kvKiovKi54bWwKKy8qLmRvYy9tZWRpYXdpa2kvKi5odG1sCisvKi5kb2MvbWVkaWF3aWtpLyoueG1sCisvKi5kb2MvdG9jLmh0bWwKKy8qLmVjbGlwc2VwYWNrYWdlL3BvbV91cGRhdGVkX21vZHVsZXMueG1sCisvKi50YXJnZXRwbGF0Zm9ybS9wb20udG1wLnhtbAorLyoudGVzdHMvc2NyZWVuc2hvdHMvCisvKi51cGRhdGVzaXRlL2NhdGVnb3J5LnhtbAorLyoudXBkYXRlc2l0ZS9wb21fYWZ0ZXJfdXBkYXRlc2l0ZS54bWwKKy8qLnVwZGF0ZXNpdGUvcG9tYS54bWwKKy8qL2Jpbi8KKy8qL3BvbS54bWwKKy8qL3BvbS54bWwuKgorLyovcG9tLnhtbC5jb25maWd1cmUtcXVhbGl0eS1wb21zLmJhaworLypzb3VyY2UuZmVhdHVyZQorL3BvbS54bWwqCisvcG9tX2FmdGVyX2NvbmZpZ3VyZS54bWwKZGlmZiAtLWdpdCBhLy5wcm9qZWN0IGIvLnByb2plY3QKaW5kZXggYTlkMGFkMy4uZDJlZWRhMiAxMDA2NDQKLS0tIGEvLnByb2plY3QKKysrIGIvLnByb2plY3QKQEAgLTQsNCArNCw4IEBACiAJPGNvbW1lbnQ+PC9jb21tZW50Pg0KIAk8cHJvamVjdHM+DQogCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJPC9uYXR1cmVzPg0KIDwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL0NPTlRSSUJVVElORyBiL0NPTlRSSUJVVElORwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40ODZiZTJhCi0tLSAvZGV2L251bGwKKysrIGIvQ09OVFJJQlVUSU5HCkBAIC0wLDAgKzEsNTQgQEAKK0NvbnRyaWJ1dGluZyB0byBNb0Rpc2NvDQorPT09PT09PT09PT09PT09PT09PT09PT0NCisNCitUaGFua3MgZm9yIHlvdXIgaW50ZXJlc3QgaW4gdGhpcyBwcm9qZWN0Lg0KKw0KK1Byb2plY3QgZGVzY3JpcHRpb246DQorLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCitNb0Rpc2NvIHByb3ZpZGVzIGFuIGV4dGVuc2libGUgZnJhbWV3b3JrIHRvIGVsYWJvcmF0ZSBvbiBtb2RlbC1kcml2ZW4gc29sdXRpb25zIHN1cHBvcnRpbmcgc29mdHdhcmUgcmV2ZXJzZSBlbmdpbmVlcmluZyBhbmQgbW9kZXJuaXphdGlvbiB1c2UgY2FzZXMgc3VjaCBhcyB0ZWNobmljYWwgbWlncmF0aW9uLCBzb2Z0d2FyZSBpbXByb3ZlbWVudCwgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uLCBxdWFsaXR5IGluc3VyYW5jZSwgZXRjLg0KKw0KK0xlZ2FjeSBzeXN0ZW1zIGVtYnJhY2UgYSBsYXJnZSBudW1iZXIgb2YgdGVjaG5vbG9naWVzLCBtYWtpbmcgdGhlIGRldmVsb3BtZW50IG9mIHRvb2xzIHRvIGNvcGUgd2l0aCBsZWdhY3kgc3lzdGVtcyBldm9sdXRpb24gYSB0ZWRpb3VzIGFuZCB0aW1lIGNvbnN1bWluZyB0YXNrLiBBcyBtb2Rlcm5pemF0aW9uIHByb2plY3RzIGZhY2Ugd2l0aCBib3RoIHRlY2hub2xvZ2llcyBjb21iaW5hdGlvbiBhbmQgdmFyaW91cyBtb2Rlcm5pemF0aW9uIHNpdHVhdGlvbnMsIG1vZGVsLWRyaXZlbiBhcHByb2FjaGVzIGFuZCB0b29scyBvZmZlciB0aGUgcmVxdWlzaXRlIGFic3RyYWN0aW9uIGxldmVsIHRvIGJ1aWxkIHVwIG1hdHVyZSBhbmQgZmxleGlibGUgbW9kZXJuaXphdGlvbiBzb2x1dGlvbnMuDQorIC0gUXVhbGl0eSBBc3N1cmFuY2U6IHZlcmlmeWluZyB3aGV0aGVyIGFuIGV4aXN0aW5nIHN5c3RlbSBtZWV0cyB0aGUgcmVxdWlyZWQgcXVhbGl0aWVzIChkZXRlY3Rpb24gb2YgYW50aS1wYXR0ZXJucyBpbiBleGlzdGluZyBjb2RlIGFuZCBjb21wdXRhdGlvbiBvZiBtZXRyaWNzLikNCisgLSBEb2N1bWVudGF0aW9uOiBleHRyYWN0aW9uIG9mIGluZm9ybWF0aW9uIGZyb20gYW4gZXhpc3Rpbmcgc3lzdGVtIHRvIGhlbHAgdW5kZXJzdGFuZGluZyBvbmUgYXNwZWN0IG9mIHRoaXMgc3lzdGVtIChzdHJ1Y3R1cmUsIGJlaGF2aW91ciwgcGVyc2lzdGVuY2UsIGRhdGEtZmxvdywgY2hhbmdlIGltcGFjdCAsIGV0YykuDQorIC0gSW1wcm92ZW1lbnQ6IHRyYW5zZm9ybWF0aW9uIG9mIGFuIGV4aXN0aW5nIHN5c3RlbSB0byBpbnRlZ3JhdGUgYmV0dGVyIGNvZGluZyBub3JtcyBvciBkZXNpZ24gcGF0dGVybnMuDQorIC0gTWlncmF0aW9uOiB0cmFuc2Zvcm1hdGlvbiBvZiBhbiBleGlzdGluZyBzeXN0ZW0gdG8gY2hhbmdlIGEgY29tcG9uZW50LCB0aGUgZnJhbWV3b3JrLCB0aGUgbGFuZ3VhZ2UsIG9yIGl0cyBhcmNoaXRlY3R1cmUgbW9yZSBhYm91dCBNb0Rpc2NvDQorDQorLSBodHRwczovL3Byb2plY3RzLmVjbGlwc2Uub3JnL3Byb2plY3RzL21vZGVsaW5nLm1kdC5tb2Rpc2NvDQorDQorRGV2ZWxvcGVyIHJlc291cmNlczoNCistLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKw0KK0luZm9ybWF0aW9uIHJlZ2FyZGluZyBzb3VyY2UgY29kZSBtYW5hZ2VtZW50LCBidWlsZHMsIGNvZGluZyBzdGFuZGFyZHMsIGFuZCBtb3JlLg0KKw0KKy0gaHR0cHM6Ly9wcm9qZWN0cy5lY2xpcHNlLm9yZy9wcm9qZWN0cy9tb2RlbGluZy5tZHQubW9kaXNjby9kZXZlbG9wZXINCistIGh0dHBzOi8vd2lraS5lY2xpcHNlLm9yZy9Nb0Rpc2NvI0dldHRpbmdfaW52b2x2ZWQNCisNCitDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudDoNCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisNCitCZWZvcmUgeW91ciBjb250cmlidXRpb24gY2FuIGJlIGFjY2VwdGVkIGJ5IHRoZSBwcm9qZWN0LCB5b3UgbmVlZCB0byBjcmVhdGUgYW5kIGVsZWN0cm9uaWNhbGx5IHNpZ24gdGhlIEVjbGlwc2UgRm91bmRhdGlvbiBDb250cmlidXRvciBMaWNlbnNlIEFncmVlbWVudCAoQ0xBKS4NCisNCistIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvQ0xBLnBocA0KKw0KK0NvbnRhY3Q6DQorLS0tLS0tLS0NCisNCitDb250YWN0IHRoZSBwcm9qZWN0IGRldmVsb3BlcnMgdmlhIHRoZSBwcm9qZWN0J3MgImRldiIgbGlzdC4NCisNCistIGh0dHBzOi8vZGV2LmVjbGlwc2Uub3JnL21haWxtYW4vbGlzdGluZm8vbWR0LmRldg0KKw0KK1NlYXJjaCBmb3IgYnVnczoNCistLS0tLS0tLS0tLS0tLS0tDQorDQorVGhpcyBwcm9qZWN0IHVzZXMgQnVnemlsbGEgdG8gdHJhY2sgb25nb2luZyBkZXZlbG9wbWVudCBhbmQgaXNzdWVzLg0KKw0KKy0gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3MvYnVnbGlzdC5jZ2k/cHJvZHVjdD1NRFQuTW9EaXNjbw0KKw0KK0NyZWF0ZSBhIG5ldyBidWc6DQorLS0tLS0tLS0tLS0tLS0tLS0NCisNCitCZSBzdXJlIHRvIHNlYXJjaCBmb3IgZXhpc3RpbmcgYnVncyBiZWZvcmUgeW91IGNyZWF0ZSBhbm90aGVyIG9uZS4gUmVtZW1iZXIgdGhhdCBjb250cmlidXRpb25zIGFyZSBhbHdheXMgd2VsY29tZSENCisNCistIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL2VudGVyX2J1Zy5jZ2k/cHJvZHVjdD1NRFQuTW9EaXNjbw0KKw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmV4YW1wbGVzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggODNmMTg0ZS4uYmIzZjlhYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNSArMiw1IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5leGFtcGxlcwotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmV4YW1wbGVzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggM2MwNDZkOS4uM2U1ZGZkZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5leGFtcGxlcy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xMCw0ICsxMCw0IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEV4YW1wbGVzIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBFeGFtcGxlcyAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZjQ1OWQ5ZS4uNmFlOGI2MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggMmNkNDc1OC4uZmI1NTFjMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTAsNiArMTAsNiBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEN1c3RvbWl6YXRpb25zIENvcmUgKEluY3ViYXRpb24pDQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEN1c3RvbWl6YXRpb25zIENvcmUgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIGV4dGVuc2lvbi5uYW1lID0gQ3VzdG9taXphdGlvbnNCdWlsZGVyDQotZXh0ZW5zaW9uLXBvaW50Lm5hbWUgPSBCcm93c2VyIGN1c3RvbWl6YXRpb24gcmVnaXN0cmF0aW9uClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZXh0ZW5zaW9uLXBvaW50Lm5hbWUgPSBCcm93c2VyIGN1c3RvbWl6YXRpb24gcmVnaXN0cmF0aW9uIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0FjdGl2YXRvci5qYXZhCmluZGV4IGE3NzQyMGMuLjY3ODlhY2MgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9BY3RpdmF0b3IuamF2YQpAQCAtMTksNyArMTksMTAgQEAKIA0KIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25Qcm90b2NvbEV4dC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9DdXN0b21pemF0aW9uUHJvdG9jb2xFeHQuamF2YQppbmRleCA5MzU0MjhlLi4yZDFmYzg5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25Qcm90b2NvbEV4dC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvQ3VzdG9taXphdGlvblByb3RvY29sRXh0LmphdmEKQEAgLTEzLDYgKzEzLDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUuaW50ZXJuYWwucHJvdG9jb2wuSU1vZGlzY29Qcm90b2NvbEV4dGVuc2lvbjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ3VzdG9taXphdGlvblByb3RvY29sRXh0IGltcGxlbWVudHMgSU1vZGlzY29Qcm90b2NvbEV4dGVuc2lvbiB7DQogDQogCXB1YmxpYyBTdHJpbmcgZ2V0U2NoZW1lU3BlY2lmaWNQYXJ0KCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvQ3VzdG9taXphdGlvbnNCdWlsZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25zQnVpbGRlci5qYXZhCmluZGV4IGFhY2RmODEuLjAyNTk0MTIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvQ3VzdG9taXphdGlvbnNCdWlsZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9DdXN0b21pemF0aW9uc0J1aWxkZXIuamF2YQpAQCAtMTcsNyArMTcsMTAgQEAKIC8qKg0KICAqIEEgYnVpbGRlciB0aGF0IGZlZWRzIGFuZCB1cGRhdGVzIHRoZSB7QGxpbmsgQ3VzdG9taXphdGlvbnNDYXRhbG9nfSB3aXRoIHRoZQ0KICAqIGN1c3RvbWl6YXRpb24gZmlsZXMgaXQgZmluZHMNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ3VzdG9taXphdGlvbnNCdWlsZGVyIGV4dGVuZHMgTW9EaXNjb0NhdGFsb2dCdWlsZGVyIHsNCiANCiAJcHJvdGVjdGVkIHN0YXRpYyBmaW5hbCBTdHJpbmcgRklMRV9FWFRFTlNJT04gPSAidWlDdXN0b20iOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9DdXN0b21pemF0aW9uc0NhdGFsb2cuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvQ3VzdG9taXphdGlvbnNDYXRhbG9nLmphdmEKaW5kZXggMDEzOGFlNC4uNDRkODU0NyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9DdXN0b21pemF0aW9uc0NhdGFsb2cuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25zQ2F0YWxvZy5qYXZhCkBAIC00OCw3ICs0OCwxMCBAQAogICogPGNvZGU+b3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20ucmVnaXN0cmF0aW9uPC9jb2RlPi4gSXQgaXMNCiAgKiB1cGRhdGVkIGJ5IHRoZSB7QGxpbmsgQ3VzdG9taXphdGlvbnNCdWlsZGVyfSwgd2hpY2ggaXMgcmVzcG9uc2libGUgZm9yIGFkZGluZw0KICAqIGFuZCByZW1vdmluZyBjdXN0b21pemF0aW9uIGZpbGVzIGluIHJlc3BvbnNlIHRvIGNoYW5nZXMgaW4gdGhlIFdvcmtzcGFjZS4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ3VzdG9taXphdGlvbnNDYXRhbG9nIGV4dGVuZHMgQWJzdHJhY3RNb0Rpc2NvQ2F0YWxvZyB7DQogDQogCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9FWFRFTlNJT05fUE9JTlRfSUQgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS5yZWdpc3RyYXRpb24iOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9DdXN0b21pemF0aW9uc1JlZ2lzdHJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25zUmVnaXN0cnkuamF2YQppbmRleCA4YWQ5ZTYxLi40OGRkNjA5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25zUmVnaXN0cnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL0N1c3RvbWl6YXRpb25zUmVnaXN0cnkuamF2YQpAQCAtMTQsNiArMTQsMTEgQEAKIGltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0Ow0KIGltcG9ydCBqYXZhLnV0aWwuTGlzdDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgQ3VzdG9taXphdGlvbnNSZWdpc3RyeSB7DQogDQogCQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2NvcmUvTWVzc2FnZXMuamF2YQppbmRleCAxNTYxMGE2Li41YTNhNDRiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9jb3JlL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vY29yZS9NZXNzYWdlcy5qYXZhCkBAIC0xMiw2ICsxMiwxMSBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmNvcmUubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkDQogCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEN1c3RvbWl6YXRpb25zQnVpbGRlcl9jdXN0b21pemF0aW9uOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmVkaXRvci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmVkaXRvci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA1MTcyNGRiLi5mODRhMWRmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lZGl0b3IvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZWRpdG9yL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZWRpdG9yO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lZGl0b3IuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZWRpdG9yL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lZGl0b3IvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCAwODE3ZWIyLi5hNzU2MDliIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lZGl0b3IvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lZGl0b3IvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTAsNSArMTAsNSBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmVkaXRvcg0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gQnJvd3NlciBDdXN0b21pemF0aW9uIEVkaXRvciAoSW5jdWJhdGlvbikNCi1lZGl0b3IubmFtZSA9IEJyb3dzZXIgQ3VzdG9taXphdGlvbiBFZGl0b3IKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gQnJvd3NlciBDdXN0b21pemF0aW9uIEVkaXRvciAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pDQorZWRpdG9yLm5hbWUgPSBCcm93c2VyIEN1c3RvbWl6YXRpb24gRWRpdG9yIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmphdmEuamRrL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMmI3OGE0Ny4uZDk3N2M4OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkaztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLVZlbmRvcjogCiAgJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmphdmEuamRrL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggMWYwOGNiOC4uNmZiZTU5YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkay9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xLDUgKzEsNSBAQAogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEpESyBjdXN0b21pemF0aW9uIGV4YW1wbGUgKEluY3ViYXRpb24pDQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEpESyBjdXN0b21pemF0aW9uIGV4YW1wbGUgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIHdpemFyZC5uYW1lID0gSkRLIEphdmEgQnJvd3NlciBDdXN0b21pemF0aW9uIEV4YW1wbGUNCiBjYXRlZ29yeS5uYW1lID0gTW9EaXNjbyBFeGFtcGxlcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBkYjRmODFjLi5kMjM4MWMzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy51bWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAKICAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy51bWwvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDVkMmNlYTYuLmI4NmE3NjYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0yLDQgKzIsNCBAQAogd2l6YXJkLm5hbWUgPSBVTUwgQnJvd3NlciBDdXN0b21pemF0aW9uIEV4YW1wbGUNCiBjYXRlZ29yeS5uYW1lID0gTW9EaXNjbyBFeGFtcGxlcw0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gVU1MIEJyb3dzZXIgQ3VzdG9taXphdGlvbiBFeGFtcGxlIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBVTUwgQnJvd3NlciBDdXN0b21pemF0aW9uIEV4YW1wbGUgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnVpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggODYyZWU0Ni4uMWYyYzNlMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnVpL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggZmJiODQ5Zi4uZWY3NWZlZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xMCw3ICsxMCw3IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEJyb3dzZXIgQ3VzdG9taXphdGlvbiBVSSBwbHVnLWluIChJbmN1YmF0aW9uKQ0KK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBCcm93c2VyIEN1c3RvbWl6YXRpb24gVUkgcGx1Zy1pbiAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pDQogbW9kaXNjby5jYXRlZ29yeS5uYW1lID0gTW9EaXNjbw0KLWN1c3RvbWl6YXRpb25zLnZpZXcubmFtZSA9IEN1c3RvbWl6YXRpb25zDQotbmV3Q3VzdG9taXphdGlvbi53aXphcmQubmFtZSA9IEJyb3dzZXIgQ3VzdG9taXphdGlvbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2N1c3RvbWl6YXRpb25zLnZpZXcubmFtZSA9IEN1c3RvbWl6YXRpb25zIChEZXByZWNhdGVkKQ0KK25ld0N1c3RvbWl6YXRpb24ud2l6YXJkLm5hbWUgPSBCcm93c2VyIEN1c3RvbWl6YXRpb24gKERlcHJlY2F0ZWQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3VpL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3VpL0FjdGl2YXRvci5qYXZhCmluZGV4IDk4ZjU4NzQuLmFmZWJjOTMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS91aS9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdWkvQWN0aXZhdG9yLmphdmEKQEAgLTE5LDcgKzE5LDEwIEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3VpL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdWkvTWVzc2FnZXMuamF2YQppbmRleCA3YThkZmQwLi44MjUyMDNhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdWkvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdWkvTWVzc2FnZXMuamF2YQpAQCAtMTIsNiArMTIsMTEgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgQ3VzdG9taXphdGlvbnNWaWV3X2FsbFF1ZXJ5U2V0czsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdWkvY29udHJvbHMvUXVlcnlTZXRzU2VsZWN0aW9uQ29udHJvbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3VpL2NvbnRyb2xzL1F1ZXJ5U2V0c1NlbGVjdGlvbkNvbnRyb2wuamF2YQppbmRleCAzYWVlOWNkLi41YmExYWM1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdWkvY29udHJvbHMvUXVlcnlTZXRzU2VsZWN0aW9uQ29udHJvbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS91aS9jb250cm9scy9RdWVyeVNldHNTZWxlY3Rpb25Db250cm9sLmphdmEKQEAgLTM1LDcgKzM1LDEyIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29tcG9zaXRlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5MYWJlbDsNCiANCi0vKiogQSBjb250cm9sIHRvIHNlbGVjdCB3aGljaCBxdWVyeSBzZXRzIG11c3QgYmUgaW1wb3J0ZWQuICovDQorLyoqDQorICogQSBjb250cm9sIHRvIHNlbGVjdCB3aGljaCBxdWVyeSBzZXRzIG11c3QgYmUgaW1wb3J0ZWQuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5U2V0c1NlbGVjdGlvbkNvbnRyb2wgZXh0ZW5kcyBDb21wb3NpdGUgew0KIA0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ09NQk9fQUxMID0gTWVzc2FnZXMuUXVlcnlTZXRzU2VsZWN0aW9uQ29udHJvbF9hbGxFeGlzdGluZ1F1ZXJ5U2V0czsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGM5NzU4MjMuLjJkN2YzNWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbTtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vcGx1Z2luLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9wbHVnaW4ucHJvcGVydGllcwppbmRleCBhYTNkZjhiLi5hODkwZTdhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9wbHVnaW4ucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9wbHVnaW4ucHJvcGVydGllcwpAQCAtOCwxMSArOCwxMSBAQAogIyBDb250cmlidXRvcnM6DQogIyAgICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLXBsdWdpbk5hbWUgPSBNb0Rpc2NvIFVpQ3VzdG9tIE1vZGVsDQorcGx1Z2luTmFtZSA9IE1vRGlzY28gVWlDdXN0b20gTW9kZWwgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZSA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIA0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gQnJvd3NlciBjdXN0b21pemF0aW9uIG1ldGFtb2RlbCAoSW5jdWJhdGlvbikNCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gQnJvd3NlciBjdXN0b21pemF0aW9uIG1ldGFtb2RlbCAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pDQogY29udHJhaW50cy5jYXRlZ29yeS5uYW1lID0gTW9EaXNjbyBNb2RlbCBCcm93c2VyIEN1c3RvbWl6YXRpb25zIENvbnN0cmFpbnRzDQogY29uc3RyYWludC5uYW1lID0gTm9uLUVtcHR5IE5hbWVzDQogY29uc3RyYWludC5kZXNjcmlwdGlvbiA9IFRoZSBpdGVtIG11c3QgYmUgbmFtZWQuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0F0dHJpYnV0ZVZpZXcuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9BdHRyaWJ1dGVWaWV3LmphdmEKaW5kZXggMDdkNWM3YS4uM2VkOGNkNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0F0dHJpYnV0ZVZpZXcuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vQXR0cmlidXRlVmlldy5qYXZhCkBAIC0zMCw3ICszMCwxMCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lbWYuVWljdXN0b21QYWNrYWdlI2dldEF0dHJpYnV0ZVZpZXcoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEF0dHJpYnV0ZVZpZXcgZXh0ZW5kcyBDdXN0b21WaWV3IHsNCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkF0dHJpYnV0ZSBOYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0N1c3RvbVZpZXcuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9DdXN0b21WaWV3LmphdmEKaW5kZXggMjdhYWFlYi4uYzU5N2I2YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0N1c3RvbVZpZXcuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vQ3VzdG9tVmlldy5qYXZhCkBAIC0zMSw3ICszMSwxMCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lbWYuVWljdXN0b21QYWNrYWdlI2dldEN1c3RvbVZpZXcoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBDdXN0b21WaWV3IGV4dGVuZHMgRU9iamVjdCB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5DdXN0b21pemVkIEZlYXR1cmVzPC9iPjwvZW0+JyBjb250YWlubWVudCByZWZlcmVuY2UgbGlzdC4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vQ3VzdG9tVmlld0ZlYXR1cmUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9DdXN0b21WaWV3RmVhdHVyZS5qYXZhCmluZGV4IGM2MWE1MjYuLmNlZTg3YTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9DdXN0b21WaWV3RmVhdHVyZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9DdXN0b21WaWV3RmVhdHVyZS5qYXZhCkBAIC0zNCw3ICszNCwxMCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lbWYuVWljdXN0b21QYWNrYWdlI2dldEN1c3RvbVZpZXdGZWF0dXJlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBDdXN0b21WaWV3RmVhdHVyZSBleHRlbmRzIEVPYmplY3Qgew0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+Q3VzdG9taXplZCBGZWF0dXJlPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0N1c3RvbWl6YWJsZUZlYXR1cmVzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vQ3VzdG9taXphYmxlRmVhdHVyZXMuamF2YQppbmRleCBjNWE1ZTE0Li41NmM4ZGNkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vQ3VzdG9taXphYmxlRmVhdHVyZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vQ3VzdG9taXphYmxlRmVhdHVyZXMuamF2YQpAQCAtMjcsNyArMjcsMTAgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZW1mLlVpY3VzdG9tUGFja2FnZSNnZXRDdXN0b21pemFibGVGZWF0dXJlcygpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIEBTdXBwcmVzc1dhcm5pbmdzKCJhbGwiKQ0KIHB1YmxpYyBlbnVtIEN1c3RvbWl6YWJsZUZlYXR1cmVzIGltcGxlbWVudHMgRW51bWVyYXRvciB7DQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9EZXJpdmVkRmVhdHVyZVZhbHVlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vRGVyaXZlZEZlYXR1cmVWYWx1ZS5qYXZhCmluZGV4IDBmM2RkNzQuLjA5MzhiYTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9EZXJpdmVkRmVhdHVyZVZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0Rlcml2ZWRGZWF0dXJlVmFsdWUuamF2YQpAQCAtMzEsNyArMzEsMTAgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZW1mLlVpY3VzdG9tUGFja2FnZSNnZXREZXJpdmVkRmVhdHVyZVZhbHVlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBEZXJpdmVkRmVhdHVyZVZhbHVlIGV4dGVuZHMgRmVhdHVyZVZhbHVlIHsNCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPlZhbHVlIENhbGN1bGF0b3I8L2I+PC9lbT4nIHJlZmVyZW5jZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vRmVhdHVyZVZhbHVlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vRmVhdHVyZVZhbHVlLmphdmEKaW5kZXggZWQwYjE3YS4uNGJjMDQ4NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0ZlYXR1cmVWYWx1ZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9GZWF0dXJlVmFsdWUuamF2YQpAQCAtMzEsNyArMzEsMTAgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZW1mLlVpY3VzdG9tUGFja2FnZSNnZXRGZWF0dXJlVmFsdWUoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBGZWF0dXJlVmFsdWUgZXh0ZW5kcyBFT2JqZWN0IHsNCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkZlYXR1cmU8L2I+PC9lbT4nIGNvbnRhaW5lciByZWZlcmVuY2UuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0ZlYXR1cmVWYWx1ZUNhc2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9GZWF0dXJlVmFsdWVDYXNlLmphdmEKaW5kZXggODU0Mzk0ZC4uNGFjMTY5MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL0ZlYXR1cmVWYWx1ZUNhc2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vRmVhdHVyZVZhbHVlQ2FzZS5qYXZhCkBAIC0zMyw3ICszMywxMCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lbWYuVWljdXN0b21QYWNrYWdlI2dldEZlYXR1cmVWYWx1ZUNhc2UoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZlYXR1cmVWYWx1ZUNhc2UgZXh0ZW5kcyBFT2JqZWN0IHsNCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkNvbmRpdGlvbjwvYj48L2VtPicgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9NZXRhbW9kZWxWaWV3LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vTWV0YW1vZGVsVmlldy5qYXZhCmluZGV4IDJkOTRmMDQuLjdlZmNlMjggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9NZXRhbW9kZWxWaWV3LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL01ldGFtb2RlbFZpZXcuamF2YQpAQCAtMzUsNyArMzUsMTAgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZW1mLlVpY3VzdG9tUGFja2FnZSNnZXRNZXRhbW9kZWxWaWV3KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNZXRhbW9kZWxWaWV3IGV4dGVuZHMgRU9iamVjdCB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuIDwhLS0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vUmVmZXJlbmNlVmlldy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL1JlZmVyZW5jZVZpZXcuamF2YQppbmRleCBmNTJkN2RjLi5lODA2MmE5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vUmVmZXJlbmNlVmlldy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9SZWZlcmVuY2VWaWV3LmphdmEKQEAgLTMwLDcgKzMwLDEwIEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmVtZi5VaWN1c3RvbVBhY2thZ2UjZ2V0UmVmZXJlbmNlVmlldygpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgUmVmZXJlbmNlVmlldyBleHRlbmRzIEN1c3RvbVZpZXcgew0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+UmVmZXJlbmNlIE5hbWU8L2I+PC9lbT4nIGF0dHJpYnV0ZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vU3RhdGljRmVhdHVyZVZhbHVlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vU3RhdGljRmVhdHVyZVZhbHVlLmphdmEKaW5kZXggNjYwMDhjMC4uNzZiYTMwMCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL1N0YXRpY0ZlYXR1cmVWYWx1ZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9TdGF0aWNGZWF0dXJlVmFsdWUuamF2YQpAQCAtMjksNyArMjksMTAgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZW1mLlVpY3VzdG9tUGFja2FnZSNnZXRTdGF0aWNGZWF0dXJlVmFsdWUoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFN0YXRpY0ZlYXR1cmVWYWx1ZSBleHRlbmRzIEZlYXR1cmVWYWx1ZSB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5WYWx1ZTwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9UeXBlVmlldy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL1R5cGVWaWV3LmphdmEKaW5kZXggYWI2N2ViYS4uM2Y2YjhhOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL1R5cGVWaWV3LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL1R5cGVWaWV3LmphdmEKQEAgLTM0LDcgKzM0LDEwIEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmVtZi5VaWN1c3RvbVBhY2thZ2UjZ2V0VHlwZVZpZXcoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFR5cGVWaWV3IGV4dGVuZHMgQ3VzdG9tVmlldyB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5NZXRhY2xhc3MgTmFtZTwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvVWljdXN0b21GYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZW1mL1VpY3VzdG9tRmFjdG9yeS5qYXZhCmluZGV4IGJmNWIzZDUuLjNmMjEyN2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvVWljdXN0b21GYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2VtZi9VaWN1c3RvbUZhY3RvcnkuamF2YQpAQCAtMzAsNyArMzAsMTAgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZW1mLlVpY3VzdG9tUGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFVpY3VzdG9tRmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsNCiAJLyoqDQogCSAqIFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGZhY3RvcnkuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2VtZi9VaWN1c3RvbVBhY2thZ2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvVWljdXN0b21QYWNrYWdlLmphdmEKaW5kZXggM2E3YzhkYi4uZDcxNTYzZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2VtZi9VaWN1c3RvbVBhY2thZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZW1mL1VpY3VzdG9tUGFja2FnZS5qYXZhCkBAIC0zMyw3ICszMywxMCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lbWYuVWljdXN0b21GYWN0b3J5DQogICogQG1vZGVsIGtpbmQ9InBhY2thZ2UiDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIEBTdXBwcmVzc1dhcm5pbmdzKCJhbGwiKQ0KIHB1YmxpYyBpbnRlcmZhY2UgVWljdXN0b21QYWNrYWdlIGV4dGVuZHMgRVBhY2thZ2Ugew0KIAkvKioNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZW1mL3V0aWwvVWljdXN0b21BZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2VtZi91dGlsL1VpY3VzdG9tQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCA3ODE4NmVjLi4yNzJhNjRlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZW1mL3V0aWwvVWljdXN0b21BZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvdXRpbC9VaWN1c3RvbUFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTI3LDcgKzI3LDEwIEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmVtZi5VaWN1c3RvbVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogQFN1cHByZXNzV2FybmluZ3MoImFsbCIpDQogcHVibGljIGNsYXNzIFVpY3VzdG9tQWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBZGFwdGVyRmFjdG9yeUltcGwgew0KIAkvKioNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZW1mL3V0aWwvVWljdXN0b21Td2l0Y2guamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvdXRpbC9VaWN1c3RvbVN3aXRjaC5qYXZhCmluZGV4IDNhNWE0NjkuLjVlNzRiNGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvdXRpbC9VaWN1c3RvbVN3aXRjaC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9lbWYvdXRpbC9VaWN1c3RvbVN3aXRjaC5qYXZhCkBAIC0zMiw3ICszMiwxMCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5lbWYuVWljdXN0b21QYWNrYWdlDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIEBTdXBwcmVzc1dhcm5pbmdzKCJhbGwiKQ0KIHB1YmxpYyBjbGFzcyBVaWN1c3RvbVN3aXRjaDxUPiB7DQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS91dGlsL092ZXJsYXlJY29uSW5mby5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3V0aWwvT3ZlcmxheUljb25JbmZvLmphdmEKaW5kZXggYWYyMzNhNC4uZTM4MzBjOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3V0aWwvT3ZlcmxheUljb25JbmZvLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3V0aWwvT3ZlcmxheUljb25JbmZvLmphdmEKQEAgLTEwLDYgKzEwLDExIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnV0aWw7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE92ZXJsYXlJY29uSW5mbyB7DQogCXByaXZhdGUgZmluYWwgT3ZlcmxheUljb25Qb3NpdGlvbiBpY29uUG9zaXRpb247DQogCXByaXZhdGUgZmluYWwgU3RyaW5nIHBhdGg7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3V0aWwvT3ZlcmxheUljb25Qb3NpdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3V0aWwvT3ZlcmxheUljb25Qb3NpdGlvbi5qYXZhCmluZGV4IDcyMWU0YmYuLjNiYjk2MGUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS91dGlsL092ZXJsYXlJY29uUG9zaXRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdXRpbC9PdmVybGF5SWNvblBvc2l0aW9uLmphdmEKQEAgLTEwLDYgKzEwLDExIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnV0aWw7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGVudW0gT3ZlcmxheUljb25Qb3NpdGlvbiB7DQogCVRvcExlZnQsIFRvcE1pZGRsZSwgVG9wUmlnaHQsIEJvdHRvbUxlZnQsIEJvdHRvbU1pZGRsZSwgQm90dG9tUmlnaHQNCiB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3V0aWwvVWljdXN0b21VdGlsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdXRpbC9VaWN1c3RvbVV0aWwuamF2YQppbmRleCA3YzE1ZDFlLi45ODExZGNmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdXRpbC9VaWN1c3RvbVV0aWwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdXRpbC9VaWN1c3RvbVV0aWwuamF2YQpAQCAtMTksNiArMTksMTEgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5GZWF0dXJlVmFsdWVDYXNlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuUkdCOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBVaWN1c3RvbVV0aWwgew0KIA0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgTUFYX0NPTE9SX0lOVEVOU0lUWSA9IDI1NTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdmFsaWRhdGlvbi9FVmFsaWRhdG9yQWRhcHRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3ZhbGlkYXRpb24vRVZhbGlkYXRvckFkYXB0ZXIuamF2YQppbmRleCBjNDIzNWVhLi41MWNiOTkyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdmFsaWRhdGlvbi9FVmFsaWRhdG9yQWRhcHRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS92YWxpZGF0aW9uL0VWYWxpZGF0b3JBZGFwdGVyLmphdmEKQEAgLTI4LDcgKzI4LDEwIEBACiAvKioNCiAgKiBBbiBhZGFwdGVyIHRoYXQgcGx1Z3MgdGhlIEVNRiBNb2RlbCBWYWxpZGF0aW9uIFNlcnZpY2UgQVBJIGludG8gdGhlDQogICoge0BsaW5rIG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FVmFsaWRhdG9yfSBBUEkuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEVWYWxpZGF0b3JBZGFwdGVyIGV4dGVuZHMgRU9iamVjdFZhbGlkYXRvciB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS92YWxpZGF0aW9uL1ZhbGlkYXRpb25EZWxlZ2F0ZUNsaWVudFNlbGVjdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdmFsaWRhdGlvbi9WYWxpZGF0aW9uRGVsZWdhdGVDbGllbnRTZWxlY3Rvci5qYXZhCmluZGV4IDc0OTBmY2QuLmQxM2E3ZmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS92YWxpZGF0aW9uL1ZhbGlkYXRpb25EZWxlZ2F0ZUNsaWVudFNlbGVjdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3ZhbGlkYXRpb24vVmFsaWRhdGlvbkRlbGVnYXRlQ2xpZW50U2VsZWN0b3IuamF2YQpAQCAtMTIsNiArMTIsMTEgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbi5tb2RlbC5JQ2xpZW50U2VsZWN0b3I7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFZhbGlkYXRpb25EZWxlZ2F0ZUNsaWVudFNlbGVjdG9yIGltcGxlbWVudHMgSUNsaWVudFNlbGVjdG9yIHsNCiAJcHVibGljIGJvb2xlYW4gc2VsZWN0cyhmaW5hbCBPYmplY3Qgb2JqZWN0KSB7DQogCQlyZXR1cm4gdHJ1ZTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOTJmMjBjZi4uNzkwODIwZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggZjcxYmI4NS4uZmY3NzU0NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEsNCArMSw0IEBACiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gQnJvd3NlciBDTkYgRXhhbXBsZSAoSW5jdWJhdGlvbikNCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gQnJvd3NlciBDTkYgRXhhbXBsZSAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLW5hdmlnYXRvckNvbnRlbnQubmFtZSA9IE1vZGVsIENvbnRlbnRzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorbmF2aWdhdG9yQ29udGVudC5uYW1lID0gTW9kZWwgQ29udGVudHMgKERlcHJlY2F0ZWQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9BY3RpdmF0b3IuamF2YQppbmRleCA4ZGZhMDdlLi5mNTgzYThmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9BY3RpdmF0b3IuamF2YQpAQCAtMjIsNyArMjIsMTAgQEAKIA0KIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvTGlua0hlbHBlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvTGlua0hlbHBlci5qYXZhCmluZGV4IDQyODlhNTAuLmQyZTg4YzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXhhbXBsZXMvY25mL0xpbmtIZWxwZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9MaW5rSGVscGVyLmphdmEKQEAgLTMwLDYgKzMwLDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UudWkuSVdvcmtiZW5jaFBhZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLm5hdmlnYXRvci5JTGlua0hlbHBlcjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIExpbmtIZWxwZXIgaW1wbGVtZW50cyBJTGlua0hlbHBlciB7DQogDQogCXB1YmxpYyBJU3RydWN0dXJlZFNlbGVjdGlvbiBmaW5kU2VsZWN0aW9uKGZpbmFsIElFZGl0b3JJbnB1dCBhbklucHV0KSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvTW9EaXNjb0NvbnRlbnRQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvTW9EaXNjb0NvbnRlbnRQcm92aWRlci5qYXZhCmluZGV4IGVhNmM4ZmEuLmEyOTQ4M2MgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXhhbXBsZXMvY25mL01vRGlzY29Db250ZW50UHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9Nb0Rpc2NvQ29udGVudFByb3ZpZGVyLmphdmEKQEAgLTE4LDYgKzE4LDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UudWkuUGxhdGZvcm1VSTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UudWkubmF2aWdhdG9yLnJlc291cmNlcy5Qcm9qZWN0RXhwbG9yZXI7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb0Rpc2NvQ29udGVudFByb3ZpZGVyIGV4dGVuZHMgQ3VzdG9taXphYmxlTW9kZWxDb250ZW50UHJvdmlkZXIgew0KIA0KIAlwdWJsaWMgTW9EaXNjb0NvbnRlbnRQcm92aWRlcigpIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9Nb0Rpc2NvTGFiZWxQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvTW9EaXNjb0xhYmVsUHJvdmlkZXIuamF2YQppbmRleCBlYjc0ZmY5Li41MTM5NmRlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9Nb0Rpc2NvTGFiZWxQcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXhhbXBsZXMvY25mL01vRGlzY29MYWJlbFByb3ZpZGVyLmphdmEKQEAgLTEyLDYgKzEyLDExIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuQ3VzdG9taXphYmxlTW9kZWxMYWJlbFByb3ZpZGVyOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9EaXNjb0xhYmVsUHJvdmlkZXIgZXh0ZW5kcyBDdXN0b21pemFibGVNb2RlbExhYmVsUHJvdmlkZXIgew0KIAlwdWJsaWMgTW9EaXNjb0xhYmVsUHJvdmlkZXIoKSB7DQogCQlzdXBlcihBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpLmdldEN1c3RvbWl6YXRpb25NYW5hZ2VyKCkpOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXhhbXBsZXMvY25mL2FjdGlvbnMvT3BlbkFjdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvYWN0aW9ucy9PcGVuQWN0aW9uLmphdmEKaW5kZXggOTkxNzI5Ni4uZGI1NzQ3ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvYWN0aW9ucy9PcGVuQWN0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvYWN0aW9ucy9PcGVuQWN0aW9uLmphdmEKQEAgLTEsNSArMSw1IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMCBNaWEtU29mdHdhcmUuDQorICogQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCkBAIC03LDYgKzcsNyBAQAogICoNCiAgKiBDb250cmlidXRvcnM6DQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3MjIwMyAtIE51bGxQb2ludGVyRXhjZXB0aW9uIGluIFJlc291cmNlRWRpdG9ySW5wdXQuZ2V0TmFtZSAoNDEpDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYuYWN0aW9uczsNCiANCkBAIC0yNyw2ICsyOCwxMSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLlBhcnRJbml0RXhjZXB0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS51aS5pZGUuSURFOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgT3BlbkFjdGlvbiBleHRlbmRzIEFjdGlvbiB7DQogDQogCXByaXZhdGUgZmluYWwgSVdvcmtiZW5jaFBhZ2UgcGFnZTsNCkBAIC02MSw3ICs2Nyw3IEBACiAJCQkJT2JqZWN0IGZpcnN0RWxlbWVudCA9IHNTZWxlY3Rpb24uZ2V0Rmlyc3RFbGVtZW50KCk7DQogCQkJCUVPYmplY3QgZU9iamVjdCA9IChFT2JqZWN0KSBQbGF0Zm9ybS5nZXRBZGFwdGVyTWFuYWdlcigpLmdldEFkYXB0ZXIoZmlyc3RFbGVtZW50LA0KIAkJCQkJCUVPYmplY3QuY2xhc3MpOw0KLQkJCQlpZiAoZU9iamVjdCAhPSBudWxsKSB7DQorCQkJCWlmIChlT2JqZWN0ICE9IG51bGwgJiYgZU9iamVjdC5lUmVzb3VyY2UoKSAhPSBudWxsKSB7DQogCQkJCQl0aGlzLnRhcmdldCA9IGVPYmplY3Q7DQogCQkJCQlyZXR1cm4gdHJ1ZTsNCiAJCQkJfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXhhbXBsZXMvY25mL2FjdGlvbnMvT3BlblByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5leGFtcGxlcy5jbmYvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4YW1wbGVzL2NuZi9hY3Rpb25zL09wZW5Qcm92aWRlci5qYXZhCmluZGV4IDc0ZWVhNjUuLjg5YmZkZjEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlLmV4YW1wbGVzLmNuZi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXhhbXBsZXMvY25mL2FjdGlvbnMvT3BlblByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuZXhhbXBsZXMuY25mL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leGFtcGxlcy9jbmYvYWN0aW9ucy9PcGVuUHJvdmlkZXIuamF2YQpAQCAtMTksNiArMTksMTEgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS51aS5uYXZpZ2F0b3IuSUNvbW1vblZpZXdlclNpdGU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLm5hdmlnYXRvci5JQ29tbW9uVmlld2VyV29ya2JlbmNoU2l0ZTsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE9wZW5Qcm92aWRlciBleHRlbmRzIENvbW1vbkFjdGlvblByb3ZpZGVyIHsNCiANCiAJcHJpdmF0ZSBPcGVuQWN0aW9uIG9wZW5BY3Rpb247DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhYjdlMWY2Li44OWIxNjJmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQ2xhc3NQYXRoOiAuCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3BsdWdpbi5wcm9wZXJ0aWVzCmluZGV4IDhiYmU5YjUuLmNmZWU3NTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3BsdWdpbi5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC0xMSw0ICsxMSw0IEBACiAjIE5MU19NRVNTQUdFRk9STUFUX1ZBUgogCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIE1vZGVsIEJyb3dzZXIgVUkgQ29yZSAoSW5jdWJhdGlvbikNCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gTW9kZWwgQnJvd3NlciBVSSBDb3JlIChEZXByZWNhdGVkKSAoSW5jdWJhdGlvbikNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvQ2hhbmdlTGlzdGVuZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9DaGFuZ2VMaXN0ZW5lci5qYXZhCmluZGV4IDE1YjFjZDMuLjEyZDc3OTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9DaGFuZ2VMaXN0ZW5lci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9DaGFuZ2VMaXN0ZW5lci5qYXZhCkBAIC0xMiw3ICsxMiwxMiBAQAogDQogaW1wb3J0IGphdmEudXRpbC5FdmVudExpc3RlbmVyOw0KIA0KLS8qKiBBIGxpc3RlbmVyIGZvciBjaGFuZ2Ugbm90aWZpY2F0aW9ucyAqLw0KKy8qKg0KKyAqIEEgbGlzdGVuZXIgZm9yIGNoYW5nZSBub3RpZmljYXRpb25zDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBDaGFuZ2VMaXN0ZW5lciBleHRlbmRzIEV2ZW50TGlzdGVuZXIgew0KIAl2b2lkIGNoYW5nZWQoKTsNCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL0N1c3RvbWl6YWJsZU1vZGVsQ29udGVudFByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvQ3VzdG9taXphYmxlTW9kZWxDb250ZW50UHJvdmlkZXIuamF2YQppbmRleCA1OGZmYWZmLi45ZjMwNDQyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvQ3VzdG9taXphYmxlTW9kZWxDb250ZW50UHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvQ3VzdG9taXphYmxlTW9kZWxDb250ZW50UHJvdmlkZXIuamF2YQpAQCAtMjYsNyArMjYsMTIgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLklUcmVlQ29udGVudFByb3ZpZGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLlZpZXdlcjsNCiANCi0vKiogQSB0cmVlIGNvbnRlbnQgcHJvdmlkZXIgdXNlZCB0byBkaXNwbGF5IGEgbW9kZWwgY3VzdG9taXplZCB3aXRoIGEgTW9EaWNvIGN1c3RvbWl6YXRpb24uICovDQorLyoqDQorICogQSB0cmVlIGNvbnRlbnQgcHJvdmlkZXIgdXNlZCB0byBkaXNwbGF5IGEgbW9kZWwgY3VzdG9taXplZCB3aXRoIGEgTW9EaWNvIGN1c3RvbWl6YXRpb24uDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEN1c3RvbWl6YWJsZU1vZGVsQ29udGVudFByb3ZpZGVyIGltcGxlbWVudHMgSVRyZWVDb250ZW50UHJvdmlkZXIgew0KIA0KIAlwcml2YXRlIGZpbmFsIEFwcGVhcmFuY2VDb25maWd1cmF0aW9uIGFwcGVhcmFuY2VDb25maWd1cmF0aW9uOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9DdXN0b21pemFibGVNb2RlbExhYmVsUHJvdmlkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9DdXN0b21pemFibGVNb2RlbExhYmVsUHJvdmlkZXIuamF2YQppbmRleCA2Y2E0NTJkLi4wZGMzOTIyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvQ3VzdG9taXphYmxlTW9kZWxMYWJlbFByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL0N1c3RvbWl6YWJsZU1vZGVsTGFiZWxQcm92aWRlci5qYXZhCkBAIC0xOSw3ICsxOSwxMiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ncmFwaGljcy5Gb250Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuSW1hZ2U7DQogDQotLyoqIEEgbGFiZWwgcHJvdmlkZXIgdXNlZCB0byBkaXNwbGF5IGEgbW9kZWwgY3VzdG9taXplZCB3aXRoIGEgTW9EaWNvIGN1c3RvbWl6YXRpb24uICovDQorLyoqDQorICogQSBsYWJlbCBwcm92aWRlciB1c2VkIHRvIGRpc3BsYXkgYSBtb2RlbCBjdXN0b21pemVkIHdpdGggYSBNb0RpY28gY3VzdG9taXphdGlvbi4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ3VzdG9taXphYmxlTW9kZWxMYWJlbFByb3ZpZGVyIGV4dGVuZHMgTGFiZWxQcm92aWRlciBpbXBsZW1lbnRzIElDb2xvclByb3ZpZGVyLA0KIAkJSUZvbnRQcm92aWRlciB7DQogCQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9DdXN0b21pemF0aW9uTWFuYWdlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL0N1c3RvbWl6YXRpb25NYW5hZ2VyLmphdmEKaW5kZXggYWY1ODU1Ni4uMzA3YzU1YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL0N1c3RvbWl6YXRpb25NYW5hZ2VyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL0N1c3RvbWl6YXRpb25NYW5hZ2VyLmphdmEKQEAgLTMyLDcgKzMyLDEwIEBACiAgKiA8cD4NCiAgKiBOb3RlIHRoYXQgeW91IG11c3QgY2FsbCB7QGxpbmsgQ3VzdG9taXphdGlvbk1hbmFnZXIjaW5zdGFsbEN1c3RvbVBhaW50ZXIoVHJlZSkNCiAgKiBpbnN0YWxsQ3VzdG9tUGFpbnRlcn0gZm9yIGFsbCBjdXN0b21pemF0aW9ucyB0byBiZSBkaXNwbGF5ZWQgcHJvcGVybHkuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEN1c3RvbWl6YXRpb25NYW5hZ2VyIHsNCiAJcHJpdmF0ZSBmaW5hbCBBcHBlYXJhbmNlQ29uZmlndXJhdGlvbiBhcHBlYXJhbmNlQ29uZmlndXJhdGlvbjsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvTWVzc2FnZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL01lc3NhZ2UuamF2YQppbmRleCA3NmFmYjI2Li5lYjU5MmVmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvTWVzc2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9NZXNzYWdlLmphdmEKQEAgLTIzLDcgKzIzLDEwIEBACiAvKioNCiAgKiBBIG1lc3NhZ2UgdGhhdCBhcHBlYXJzIGluc3RlYWQgb2YgbW9kZWwgZWxlbWVudHMsIGZvciBleGFtcGxlIHdoZW4gdGhlIGxpc3QgaXMgZW1wdHkgb3IgdGhlIGlucHV0DQogICogaXMgPGNvZGU+bnVsbDwvY29kZT4uDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2UgaW1wbGVtZW50cyBJVHJlZUVsZW1lbnQgew0KIAlwcml2YXRlIGZpbmFsIFN0cmluZyBtZXNzYWdlOw0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9VbndyYXBwaW5nU2VsZWN0aW9uUHJvdmlkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9VbndyYXBwaW5nU2VsZWN0aW9uUHJvdmlkZXIuamF2YQppbmRleCA0ZDAxNWRiLi40Y2M5YmZiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvVW53cmFwcGluZ1NlbGVjdGlvblByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL1Vud3JhcHBpbmdTZWxlY3Rpb25Qcm92aWRlci5qYXZhCkBAIC00Myw5ICs0MywxMCBAQAogICogZ2V0U2l0ZSgpLnJlZ2lzdGVyQ29udGV4dE1lbnUoTUVOVV9JRCwgY29udGV4dE1lbnUsIG5ldyBVbndyYXBwaW5nU2VsZWN0aW9uUHJvdmlkZXIodHJlZVZpZXdlcikpOwogICogPC9wcmU+CiAgKiAKLSAqIAotICogCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwKKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUKICAqLworQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBVbndyYXBwaW5nU2VsZWN0aW9uUHJvdmlkZXIgZXh0ZW5kcwogCQlvcmcuZWNsaXBzZS5lbWYuZWRpdC51aS5wcm92aWRlci5VbndyYXBwaW5nU2VsZWN0aW9uUHJvdmlkZXIgewogCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9pY29ucy9GaWx0ZXJlZEljb25Qcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvaWNvbnMvRmlsdGVyZWRJY29uUHJvdmlkZXIuamF2YQppbmRleCA1ZDhlNDRjLi44ZDRjOWRiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9pY29ucy9GaWx0ZXJlZEljb25Qcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leHRlbnNpb25zL2ljb25zL0ZpbHRlcmVkSWNvblByb3ZpZGVyLmphdmEKQEAgLTE2LDcgKzE2LDEwIEBACiAgKiBBbiBleHRlbnNpb24gdG8ge0BsaW5rIEljb25Qcm92aWRlcn0gdGhhdCBhZGRzIGEgd2F5IHRvIGZpbHRlciBlbGVtZW50cw0KICAqIGJlZm9yZSB0aGUge0BsaW5rIEljb25Qcm92aWRlciNnZXRJY29uKG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0KQ0KICAqIGdldE5hbWV9IG1ldGhvZCBpcyBjYWxsZWQuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBGaWx0ZXJlZEljb25Qcm92aWRlciBleHRlbmRzIEljb25Qcm92aWRlciB7DQogCS8qKiBAcmV0dXJuIHdoZXRoZXIgdGhpcyB7QGxpbmsgSWNvblByb3ZpZGVyfSBmaWx0ZXJzIHRoZSBnaXZlbiBtZXRhY2xhc3MgKi8NCiAJYm9vbGVhbiBmaWx0ZXIoU3RyaW5nIG1ldGFjbGFzcyk7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvaWNvbnMvSWNvblByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9pY29ucy9JY29uUHJvdmlkZXIuamF2YQppbmRleCA4MTEwNDlkLi4yMzNlOTg0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9pY29ucy9JY29uUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9pY29ucy9JY29uUHJvdmlkZXIuamF2YQpAQCAtMTksNyArMTksMTAgQEAKICAqIFRoZSBpbnRlcmZhY2UgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGluIG9yZGVyIHRvIHVzZSB0aGUgImljb25zIiBleHRlbnNpb24uDQogICogSW1wbGVtZW50b3JzIG1heSBjaG9vc2UgdG8gdXNlIHRoZSB7QGxpbmsgRmlsdGVyZWRJY29uUHJvdmlkZXJ9IGludGVyZmFjZQ0KICAqIGluc3RlYWQgaWYgdGhleSB3YW50IHRvIGFkZCBhIGZpbHRlci4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEljb25Qcm92aWRlciB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leHRlbnNpb25zL25hbWluZy9BYnN0cmFjdE5hbWVQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvbmFtaW5nL0Fic3RyYWN0TmFtZVByb3ZpZGVyLmphdmEKaW5kZXggY2ZmYjllMy4uYzdiMmJkMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvbmFtaW5nL0Fic3RyYWN0TmFtZVByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvbmFtaW5nL0Fic3RyYWN0TmFtZVByb3ZpZGVyLmphdmEKQEAgLTIzLDcgKzIzLDEwIEBACiAgKiBuYW1pbmcgZXh0ZW5zaW9uLiBJdCBwcm92aWRlcyB0aGUNCiAgKiB7QGxpbmsgQWJzdHJhY3ROYW1lUHJvdmlkZXIjZ2V0RGVmYXVsdE5hbWUoRU9iamVjdCkgZ2V0RGVmYXVsdE5hbWV9IG1ldGhvZCwNCiAgKiB3aGljaCBmaW5kcyBhIGRlZmF1bHQgbmFtZSAod2hpY2ggY2FuIGJlIGVtcHR5KSBmb3IgYW55IG1vZGVsIGVsZW1lbnQuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0TmFtZVByb3ZpZGVyIGltcGxlbWVudHMgTmFtZVByb3ZpZGVyIHsNCiANCiAJLyoqDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvbmFtaW5nL0ZpbHRlcmVkTmFtZVByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9uYW1pbmcvRmlsdGVyZWROYW1lUHJvdmlkZXIuamF2YQppbmRleCAxZjgyMjk1Li4xMTA4ZjQ1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9uYW1pbmcvRmlsdGVyZWROYW1lUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9uYW1pbmcvRmlsdGVyZWROYW1lUHJvdmlkZXIuamF2YQpAQCAtMTYsNyArMTYsMTAgQEAKICAqIEFuIGV4dGVuc2lvbiB0byB7QGxpbmsgTmFtZVByb3ZpZGVyfSB0aGF0IGFkZHMgYSB3YXkgdG8gZmlsdGVyIGVsZW1lbnRzDQogICogYmVmb3JlIHRoZSB7QGxpbmsgTmFtZVByb3ZpZGVyI2dldE5hbWUob3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3QpDQogICogZ2V0TmFtZX0gbWV0aG9kIGlzIGNhbGxlZC4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZpbHRlcmVkTmFtZVByb3ZpZGVyIGV4dGVuZHMgTmFtZVByb3ZpZGVyIHsNCiAJLyoqIEByZXR1cm4gd2hldGhlciB0aGlzIHtAbGluayBOYW1lUHJvdmlkZXJ9IGZpbHRlcnMgdGhlIGdpdmVuIG1ldGFjbGFzcyAqLw0KIAlib29sZWFuIGZpbHRlcihTdHJpbmcgbWV0YWNsYXNzKTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9uYW1pbmcvTmFtZVByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvZXh0ZW5zaW9ucy9uYW1pbmcvTmFtZVByb3ZpZGVyLmphdmEKaW5kZXggMmZmNjY2YS4uOWNiYjI0NyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2V4dGVuc2lvbnMvbmFtaW5nL05hbWVQcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9leHRlbnNpb25zL25hbWluZy9OYW1lUHJvdmlkZXIuamF2YQpAQCAtMTksNyArMTksMTAgQEAKICAqIEltcGxlbWVudG9ycyBtYXkgY2hvb3NlIHRvIHVzZSB0aGUge0BsaW5rIEZpbHRlcmVkTmFtZVByb3ZpZGVyfSBpbnRlcmZhY2UNCiAgKiBpbnN0ZWFkIGlmIHRoZXkgd2FudCB0byBhZGQgYSBmaWx0ZXIsIG9yIHRoZSB7QGxpbmsgQWJzdHJhY3ROYW1lUHJvdmlkZXJ9DQogICogY2xhc3MsIHdoaWNoIGltcGxlbWVudHMgZGVmYXVsdCBuYW1pbmcgcnVsZXMuDQotICogKi8NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIE5hbWVQcm92aWRlciB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQppbmRleCBkYjcwODJkLi4xMDZiNjI0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL0FjdGl2YXRvci5qYXZhCkBAIC0xMyw3ICsxMywxMiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLnBsdWdpbi5BYnN0cmFjdFVJUGx1Z2luOw0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dDsNCiANCi0vKiogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlICovDQorLyoqDQorICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KIA0KIAkvKiogVGhlIHBsdWctaW4gSUQgKi8NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvQXBwZWFyYW5jZUNvbmZpZ3VyYXRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9BcHBlYXJhbmNlQ29uZmlndXJhdGlvbi5qYXZhCmluZGV4IDZhZmQ2MjkuLjllMjEzZjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9BcHBlYXJhbmNlQ29uZmlndXJhdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9BcHBlYXJhbmNlQ29uZmlndXJhdGlvbi5qYXZhCkBAIC00MCw3ICs0MCwxMCBAQAogICogPGxpPmFjY2VzcyB0byB0aGUge0BsaW5rIEN1c3RvbWl6YXRpb25FbmdpbmV9LCB1c2VkIHRvIGN1c3RvbWl6ZSB0aGUgYXBwZWFyYW5jZSBvZiBtb2RlbCBlbGVtZW50cw0KICAqIGJvdGggc3RhdGljYWxseSBhbmQgZHluYW1pY2FsbHkNCiAgKiA8L3VsPg0KLSAqICovDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFwcGVhcmFuY2VDb25maWd1cmF0aW9uIHsNCiANCiAJcHVibGljIGVudW0gTWV0YWNsYXNzZXNTb3J0TW9kZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL0N1c3RvbVRyZWVQYWludGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvQ3VzdG9tVHJlZVBhaW50ZXIuamF2YQppbmRleCA1NmM3ZjVhLi4xNDdlNzAwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvQ3VzdG9tVHJlZVBhaW50ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvQ3VzdG9tVHJlZVBhaW50ZXIuamF2YQpAQCAtNDksNyArNDksMTAgQEAKICAqIDxsaT5EaXNwbGF5cyAic3RpY2tlcnMiIGZvciBGYWNldHMgb24gdGhlIHJpZ2h0IG9mIG1vZGVsIGVsZW1lbnRzIHRoYXQgY2Fycnkgb25lIG9yIG1vcmUgZmFjZXQocykNCiAgKiBmb3Igd2hpY2ggYW4gaWNvbiBoYXMgYmVlbiBwcm92aWRlZCB0aHJvdWdoIGEgY3VzdG9taXphdGlvbiAodWlDdXN0b20gZmlsZSkNCiAgKiA8L3VsPg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBDdXN0b21UcmVlUGFpbnRlciB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQVhfQUxQSEEgPSAyNTU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvTWVzc2FnZXMuamF2YQppbmRleCA3ZWFiMzFhLi5mOWZlNDFkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvTWVzc2FnZXMuamF2YQpAQCAtMTMsNiArMTMsMTEgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5pbnRlcm5hbC5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvYWRhcHRlcnMvQWRhcHRlckZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9BZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IGI3NmNkMjAuLjAwMjNhYWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9BZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9BZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xNyw3ICsxNywxMCBAQAogLyoqDQogICogQW4gRWNsaXBzZSBhZGFwdGVyIGZhY3RvcnkgdXNlZCB0byBhZGFwdCBhIHtAbGluayBNb2RlbEVsZW1lbnRJdGVtfSB0byB0aGUge0BsaW5rIEVPYmplY3R9IGl0DQogICogcmVwcmVzZW50cy4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWRhcHRlckZhY3RvcnkgaW1wbGVtZW50cyBJQWRhcHRlckZhY3Rvcnkgew0KIA0KIAlAU3VwcHJlc3NXYXJuaW5ncygidW5jaGVja2VkIikNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvYWRhcHRlcnMvRWxlbWVudElELmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvYWRhcHRlcnMvRWxlbWVudElELmphdmEKaW5kZXggOTRiOGUxOC4uZTk5ZWY4YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL2FkYXB0ZXJzL0VsZW1lbnRJRC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9FbGVtZW50SUQuamF2YQpAQCAtMTAsNyArMTAsMTIgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUuaW50ZXJuYWwuYWRhcHRlcnM7DQogDQotLyoqIFVzZWQgdG8gYXNzb2NpYXRlIGFuIGlkIHRvIGFuIGVsZW1lbnQgKi8NCisvKioNCisgKiBVc2VkIHRvIGFzc29jaWF0ZSBhbiBpZCB0byBhbiBlbGVtZW50DQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBFbGVtZW50SUQgew0KIAlsb25nIGdldElEKCk7DQogfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9FbGVtZW50SURBZGFwdGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvYWRhcHRlcnMvRWxlbWVudElEQWRhcHRlci5qYXZhCmluZGV4IGJmOGQ3NjYuLmQxZmZhY2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9FbGVtZW50SURBZGFwdGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL2FkYXB0ZXJzL0VsZW1lbnRJREFkYXB0ZXIuamF2YQpAQCAtMTQsNyArMTQsMTAgQEAKIA0KIC8qKg0KICAqIEFzc29jaWF0ZXMgYSB1bmlxdWUgaW50ZWdlciB3aXRoIGVhY2ggbW9kZWwgZWxlbWVudCAobGF6aWx5LCB3aGVuIHRoZSBhZGFwdGVyIGlzIGNyZWF0ZWQpDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEVsZW1lbnRJREFkYXB0ZXIgZXh0ZW5kcyBBZGFwdGVySW1wbCBpbXBsZW1lbnRzIEVsZW1lbnRJRCB7DQogDQogCXByaXZhdGUgc3RhdGljIGxvbmcgbGFzdElEID0gMDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvYWRhcHRlcnMvRWxlbWVudElEQWRhcHRlckZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9FbGVtZW50SURBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IGM5MjI4ODYuLjVlMjIxZmQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9FbGVtZW50SURBZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9hZGFwdGVycy9FbGVtZW50SURBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0xOSw3ICsxOSwxMCBAQAogLyoqDQogICogQW4gRU1GIGFkYXB0ZXIgZmFjdG9yeSB1c2VkIHRvIGluc3RhbnRpYXRlIHtAbGluayBFbGVtZW50SURBZGFwdGVyfSwgdGhhdCBpcyB1c2VkIHRvIGFzc29jaWF0ZSBhbg0KICAqIGlkIHRvIGFuIHtAbGluayBFT2JqZWN0fS4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgRWxlbWVudElEQWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBZGFwdGVyRmFjdG9yeUltcGwgew0KIA0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBBZGFwdGVyRmFjdG9yeSBJTlNUQU5DRSA9IG5ldyBFbGVtZW50SURBZGFwdGVyRmFjdG9yeSgpOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9jdXN0b21pemF0aW9uL0N1c3RvbWl6YXRpb25FbmdpbmUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9jdXN0b21pemF0aW9uL0N1c3RvbWl6YXRpb25FbmdpbmUuamF2YQppbmRleCA2M2VjOTU0Li45YWVjMDc5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvY3VzdG9taXphdGlvbi9DdXN0b21pemF0aW9uRW5naW5lLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL2N1c3RvbWl6YXRpb24vQ3VzdG9taXphdGlvbkVuZ2luZS5qYXZhCkBAIC04NSw3ICs4NSwxMCBAQAogICogYWNjZXNzLCBhbmQgdGhlICJhcHBseSB0byBzdWItaW5zdGFuY2VzIiBvcHRpb24gb24gbWV0YWNsYXNzZXMNCiAgKiA8bGk+aW1hZ2VzLCBjb2xvcnMgYW5kIGZvbnRzIGFyZSBkZWNvZGVkIG9uY2UgYW5kIHRoZW4ga2VwdCBpbiBjYWNoZQ0KICAqIDwvdWw+DQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEN1c3RvbWl6YXRpb25FbmdpbmUgew0KIA0KIAlwcml2YXRlIGZpbmFsIE1hcDxFQ2xhc3MsIEVuZ2luZUVsZW1lbnRWaWV3PiBlbmdpbmVUeXBlVmlld3MgPSBuZXcgSGFzaE1hcDxFQ2xhc3MsIEVuZ2luZUVsZW1lbnRWaWV3PigpOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9jdXN0b21pemF0aW9uL092ZXJsYXlJY29uSW1hZ2VJbmZvLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvY3VzdG9taXphdGlvbi9PdmVybGF5SWNvbkltYWdlSW5mby5qYXZhCmluZGV4IDc1N2VmZjMuLmZhMGUyMWYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9jdXN0b21pemF0aW9uL092ZXJsYXlJY29uSW1hZ2VJbmZvLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL2N1c3RvbWl6YXRpb24vT3ZlcmxheUljb25JbWFnZUluZm8uamF2YQpAQCAtMTcsNyArMTcsMTAgQEAKICAqIFJlcHJlc2VudHMgYW4gb3ZlcmxheSBpY29uIHBvc2l0aW9uZWQgb3ZlciB0aGUgbWFuIGljb24gb2YgYW4gZWxlbWVudCBpbiBhIHRyZWUgd2lkZ2V0LiBUaGUgaWNvbg0KICAqIGNhbiBoYXZlIGEgZGlmZmVyZW50IHBvc2l0aW9uIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgb2YgdGhlIGdpdmVuIHtAbGluayBPdmVybGF5SWNvblBvc2l0aW9ufQ0KICAqIGluc3RhbmNlLg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBPdmVybGF5SWNvbkltYWdlSW5mbyB7DQogCXByaXZhdGUgZmluYWwgT3ZlcmxheUljb25Qb3NpdGlvbiBpY29uUG9zaXRpb247DQogCXByaXZhdGUgZmluYWwgSW1hZ2UgaW1hZ2U7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL2V4dGVuc2lvbnMvSWNvblByb3ZpZGVyc1JlZ2lzdHJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9JY29uUHJvdmlkZXJzUmVnaXN0cnkuamF2YQppbmRleCA2YmI3ODQ5Li5kMjhjM2I0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9JY29uUHJvdmlkZXJzUmVnaXN0cnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9JY29uUHJvdmlkZXJzUmVnaXN0cnkuamF2YQpAQCAtMzcsNyArMzcsMTAgQEAKICAqIHJlYWRpbmcgZXh0ZW5zaW9ucyB3aGVuIGZpcnN0IGFjY2Vzc2VkLiBJdCBjYW4gcHJvdmlkZSBuYW1lcyBmb3IgbW9kZWwNCiAgKiBlbGVtZW50cywgdXNpbmcge0BsaW5rIEljb25Qcm92aWRlcn1zIHByb3ZpZGVkIHRocm91Z2ggdGhlIG5hbWluZyBleHRlbnNpb24NCiAgKiBwb2ludC4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSWNvblByb3ZpZGVyc1JlZ2lzdHJ5IGV4dGVuZHMgQWJzdHJhY3RSZWdpc3RyeSB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBNRVRBQ0xBU1NfRUxFTUVOVCA9ICJtZXRhY2xhc3MiOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL2V4dGVuc2lvbnMvTmFtZVByb3ZpZGVyc1JlZ2lzdHJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9OYW1lUHJvdmlkZXJzUmVnaXN0cnkuamF2YQppbmRleCAzNDMxMDNhLi4wYzExZmM4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9OYW1lUHJvdmlkZXJzUmVnaXN0cnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9OYW1lUHJvdmlkZXJzUmVnaXN0cnkuamF2YQpAQCAtMzYsNyArMzYsMTAgQEAKICAqIHJlYWRpbmcgZXh0ZW5zaW9ucyB3aGVuIGZpcnN0IGFjY2Vzc2VkLiBJdCBjYW4gcHJvdmlkZSBuYW1lcyBmb3IgbW9kZWwNCiAgKiBlbGVtZW50cywgdXNpbmcge0BsaW5rIE5hbWVQcm92aWRlcn1zIHByb3ZpZGVkIHRocm91Z2ggdGhlIG5hbWluZyBleHRlbnNpb24NCiAgKiBwb2ludC4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTmFtZVByb3ZpZGVyc1JlZ2lzdHJ5IGV4dGVuZHMgQWJzdHJhY3RSZWdpc3RyeSB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBNRVRBQ0xBU1NfRUxFTUVOVCA9ICJtZXRhY2xhc3MiOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0F0dHJpYnV0ZUl0ZW0uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9BdHRyaWJ1dGVJdGVtLmphdmEKaW5kZXggNWMxZDNkNi4uMTdlNTFkNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0F0dHJpYnV0ZUl0ZW0uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvQXR0cmlidXRlSXRlbS5qYXZhCkBAIC0zNCw3ICszNCwxMCBAQAogDQogLyoqDQogICogQW4gaXRlbSBmb3IgZGlzcGxheWluZyBhdHRyaWJ1dGVzICh7QGxpbmsgRUF0dHJpYnV0ZX0pIG9mIGEgbW9kZWwgZWxlbWVudCBhcyBlbGVtZW50cyBpbiB0aGUgdHJlZS4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQXR0cmlidXRlSXRlbSBpbXBsZW1lbnRzIElUcmVlRWxlbWVudCwgSUFkYXB0YWJsZSB7DQogDQogCS8qKiBUaGUgYXR0cmlidXRlICovDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0JpZ0xpc3RJdGVtLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvQmlnTGlzdEl0ZW0uamF2YQppbmRleCA0Zjg5MjQzLi42YWY3YjVkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvQmlnTGlzdEl0ZW0uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvQmlnTGlzdEl0ZW0uamF2YQpAQCAtNDEsNyArNDEsMTAgQEAKICAqIEFuIGl0ZW0gd2hpY2ggaXMgZGlzcGxheWVkIGFzIGEgcmFuZ2Ugd2hlbiBzcGxpdHRpbmcgYmlnIGVsZW1lbnQgbGlzdHMgaW50byBzbWFsbGVyIG9uZXMuDQogICogPHA+DQogICogVGhpcyBpcyBkb25lIHNvIGFzIHRvIGF2b2lkIGxvY2tpbmcgdGhlIEdVSSBmb3IgdG9vIGxvbmcgd2hlbiB0aGUgdHJlZSBpcyBidWlsdA0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCaWdMaXN0SXRlbSBpbXBsZW1lbnRzIElUcmVlRWxlbWVudCB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9Db250YWluZXJMaW5rLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvQ29udGFpbmVyTGluay5qYXZhCmluZGV4IDk3MGY1ZmEuLjgzZDRkZTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9Db250YWluZXJMaW5rLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0NvbnRhaW5lckxpbmsuamF2YQpAQCAtMjUsNyArMjUsMTIgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuRm9udDsNCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkltYWdlOw0KIA0KLS8qKiBBIGxpbmsgdG8gdGhlIEVNRiBjb250YWluZXIgb2YgYW4gZWxlbWVudCAoe0BsaW5rIEVPYmplY3QjZUNvbnRhaW5lcigpfSkgKi8NCisvKioNCisgKiBBIGxpbmsgdG8gdGhlIEVNRiBjb250YWluZXIgb2YgYW4gZWxlbWVudCAoe0BsaW5rIEVPYmplY3QjZUNvbnRhaW5lcigpfSkNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ29udGFpbmVyTGluayBpbXBsZW1lbnRzIElUcmVlRWxlbWVudCB7DQogDQogCS8qKiBUaGUgbW9kZWwgZWxlbWVudCB0aGF0IGFwcGVhcnMgYXMgdGhlIHBhcmVudCBvZiB0aGUgbGluayBpbiB0aGUgdHJlZSAqLw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9JVHJlZUVsZW1lbnQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9JVHJlZUVsZW1lbnQuamF2YQppbmRleCAzNGE5ZWFiLi4yYjkxZTVkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvSVRyZWVFbGVtZW50LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0lUcmVlRWxlbWVudC5qYXZhCkBAIC0xOCw3ICsxOCwxMiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ncmFwaGljcy5Gb250Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZ3JhcGhpY3MuSW1hZ2U7DQogDQotLyoqIFRoZSBiYXNlIGludGVyZmFjZSBpbXBsZW1lbnRlZCBieSBhbGwgZWxlbWVudHMgdGhhdCBhcHBlYXIgaW4gdGhlIGJyb3dzZXIgKi8NCisvKioNCisgKiBUaGUgYmFzZSBpbnRlcmZhY2UgaW1wbGVtZW50ZWQgYnkgYWxsIGVsZW1lbnRzIHRoYXQgYXBwZWFyIGluIHRoZSBicm93c2VyDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBJVHJlZUVsZW1lbnQgew0KIAlTdHJpbmcgZ2V0VGV4dCgpOw0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9JdGVtc0ZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9JdGVtc0ZhY3RvcnkuamF2YQppbmRleCA0MmJkYjhhLi45MTdhN2NkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvSXRlbXNGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0l0ZW1zRmFjdG9yeS5qYXZhCkBAIC0xNyw3ICsxNywxMCBAQAogLyoqDQogICogQSBmYWN0b3J5IHRoYXQgY3JlYXRlcyB0cmVlIGl0ZW1zLiBUaGlzIGFsbG93cyBleHRlbmRpbmcgdGhlc2UgZWxlbWVudHMgYnkNCiAgKiBleHRlbmRpbmcgdGhlIGZhY3RvcnkgYW5kIHJldHVybmluZyBleHRlbmRlZCB2ZXJzaW9ucyBvZiB0aGUgZWxlbWVudHMuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEl0ZW1zRmFjdG9yeSB7DQogCXB1YmxpYyBNb2RlbEVsZW1lbnRJdGVtIGNyZWF0ZU1vZGVsRWxlbWVudEl0ZW0oZmluYWwgRU9iamVjdCBlT2JqZWN0LA0KIAkJCWZpbmFsIElUcmVlRWxlbWVudCB0cmVlUGFyZW50LCBmaW5hbCBBcHBlYXJhbmNlQ29uZmlndXJhdGlvbiBhcHBlYXJhbmNlQ29uZmlndXJhdGlvbikgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9MaW5rSXRlbS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0xpbmtJdGVtLmphdmEKaW5kZXggOGUxMzhhZi4uOWE3OTA1MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0xpbmtJdGVtLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL0xpbmtJdGVtLmphdmEKQEAgLTM1LDcgKzM1LDEyIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkZvbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ncmFwaGljcy5JbWFnZTsNCiANCi0vKiogQSBsaW5rIChyZXByZXNlbnRpbmcgYW4ge0BsaW5rIEVSZWZlcmVuY2V9KSBiZXR3ZWVuIHR3byBtb2RlbCBlbGVtZW50cyBpbiB0aGUgdHJlZS4gKi8NCisvKioNCisgKiBBIGxpbmsgKHJlcHJlc2VudGluZyBhbiB7QGxpbmsgRVJlZmVyZW5jZX0pIGJldHdlZW4gdHdvIG1vZGVsIGVsZW1lbnRzIGluIHRoZSB0cmVlLg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBMaW5rSXRlbSBpbXBsZW1lbnRzIElUcmVlRWxlbWVudCwgSUFkYXB0YWJsZSB7DQogDQogCS8qKiBUaGUgcmVmZXJlbmNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGxpbmsgKi8NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvTW9kZWxFbGVtZW50SXRlbS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL01vZGVsRWxlbWVudEl0ZW0uamF2YQppbmRleCA1NmJjZjUwLi40ZmUyNjcyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvTW9kZWxFbGVtZW50SXRlbS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9Nb2RlbEVsZW1lbnRJdGVtLmphdmEKQEAgLTU1LDcgKzU1LDEyIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkZvbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ncmFwaGljcy5JbWFnZTsNCiANCi0vKiogUmVwcmVzZW50cyBhIG1vZGVsIGVsZW1lbnQgKHtAbGluayBFT2JqZWN0fSkuIFVzZXMgcmVmbGVjdGlvbiBvbiB0aGUgRWNvcmUgbWV0YW1vZGVsLiAqLw0KKy8qKg0KKyAqIFJlcHJlc2VudHMgYSBtb2RlbCBlbGVtZW50ICh7QGxpbmsgRU9iamVjdH0pLiBVc2VzIHJlZmxlY3Rpb24gb24gdGhlIEVjb3JlIG1ldGFtb2RlbC4NCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxFbGVtZW50SXRlbSBpbXBsZW1lbnRzIElUcmVlRWxlbWVudCwgSUFkYXB0YWJsZSB7DQogDQogCS8qKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgd2F5IGVsZW1lbnRzIGFyZSBkaXNwbGF5ZWQgKi8NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvT3BlcmF0aW9uQ2FuY2VsZWRFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9PcGVyYXRpb25DYW5jZWxlZEV4Y2VwdGlvbi5qYXZhCmluZGV4IGQzYjNiMzcuLmE5Nzc0MmMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9PcGVyYXRpb25DYW5jZWxlZEV4Y2VwdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9PcGVyYXRpb25DYW5jZWxlZEV4Y2VwdGlvbi5qYXZhCkBAIC0xMiw3ICsxMiwxMiBAQAogDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS5pbnRlcm5hbC5tb2RlbDsNCiANCi0vKiogQW4gZXhjZXB0aW9uIHRocm93biB3aGVuIHRoZSB1c2VyIGNhbmNlbHMgYW4gb3BlcmF0aW9uICovDQorLyoqDQorICogQW4gZXhjZXB0aW9uIHRocm93biB3aGVuIHRoZSB1c2VyIGNhbmNlbHMgYW4gb3BlcmF0aW9uDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE9wZXJhdGlvbkNhbmNlbGVkRXhjZXB0aW9uIGV4dGVuZHMgUnVudGltZUV4Y2VwdGlvbiB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC03NDMxNTU4OTE0MTczNzE0NTM3TDsNCiB9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL1VSSUF0dHJpYnV0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL21vZGVsL1VSSUF0dHJpYnV0ZS5qYXZhCmluZGV4IGYzZjg2ZTQuLjgxZDk1OWYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC9tb2RlbC9VUklBdHRyaWJ1dGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvbW9kZWwvVVJJQXR0cmlidXRlLmphdmEKQEAgLTI0LDcgKzI0LDEyIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkZvbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ncmFwaGljcy5JbWFnZTsNCiANCi0vKiogQSB2aXJ0dWFsIGF0dHJpYnV0ZSB1c2VkIHRvIGRpc3BsYXkgdGhlIFVSSSBvZiBhbiB7QGxpbmsgRU9iamVjdH0gKi8NCisvKioNCisgKiBBIHZpcnR1YWwgYXR0cmlidXRlIHVzZWQgdG8gZGlzcGxheSB0aGUgVVJJIG9mIGFuIHtAbGluayBFT2JqZWN0fQ0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBVUklBdHRyaWJ1dGUgaW1wbGVtZW50cyBJVHJlZUVsZW1lbnQgew0KIA0KIAkvKioNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9Db2xvclByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9Db2xvclByb3ZpZGVyLmphdmEKaW5kZXggM2FiMjM0MC4uMjdlMjUyZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvQ29sb3JQcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL0NvbG9yUHJvdmlkZXIuamF2YQpAQCAtMjAsNyArMjAsMTAgQEAKIC8qKg0KICAqIFJldHVybnMgU1dUIHtAbGluayBDb2xvcn1zIHVzZWQgaW4gdGhlIG1vZGVsIGJyb3dzZXIsIGFuZCBjYWNoZXMgdGhlbSB0byBvcHRpbWl6ZSBzeXN0ZW0NCiAgKiByZXNvdXJjZXMgdXNhZ2UuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIENvbG9yUHJvdmlkZXIgew0KIA0KIAlwcml2YXRlIHN0YXRpYyBDb2xvclByb3ZpZGVyIGluc3RhbmNlOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL0VNRlV0aWwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL0VNRlV0aWwuamF2YQppbmRleCBhODQyNjMyLi4yNjU0MGViIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9FTUZVdGlsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvRU1GVXRpbC5qYXZhCkBAIC0zNCw3ICszNCwxMiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmludGVybmFsLnV0aWxzLk1vZGVsVXRpbHM7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmxvZ2dpbmcuTW9EaXNjb0xvZ2dlcjsNCiANCi0vKiogVXRpbGl0eSBmdW5jdGlvbnMgcmVsYXRlZCB0byBFTUYgKi8NCisvKioNCisgKiBVdGlsaXR5IGZ1bmN0aW9ucyByZWxhdGVkIHRvIEVNRg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBFTUZVdGlsIHsNCiANCiAJLyoqDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvSW1hZ2VQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvSW1hZ2VQcm92aWRlci5qYXZhCmluZGV4IDI5MzU0YTAuLmFjODRjZmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL0ltYWdlUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9JbWFnZVByb3ZpZGVyLmphdmEKQEAgLTIxLDcgKzIxLDEyIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmdyYXBoaWNzLkltYWdlOw0KIA0KLS8qKiBBIHNpbmdsZXRvbiBpbWFnZSBwcm92aWRlciwgd2hpY2ggY2FjaGVzIGltYWdlIGRlc2NyaXB0b3JzICovDQorLyoqDQorICogQSBzaW5nbGV0b24gaW1hZ2UgcHJvdmlkZXIsIHdoaWNoIGNhY2hlcyBpbWFnZSBkZXNjcmlwdG9ycw0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MTUNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBJbWFnZVByb3ZpZGVyIHsNCiANCiAJcHJpdmF0ZSBJbWFnZVByb3ZpZGVyKCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL1F1ZXJ5RXJyb3JEaWFsb2cuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL1F1ZXJ5RXJyb3JEaWFsb2cuamF2YQppbmRleCBmYzA3ZjZiLi45Y2I4N2U0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9RdWVyeUVycm9yRGlhbG9nLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvUXVlcnlFcnJvckRpYWxvZy5qYXZhCkBAIC0yNSw3ICsyNSwxMCBAQAogLyoqDQogICogQSBkaWFsb2cgdXNlZCB0byBkaXNwbGF5IHF1ZXJ5IGVycm9ycywgdGhhdCBjb250YWlucyBhIGNoZWNrYm94IHRvIGxldCB0aGUgdXNlciBwcmV2ZW50IHRoZQ0KICAqIGRpYWxvZyBmcm9tIGRpc3BsYXlpbmcgYWdhaW4gZHVyaW5nIHRoZSBjdXJyZW50IHNlc3Npb24uDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5RXJyb3JEaWFsb2cgZXh0ZW5kcyBNZXNzYWdlRGlhbG9nIHsNCiANCiAJcHJpdmF0ZSBCdXR0b24gY2JEb250U2hvd0FueW1vcmU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvUXVlcnlVdGlsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9RdWVyeVV0aWwuamF2YQppbmRleCBiNzk2YjljLi5mMWUyZTg5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9RdWVyeVV0aWwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9RdWVyeVV0aWwuamF2YQpAQCAtMzIsNyArMzIsMTIgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5EaXNwbGF5Ow0KIA0KLS8qKiBVdGlsaXR5IG1ldGhvZHMgdG8gZXZhbHVhdGUgTW9EaXNjbyBxdWVyaWVzLiAqLw0KKy8qKg0KKyAqIFV0aWxpdHkgbWV0aG9kcyB0byBldmFsdWF0ZSBNb0Rpc2NvIHF1ZXJpZXMuDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQsDQorICogICAgICAgICAgICAgY2YgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcxNQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIFF1ZXJ5VXRpbCB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNRVNTQUdFX0RFTEFZID0gMTAwOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL1V0aWwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudWljb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL3VpY29yZS9pbnRlcm5hbC91dGlsL1V0aWwuamF2YQppbmRleCA2YTIxMmZhLi43NjE2M2NlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLnVpY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci91aWNvcmUvaW50ZXJuYWwvdXRpbC9VdGlsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdWljb3JlL2ludGVybmFsL3V0aWwvVXRpbC5qYXZhCkBAIC0xMyw3ICsxMywxMiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGaWxlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGF0aDsNCiANCi0vKiogR2VuZXJhbCB1dGlsaXR5IGZ1bmN0aW9ucyAqLw0KKy8qKg0KKyAqIEdlbmVyYWwgdXRpbGl0eSBmdW5jdGlvbnMNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwNCisgKiAgICAgICAgICAgICBjZiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgVXRpbCB7DQogDQogCXByaXZhdGUgVXRpbCgpIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA0NjcyOWIxLi44NDk5NzlhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXI7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyLk1vRGlzY29Ccm93c2VyUGx1Z2luJEltcGxlbWVudGF0aW9uDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCkBAIC0zNiw3ICszNiw4IEBACiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci51aWNvcmU7YnVuZGxlLXZlcnNpb249IjAuOC4wIiwNCiAgb3JnLmVjbGlwc2UudWkudmlld3MucHJvcGVydGllcy50YWJiZWQ7YnVuZGxlLXZlcnNpb249IjMuNS4wIiwNCiAgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLnVpO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCIsDQotIG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmVtZi5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCINCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuMS4wIiwNCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuY29yZTtidW5kbGUtdmVyc2lvbj0iMS4wLjAiDQogRWNsaXBzZS1MYXp5U3RhcnQ6IHRydWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvcGx1Z2luLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyL3BsdWdpbi5wcm9wZXJ0aWVzCmluZGV4IDBjYTNlMTMuLmQ4NzMxY2IgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci9wbHVnaW4ucHJvcGVydGllcwpAQCAtMTcsNyArMTcsNyBAQAogT3Blbk1vZGVsRnJvbUVtZlJlZ2lzdHJ5X1Rvb2x0aXA9T3BlbiBhIG1vZGVsIGZyb20gdGhlIEVNRiBFUGFja2FnZSByZWdpc3RyeQ0KIEFjdGlvblNldD1Nb2Rpc2NvIE1vZGVsIEJyb3dzZXIgQWN0aW9ucw0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gR2VuZXJpYyBNb2RlbCBCcm93c2VyIChJbmN1YmF0aW9uKQ0KK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBHZW5lcmljIE1vZGVsIEJyb3dzZXIgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIE5hbWluZ0V4dGVuc2lvblBvaW50ID0gTmFtaW5nIG9mIG1ldGFtb2RlbCBpbnN0YW5jZXMNCiBJY29uRXh0ZW5zaW9uUG9pbnQgPSBJY29ucyBmb3IgbWV0YWNsYXNzZXMNCiBPcGVuUmVzb3VyY2VJbk1vRGlzY29Ccm93c2VyQWN0aW9uID0gT3BlbiBTZWxlY3RlZCBSZXNvdXJjZSBJbiBNb0Rpc2NvIEJyb3dzZXINCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvcnMvRWNvcmVCcm93c2VyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvcnMvRWNvcmVCcm93c2VyLmphdmEKaW5kZXggYzA3N2Q0OC4uNWUxNDM2ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3JzL0Vjb3JlQnJvd3Nlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9ycy9FY29yZUJyb3dzZXIuamF2YQpAQCAtMTAsNyArMTAsOCBAQAogICogICAgTmljb2xhcyBQYXluZWF1IChNaWEtU29mdHdhcmUpIC0gRW5hYmxlIGVkaXRhYmlsaXR5DQogICogICAgTmljb2xhcyBHdXlvbWFyIChNaWEtU29mdHdhcmUpIC0gQ29kZSBTeW5jaHJvbml6YXRpb24NCiAgKiAgICBOaWNvbGFzIEd1eW9tYXIgKE1pYV9zb2Z0d2FyZSkgLSBCdWcgMzMzNjUxIFJlbW92ZSBvZiB0aGUgTW9EaXNjbyBFUGFja2FnZSB2aWV3IGFuZCBvZiB0aGUgbWV0YW1vZGVsIGJyb3dzaW5nIGJ1dHRvbg0KLSAqICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDA0MjYzIC0gRWRpdGluZ0RvbWFpblByb3ZpZGVyIGRvZXMgbm90IHdvcmsgd2hlbiB1c2luZyBJUmVzb3VyY2VFZGl0b3JJbnB1dCANCisgKiAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDQwNDI2MyAtIEVkaXRpbmdEb21haW5Qcm92aWRlciBkb2VzIG5vdCB3b3JrIHdoZW4gdXNpbmcgSVJlc291cmNlRWRpdG9ySW5wdXQNCisgKiAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3MjE4MiAtIE1pc3NpbmcgZGVidWcgaW5mb3JtYXRpb24gaW4gRWNvcmVCcm93c2VyLmhhbmRsZUNoYW5nZWRSZXNvdXJjZXMoMjYzNikNCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yczsNCiANCkBAIC05Niw2ICs5Nyw3IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQudWkudXRpbC5FZGl0VUlNYXJrZXJIZWxwZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnVpLnV0aWwuRWRpdFVJVXRpbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQudWkudmlldy5FeHRlbmRlZFByb3BlcnR5U2hlZXRQYWdlOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlLkxvZ2dlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5NZXNzYWdlczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5Nb0Rpc2NvQnJvd3NlclBsdWdpbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuYnJvd3Nlci5hY3Rpb25zLkxvYWRGYWNldHNBY3Rpb247DQpAQCAtMjYzNSw5ICsyNjM3LDE5IEBACiAJCQkJCXRyeSB7DQogCQkJCQkJcmVzb3VyY2UubG9hZChDb2xsZWN0aW9ucy5FTVBUWV9NQVApOw0KIAkJCQkJfSBjYXRjaCAoSU9FeGNlcHRpb24gZSkgew0KLQkJCQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwgTW9EaXNjb0Jyb3dzZXJQbHVnaW4uZ2V0UGx1Z2luKCkpOw0KKwkJCQkJCWZpbmFsIFVSSSB1cmkgPSByZXNvdXJjZS5nZXRVUkkoKTsNCisJCQkJCQlmaW5hbCBTdHJpbmcgdXJpc3RyID0gdXJpLnRvU3RyaW5nKCk7DQorCQkJCQkJZmluYWwgU3RyaW5nIGxvZ01zZyA9IFN0cmluZy5mb3JtYXQoDQorCQkJCQkJCQkiVGhlIE1vRGlzY28gYnJvd3NlciBmYWlsZWQgdG8gcmVsb2FkIHRoZSByZXNvdXJjZSAlcy4iLCAvLyROT04tTkxTLTEkDQorCQkJCQkJCQl1cmlzdHIpOw0KKwkJCQkJCUxvZ2dlci5sb2dFcnJvcigNCisJCQkJCQkJCWUsIGxvZ01zZyAsIE1vRGlzY29Ccm93c2VyUGx1Z2luLmdldFBsdWdpbigpKTsNCisJCQkJCQlmaW5hbCBTdHJpbmcgdXNlck1zZyA9IFN0cmluZy5mb3JtYXQoDQorCQkJCQkJCQkiJXMsIGNmLiAlcyIsIC8vJE5PTi1OTFMtMSQNCisJCQkJCQkJCU1lc3NhZ2VzLkVjb3JlQnJvd3Nlcl9lcnJvckxvYWRpbmdSZXNvdXJjZSwNCisJCQkJCQkJCXVyaXN0cik7DQogCQkJCQkJRGlhbG9nVXRpbHMub3BlbkVycm9yRGlhbG9nKGdldFNpdGUoKS5nZXRTaGVsbCgpLCBlLA0KLQkJCQkJCQkJTWVzc2FnZXMuRWNvcmVCcm93c2VyX2Vycm9yTG9hZGluZ1Jlc291cmNlKTsNCisJCQkJCQkJCXVzZXJNc2cpOw0KIAkJCQkJCWlmICghdGhpcy5yZXNvdXJjZVRvRGlhZ25vc3RpY01hcC5jb250YWluc0tleShyZXNvdXJjZSkpIHsNCiAJCQkJCQkJdGhpcy5yZXNvdXJjZVRvRGlhZ25vc3RpY01hcC5wdXQocmVzb3VyY2UsDQogCQkJCQkJCQkJYW5hbHl6ZVJlc291cmNlUHJvYmxlbXMocmVzb3VyY2UsIGUpKTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5icm93c2VyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9icm93c2VyL2V4dGVuc2lvbnMvbGlzdGVuZXJzL0RvdWJsZUNsaWNrTGlzdGVuZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZXh0ZW5zaW9ucy9saXN0ZW5lcnMvRG91YmxlQ2xpY2tMaXN0ZW5lci5qYXZhCmluZGV4IDIwZWRiYjYuLjMxY2NlZWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZXh0ZW5zaW9ucy9saXN0ZW5lcnMvRG91YmxlQ2xpY2tMaXN0ZW5lci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZXh0ZW5zaW9ucy9saXN0ZW5lcnMvRG91YmxlQ2xpY2tMaXN0ZW5lci5qYXZhCkBAIC0xMyw2ICsxMywxMSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS5hY3Rpb24uSVN0YXR1c0xpbmVNYW5hZ2VyOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzE1DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIERvdWJsZUNsaWNrTGlzdGVuZXIgew0KIA0KIAlwdWJsaWMgYWJzdHJhY3Qgdm9pZCBzeW5jaHJvbml6ZUVPYmplY3QoRU9iamVjdCBlT2JqZXQsIElTdGF0dXNMaW5lTWFuYWdlciBzdGF0dXNMaW5lTWFuYWdlcik7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY2FwYWJpbGl0aWVzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY2FwYWJpbGl0aWVzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDQ4Mzg5NzcuLmQxZGE3Y2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNhcGFiaWxpdGllcy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jYXBhYmlsaXRpZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNSArMiw1IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jYXBhYmlsaXRpZXM7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY2RvLmRlcmJ5L01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNkby5kZXJieS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBmODUxZjA4Li43ODNhYzcyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY2RvLmRlcmJ5L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jZG8uZGVyYnkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY2RvLmRlcmJ5O3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY2RvLmRlcmJ5LmludGVybmFsLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY2RvL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGU5MTgwMjYuLmQ0MjUwOWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jZG87c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jZG8uaW50ZXJuYWwuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAxOWQxZmI0Li43NmI1ODFhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlcGx1Z2luTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmU7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1DbGFzc1BhdGg6IC4KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2NvbW1vbi9jb3JlL2ludGVybmFsL3V0aWxzL0ZpbGVVdGlscy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2NvbW1vbi9jb3JlL2ludGVybmFsL3V0aWxzL0ZpbGVVdGlscy5qYXZhCmluZGV4IGMzZDA5ZmQuLmI4ZTI4MTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9jb21tb24vY29yZS9pbnRlcm5hbC91dGlscy9GaWxlVXRpbHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvY29tbW9uL2NvcmUvaW50ZXJuYWwvdXRpbHMvRmlsZVV0aWxzLmphdmEKQEAgLTEsNSArMSw1IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAwOCwgMjAxMSBNaWEtU29mdHdhcmUuDQorICogQ29weXJpZ2h0IChjKSAyMDA4LCAyMDE1IE1pYS1Tb2Z0d2FyZS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCkBAIC03LDYgKzcsNyBAQAogICoNCiAgKiBDb250cmlidXRvcnM6DQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3MDU3OCAtIFtEZXBlcmNhdGVkXSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeSANCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmludGVybmFsLnV0aWxzOw0KIA0KQEAgLTE2Niw5ICsxNjcsMTQgQEAKIAl9DQogDQogCXB1YmxpYyBzdGF0aWMgdm9pZCBjaGVja05vTWFya2VyT24oZmluYWwgSUZpbGUgZmlsZSkgdGhyb3dzIENvcmVFeGNlcHRpb24gew0KKwkJY2hlY2tOb01vcmVNYXJrZXJPbihmaWxlLCAwKTsNCisJfQ0KKw0KKwlwdWJsaWMgc3RhdGljIHZvaWQgY2hlY2tOb01vcmVNYXJrZXJPbihmaW5hbCBJRmlsZSBmaWxlLCBmaW5hbCBpbnQgbmJNYXJrZXJzKQ0KKwkJCXRocm93cyBDb3JlRXhjZXB0aW9uIHsNCiAJCUlNYXJrZXJbXSBtYXJrZXJzID0gbnVsbDsNCiAJCW1hcmtlcnMgPSBmaWxlLmZpbmRNYXJrZXJzKElNYXJrZXIuUFJPQkxFTSwgdHJ1ZSwgSVJlc291cmNlLkRFUFRIX0lORklOSVRFKTsNCi0JCWlmIChtYXJrZXJzLmxlbmd0aCAhPSAwKSB7DQorCQlpZiAobWFya2Vycy5sZW5ndGggPiBuYk1hcmtlcnMpIHsNCiAJCQlNdWx0aVN0YXR1cyBtdWx0aVN0YXR1cyA9IG5ldyBNdWx0aVN0YXR1cyhDb21tb25Nb2Rpc2NvQWN0aXZhdG9yLlBMVUdJTl9JRCwgMCwNCiAJCQkJCSJNYXJrZXJzIGZvdW5kIG9uOiAiIC8vJE5PTi1OTFMtMSQNCiAJCQkJCQkJKyBmaWxlLCBuZXcgRXhjZXB0aW9uKCkpOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9jb21tb24vY29yZS9pbnRlcm5hbC91dGlscy9Qcm9qZWN0VXRpbHMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9jb21tb24vY29yZS9pbnRlcm5hbC91dGlscy9Qcm9qZWN0VXRpbHMuamF2YQppbmRleCBjZGU5ZDRlLi44MDA3Mjc4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvY29tbW9uL2NvcmUvaW50ZXJuYWwvdXRpbHMvUHJvamVjdFV0aWxzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2NvbW1vbi9jb3JlL2ludGVybmFsL3V0aWxzL1Byb2plY3RVdGlscy5qYXZhCkBAIC0xNyw2ICsxNyw3IEBACiBpbXBvcnQgamF2YS5pby5GaWxlOw0KIGltcG9ydCBqYXZhLmlvLklPRXhjZXB0aW9uOw0KIGltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtOw0KK2ltcG9ydCBqYXZhLm5ldC5VUkw7DQogaW1wb3J0IGphdmEudXRpbC5BcnJheUxpc3Q7DQogaW1wb3J0IGphdmEudXRpbC5BcnJheXM7DQogaW1wb3J0IGphdmEudXRpbC5FbnVtZXJhdGlvbjsNCkBAIC01OCw2ICs1OSw3IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuamR0LmNvcmUuSmF2YUNvcmU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpkdC5jb3JlLkphdmFNb2RlbEV4Y2VwdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KYXZhUnVudGltZTsNCitpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS5zZXJ2aWNlLmRhdGFsb2NhdGlvbi5Mb2NhdGlvbjsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZTsNCiANCiBpbXBvcnQgY29tLmlibS5pY3UubGFuZy5VQ2hhcmFjdGVyOw0KQEAgLTI4Niw4ICsyODgsMjAgQEAKIAkJcHJvamVjdC5vcGVuKG5ldyBOdWxsUHJvZ3Jlc3NNb25pdG9yKCkpOw0KIAkJWmlwRmlsZSB6aXAgPSBudWxsOw0KIAkJdHJ5IHsNCi0JCQlTdHJpbmcgYnVuZGxlUGF0aCA9IGJ1bmRsZS5nZXRMb2NhdGlvbigpOw0KLQkJCVN0cmluZyBmaWxlUGF0aCA9IGJ1bmRsZVBhdGgucmVwbGFjZUZpcnN0KCJecmVmZXJlbmNlOmZpbGU6IiwgIiIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQNCisJCQlmaW5hbCBTdHJpbmcgYnVuZGxlUGF0aCA9IGJ1bmRsZS5nZXRMb2NhdGlvbigpOw0KKwkJCVN0cmluZyBmaWxlUGF0aDsNCisJCQlmaW5hbCBMb2NhdGlvbiBwbGF0Zm9ybUluc3RhbGwgPSBQbGF0Zm9ybS5nZXRJbnN0YWxsTG9jYXRpb24oKTsNCisJCQlmaW5hbCBVUkwgdXJsID0gcGxhdGZvcm1JbnN0YWxsLmdldFVSTCgpOw0KKwkJCWZpbmFsIFN0cmluZyBpbnN0YWxsUGF0aCA9IHVybC50b1N0cmluZygpLnJlcGxhY2VBbGwoIi4qZmlsZToiLCAiIik7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJA0KKwkJCWlmIChidW5kbGVQYXRoDQorCQkJCQkuc3RhcnRzV2l0aCgiaW5pdGlhbEByZWZlcmVuY2U6ZmlsZToiKSkgeyAvLyROT04tTkxTLTEkDQorCQkJCS8vIGNhcyBkJ3VuIGNoZW1pbiByZWxhdGlmDQorCQkJCWZpbGVQYXRoID0gYnVuZGxlUGF0aC5yZXBsYWNlQWxsKA0KKwkJCQkJCSJpbml0aWFsQHJlZmVyZW5jZTpmaWxlOiIsIC8vJE5PTi1OTFMtMSQNCisJCQkJCQlpbnN0YWxsUGF0aCk7DQorCQkJfSBlbHNlIHsNCisJCQkJZmlsZVBhdGggPSBidW5kbGVQYXRoLnJlcGxhY2VGaXJzdCgiXnJlZmVyZW5jZTpmaWxlOiIsICIiKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQorCQkJfQ0KIAkJCUZpbGUgYnVuZGxlRmlsZSA9IG5ldyBGaWxlKGZpbGVQYXRoKTsNCiAJCQlpZiAoYnVuZGxlRmlsZS5pc0RpcmVjdG9yeSgpKSB7DQogCQkJCUZvbGRlclV0aWxzLmNvcHlEaXJlY3RvcnkoYnVuZGxlRmlsZSwgcHJvamVjdC5nZXRMb2NhdGlvbigpLnRvRmlsZSgpLCBmaWx0ZXIpOw0KQEAgLTMxMCw3ICszMjQsNyBAQAogCQkJCQkJCQkJZi5jcmVhdGUodHJ1ZSwgdHJ1ZSwgbmV3IE51bGxQcm9ncmVzc01vbml0b3IoKSk7DQogCQkJCQkJCQl9DQogCQkJCQkJCX0gZWxzZSB7DQotCQkJCQkJCQlJbnB1dFN0cmVhbSBpcyA9IHppcC5nZXRJbnB1dFN0cmVhbSh6aXBFbnRyeSk7DQorCQkJCQkJCQlJbnB1dFN0cmVhbSBpbnB1dFN0cmVhbSA9IHppcC5nZXRJbnB1dFN0cmVhbSh6aXBFbnRyeSk7DQogCQkJCQkJCQlJRmlsZSBmID0gcHJvamVjdC5nZXRGaWxlKHppcEVudHJ5LmdldE5hbWUoKSk7DQogCQkJCQkJCQlpZiAoIWYuZ2V0UGFyZW50KCkuZXhpc3RzKCkpIHsNCiAJCQkJCQkJCQlpZiAoZi5nZXRQYXJlbnQoKSBpbnN0YW5jZW9mIElGb2xkZXIpIHsNCkBAIC0zMjEsNyArMzM1LDcgQEAKIAkJCQkJCQkJaWYgKGYuZXhpc3RzKCkpIHsNCiAJCQkJCQkJCQlmLmRlbGV0ZSh0cnVlLCBuZXcgTnVsbFByb2dyZXNzTW9uaXRvcigpKTsNCiAJCQkJCQkJCX0NCi0JCQkJCQkJCWYuY3JlYXRlKGlzLCB0cnVlLCBuZXcgTnVsbFByb2dyZXNzTW9uaXRvcigpKTsNCisJCQkJCQkJCWYuY3JlYXRlKGlucHV0U3RyZWFtLCB0cnVlLCBuZXcgTnVsbFByb2dyZXNzTW9uaXRvcigpKTsNCiAJCQkJCQkJfQ0KIAkJCQkJCX0NCiAJCQkJCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2NvbW1vbi9jb3JlL2xvZ2dpbmcvTW9EaXNjb0xvZ2dlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2NvbW1vbi9jb3JlL2xvZ2dpbmcvTW9EaXNjb0xvZ2dlci5qYXZhCmluZGV4IDMzYzdiYzUuLmMyNTY4NDggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9jb21tb24vY29yZS9sb2dnaW5nL01vRGlzY29Mb2dnZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvY29tbW9uL2NvcmUvbG9nZ2luZy9Nb0Rpc2NvTG9nZ2VyLmphdmEKQEAgLTI0LDggKzI0LDEwIEBACiAgKiBIZWxwZXIgZm9yIGxvZ2dpbmcgdXNpbmcgRWNsaXBzZSBBUEkNCiAgKiANCiAgKiBAYXV0aG9yIGZnaXF1ZWwNCi0gKiANCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlLkxvZ2dlciwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyNQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIE1vRGlzY29Mb2dnZXIgew0KIA0KIAlwcml2YXRlIE1vRGlzY29Mb2dnZXIoKSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLnVpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDFkMjY5ZmEuLjU1YmY2MjggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24udWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi51aS5pbnRlcm5hbC5Nb0Rpc2NvQ29tbW9uVUlQbHVnaW4KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKICBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2N2EzMGVlLi41YjhkNWQyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTMsNyArMyw3IEBACiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyO3NpbmdsZXRvbjo9dHJ1ZQ0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIvcGx1Z2luLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL3BsdWdpbi5wcm9wZXJ0aWVzCmluZGV4IDQ2NGZjZWUuLmI1Y2NlZWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci9wbHVnaW4ucHJvcGVydGllcwpAQCAtOSwxMCArOSwxMCBAQAogIyAgICBHYWJyaWVsIEJhcmJpZXIgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogIyBOTFNfTUVTU0FHRUZPUk1BVF9WQVINCi1wbHVnaW5OYW1lPU1vRGlzY28gTWFuYWdlciBvZiBkaXNjb3ZlcmVycyAoSW5jdWJhdGlvbikNCitwbHVnaW5OYW1lPU1vRGlzY28gTWFuYWdlciBvZiBkaXNjb3ZlcmVycyAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pDQogcHJvdmlkZXJOYW1lPUVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIA0KIGV4dGVuc2lvbi5uYW1lID0gTW9EaXNjbw0KLWxhdW5jaENvbmZpZ3VyYXRpb25UeXBlLm5hbWUgPSBNb0Rpc2NvIERpc2NvdmVyZXINCi1leHRlbnNpb24tcG9pbnQubmFtZSA9IFRvIGFkZCBkaXNjb3ZlcmVycw0KLWV4dGVuc2lvbi1wb2ludC5uYW1lLjAgPSBEaXNjb3ZlcmVycyBjZWxsIGNvbnRlbnQgZWRpdG9ycwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2xhdW5jaENvbmZpZ3VyYXRpb25UeXBlLm5hbWUgPSBNb0Rpc2NvIERpc2NvdmVyZXIgKERlcHJlY2F0ZWQpDQorZXh0ZW5zaW9uLXBvaW50Lm5hbWUgPSBUbyBhZGQgZGlzY292ZXJlcnMgKERlcHJlY2F0ZWQpDQorZXh0ZW5zaW9uLXBvaW50Lm5hbWUuMCA9IERpc2NvdmVyZXJzIGNlbGwgY29udGVudCBlZGl0b3JzIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIvc2NoZW1hL2Rpc2NvdmVyZXJzLmV4c2QgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL3NjaGVtYS9kaXNjb3ZlcmVycy5leHNkCmluZGV4IGE2YzUzZGIuLjQyMDM2NTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIvc2NoZW1hL2Rpc2NvdmVyZXJzLmV4c2QKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci9zY2hlbWEvZGlzY292ZXJlcnMuZXhzZApAQCAtMywxMCArMywxMCBAQAogPHNjaGVtYSB0YXJnZXROYW1lc3BhY2U9Im9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmRpc2NvdmVyZXJzIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KIDxhbm5vdGF0aW9uPg0KICAgICAgIDxhcHBpbmZvPg0KLSAgICAgICAgIDxtZXRhLnNjaGVtYSBwbHVnaW49Im9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmRpc2NvdmVyZXJzIiBpZD0iZGlzY292ZXJlciIgbmFtZT0iQWRkIGEgZGlzY292ZXJlciIvPg0KKyAgICAgICAgIDxtZXRhLnNjaGVtYSBwbHVnaW49Im9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmRpc2NvdmVyZXJzIiBpZD0iZGlzY292ZXJlciIgbmFtZT0iQWRkIGEgZGlzY292ZXJlciAoRGVwcmVjYXRlZCkiLz4NCiAgICAgICA8L2FwcGluZm8+DQogICAgICAgPGRvY3VtZW50YXRpb24+DQotICAgICAgICAgVG8gYWRkIGRpc2NvdmVyZXIgaW4gTW9EaXNjbyBmcmFtZXdvcmsuDQorICAgICAgICAgVG8gYWRkIGRpc2NvdmVyZXIgaW4gTW9EaXNjbyBmcmFtZXdvcmsuIChEZXByZWNhdGVkKQ0KICAgICAgIDwvZG9jdW1lbnRhdGlvbj4NCiAgICA8L2Fubm90YXRpb24+DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZGlzY292ZXJ5bWFuYWdlci9EaXNjb3ZlcmVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnltYW5hZ2VyL0Rpc2NvdmVyZXIuamF2YQppbmRleCA2Y2ZmYTBiLi43NGNmZTk5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnltYW5hZ2VyL0Rpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnltYW5hZ2VyL0Rpc2NvdmVyZXIuamF2YQpAQCAtMjMsNyArMjMsOCBAQAogICogY29tcG9uZW50IHRoYXQgaW5qZWN0cyBpbmZvcm1hdGlvbiBpbnRvIGEgbW9kZWwgdG8gcmVwcmVzZW50IHBoeXNpY2FsDQogICogZWxlbWVudHMgKGEgc291cmNlIGZpbGUgaXMgY29uc2lkZXJlZCBhcyBhIHBoeXNpY2FsIGVsZW1lbnQpLg0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlIGZyYW1ld29yaw0KKyAqIEBkZXByZWNhdGVkIHVzZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlIGZyYW1ld29yaywgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTM0Mzg0MA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAxMDUwMGQ5Li4wYzJkN2MyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlLmludGVybmFsLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCAwNjFlZGJiLi4yMjIzYzlhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xMiw2ICsxMiw2IEBACiBleHRlbnNpb24ubmFtZSA9IGZhY2V0QnVpbGRlcg0KIGV4dGVuc2lvbi1wb2ludC5uYW1lID0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQucmVnaXN0cmF0aW9uDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBGYWNldCBDb3JlIChJbmN1YmF0aW9uKQ0KK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBGYWNldCBDb3JlIChEZXByZWNhdGVkLCBoYXMgdG8gYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0KSAoSW5jdWJhdGlvbikNCiBleHRlbnNpb24tcG9pbnQubmFtZS4wID0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQucmVnaXN0cmF0aW9uDQogZXh0ZW5zaW9uLXBvaW50Lm5hbWUuMSA9IEZhY2V0IHJlZnJlc2ggc3RyYXRlZ3kKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL0ZhY2V0Q29udGV4dC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9GYWNldENvbnRleHQuamF2YQppbmRleCBjMzAwZjQ2Li43OTY4MTU5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL0ZhY2V0Q29udGV4dC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvRmFjZXRDb250ZXh0LmphdmEKQEAgLTQ4LDggKzQ4LDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgR3JlZ29pcmUgRFVQRQ0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0Q29udGV4dCB7DQogDQogCXByaXZhdGUgZmluYWwgU2V0PEZhY2V0PiBhcHBsaWVkRmFjZXRzID0gbmV3IEhhc2hTZXQ8RmFjZXQ+KCk7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9GYWNldENvbnRleHRMaXN0ZW5lci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9GYWNldENvbnRleHRMaXN0ZW5lci5qYXZhCmluZGV4IDhmYTYyNjcuLmNlYWMwOTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvRmFjZXRDb250ZXh0TGlzdGVuZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL0ZhY2V0Q29udGV4dExpc3RlbmVyLmphdmEKQEAgLTEyLDYgKzEyLDEwIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXQ7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZhY2V0Q29udGV4dExpc3RlbmVyIHsNCiAJdm9pZCBmYWNldEFkZGVkKEZhY2V0IGZhY2V0KTsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL0ZhY2V0U2V0Q2F0YWxvZy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9GYWNldFNldENhdGFsb2cuamF2YQppbmRleCA4YjVlOThkLi5hMzg0ZmE0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL0ZhY2V0U2V0Q2F0YWxvZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvRmFjZXRTZXRDYXRhbG9nLmphdmEKQEAgLTMyLDYgKzMyLDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudmFsaWRhdGlvbi5FVmFsaWRhdG9yQWRhcHRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS5Nb2RlbFF1ZXJ5U2V0Q2F0YWxvZzsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBGYWNldFNldENhdGFsb2cgZXh0ZW5kcyBFY29yZUNhdGFsb2cgaW1wbGVtZW50cyBNb2Rpc2NvQ2F0YWxvZ0NoYW5nZUxpc3RlbmVyIHsNCiANCiAJcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVHSVNUUkFUSU9OX0VYVEVOU0lPTl9QT0lOVF9JRCA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5yZWdpc3RyYXRpb24iOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9hZGFwdGVycy9pbnN0YW5jZXMvTWV0YWNsYXNzSW5zdGFuY2VzQWRhcHRlckZhY3RvcnlXaXRoRmFjZXQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvYWRhcHRlcnMvaW5zdGFuY2VzL01ldGFjbGFzc0luc3RhbmNlc0FkYXB0ZXJGYWN0b3J5V2l0aEZhY2V0LmphdmEKaW5kZXggMjkwNDdmOC4uODg2NjNjMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9hZGFwdGVycy9pbnN0YW5jZXMvTWV0YWNsYXNzSW5zdGFuY2VzQWRhcHRlckZhY3RvcnlXaXRoRmFjZXQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2FkYXB0ZXJzL2luc3RhbmNlcy9NZXRhY2xhc3NJbnN0YW5jZXNBZGFwdGVyRmFjdG9yeVdpdGhGYWNldC5qYXZhCkBAIC0xNyw2ICsxNywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmludGVybmFsLmFkYXB0ZXJzLmluc3RhbmNlcy5NZXRhY2xhc3NJbnN0YW5jZXM7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUuRmFjZXRDb250ZXh0Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIE1ldGFjbGFzc0luc3RhbmNlc0FkYXB0ZXJGYWN0b3J5V2l0aEZhY2V0IGV4dGVuZHMgQWRhcHRlckZhY3RvcnlJbXBsIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgTWV0YWNsYXNzSW5zdGFuY2VzQWRhcHRlckZhY3RvcnlXaXRoRmFjZXQgSU5TVEFOQ0UgPSBuZXcgTWV0YWNsYXNzSW5zdGFuY2VzQWRhcHRlckZhY3RvcnlXaXRoRmFjZXQoKTsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2FkYXB0ZXJzL2luc3RhbmNlcy9NZXRhY2xhc3NJbnN0YW5jZXNBZGFwdGVyV2l0aEZhY2V0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2FkYXB0ZXJzL2luc3RhbmNlcy9NZXRhY2xhc3NJbnN0YW5jZXNBZGFwdGVyV2l0aEZhY2V0LmphdmEKaW5kZXggNjI0MjhkMS4uZTFlMmViNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9hZGFwdGVycy9pbnN0YW5jZXMvTWV0YWNsYXNzSW5zdGFuY2VzQWRhcHRlcldpdGhGYWNldC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvYWRhcHRlcnMvaW5zdGFuY2VzL01ldGFjbGFzc0luc3RhbmNlc0FkYXB0ZXJXaXRoRmFjZXQuamF2YQpAQCAtNDUsNyArNDUsOSBAQAogICogTWV0YWNsYXNzSW5zdGFuY2VzQWRhcHRlckZhY3RvcnlXaXRoRmFjZXQuZ2V0SW5zdGFuY2UoKS5zZXRGYWNldENvbnRleHQoZmFjZXRDb250ZXh0KTs8YnI+DQogICogTWV0YWNsYXNzSW5zdGFuY2VzIGluc3RhbmNlcyA9IChNZXRhY2xhc3NJbnN0YW5jZXMpIE1ldGFjbGFzc0luc3RhbmNlc0FkYXB0ZXJGYWN0b3J5V2l0aEZhY2V0LmdldEluc3RhbmNlKCkuYWRhcHQocmVzb3VyY2UsIE1ldGFjbGFzc0luc3RhbmNlcy5jbGFzcyk7DQogICogPC9jb2RlPg0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1ldGFjbGFzc0luc3RhbmNlc0FkYXB0ZXJXaXRoRmFjZXQgZXh0ZW5kcyBNZXRhY2xhc3NJbnN0YW5jZXNBZGFwdGVyIGltcGxlbWVudHMNCiAJCUZhY2V0Q29udGV4dExpc3RlbmVyIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2V4Y2VwdGlvbi9Nb2Rpc2NvRmFjZXRFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXhjZXB0aW9uL01vZGlzY29GYWNldEV4Y2VwdGlvbi5qYXZhCmluZGV4IGJjZTc2ZDYuLjBmNjNlNjIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXhjZXB0aW9uL01vZGlzY29GYWNldEV4Y2VwdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXhjZXB0aW9uL01vZGlzY29GYWNldEV4Y2VwdGlvbi5qYXZhCkBAIC0xMiw3ICsxMiw5IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIEdyZWdvaXJlIERVUEUgKE1pYS1Tb2Z0d2FyZSkge0Bpbmhlcml0RG9jfQ0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1vZGlzY29GYWNldEV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbiB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXhjZXB0aW9uL1N0cnVjdHVyYWxDb25zdHJhaW50VmlvbGF0aW9uRXhjZXB0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2V4Y2VwdGlvbi9TdHJ1Y3R1cmFsQ29uc3RyYWludFZpb2xhdGlvbkV4Y2VwdGlvbi5qYXZhCmluZGV4IDZhYzY2MjAuLmU4MzUzNzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXhjZXB0aW9uL1N0cnVjdHVyYWxDb25zdHJhaW50VmlvbGF0aW9uRXhjZXB0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9leGNlcHRpb24vU3RydWN0dXJhbENvbnN0cmFpbnRWaW9sYXRpb25FeGNlcHRpb24uamF2YQpAQCAtMTIsNyArMTIsOSBAQAogDQogLyoqDQogICogQGF1dGhvciBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpIHtAaW5oZXJpdERvY30NCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBTdHJ1Y3R1cmFsQ29uc3RyYWludFZpb2xhdGlvbkV4Y2VwdGlvbiBleHRlbmRzIE1vZGlzY29GYWNldEV4Y2VwdGlvbiB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXh0ZW5zaW9ucy9SZWZyZXNoU3RyYXRlZ3kuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvZXh0ZW5zaW9ucy9SZWZyZXNoU3RyYXRlZ3kuamF2YQppbmRleCA3MTYyODEzLi5jYzVmYjEyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2V4dGVuc2lvbnMvUmVmcmVzaFN0cmF0ZWd5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9leHRlbnNpb25zL1JlZnJlc2hTdHJhdGVneS5qYXZhCkBAIC0xNiw2ICsxNiwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgUmVmcmVzaFN0cmF0ZWd5IHsNCiAJLyoqDQogCSAqIFRoaXMgbWV0aG9kIG11c3QgY29tcHV0ZSBhbmQgcmV0dXJuIHRoZSBsaXN0IG9mIGVsZW1lbnRzIGZvciB3aGljaCBhDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKaW5kZXggYTQ5MzEwYS4uM2RhM2U5MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2ludGVybmFsL0FjdGl2YXRvci5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2ludGVybmFsL0ZhY2V0QnVpbGRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9GYWNldEJ1aWxkZXIuamF2YQppbmRleCBkNzNlMzhlLi43ZDMzOTM0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2ludGVybmFsL0ZhY2V0QnVpbGRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvRmFjZXRCdWlsZGVyLmphdmEKQEAgLTE2LDYgKzE2LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUuaW50ZXJuYWwuYnVpbGRlci5Nb0Rpc2NvQ2F0YWxvZ0J1aWxkZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUuRmFjZXRTZXRDYXRhbG9nOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0QnVpbGRlciBleHRlbmRzIE1vRGlzY29DYXRhbG9nQnVpbGRlciB7DQogDQogCXByb3RlY3RlZCBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEVfRVhURU5TSU9OID0gImZhY2V0U2V0IjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvRmFjZXRQcm90b2NvbEV4dGVuc2lvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9GYWNldFByb3RvY29sRXh0ZW5zaW9uLmphdmEKaW5kZXggZDdhOTQ5OS4uMGVhMTI5MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9GYWNldFByb3RvY29sRXh0ZW5zaW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9GYWNldFByb3RvY29sRXh0ZW5zaW9uLmphdmEKQEAgLTE0LDYgKzE0LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUuaW50ZXJuYWwucHJvdG9jb2wuSU1vZGlzY29Qcm90b2NvbEV4dGVuc2lvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS5GYWNldFNldENhdGFsb2c7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRmFjZXRQcm90b2NvbEV4dGVuc2lvbiBpbXBsZW1lbnRzIElNb2Rpc2NvUHJvdG9jb2xFeHRlbnNpb24gew0KIA0KIAkvKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvTWVzc2FnZXMuamF2YQppbmRleCAxZDIwMjJmLi40MzM4MDc5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2ludGVybmFsL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhCkBAIC0xMiw2ICsxMiwxMCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS5pbnRlcm5hbC5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgRmFjZXRCdWlsZGVyX2ZhY2V0U2V0Ow0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9SZWZyZXNoU3RyYXRlZ2llc1JlZ2lzdHJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2ludGVybmFsL2V4dGVuc2lvbnMvUmVmcmVzaFN0cmF0ZWdpZXNSZWdpc3RyeS5qYXZhCmluZGV4IDYwOGNhOTcuLjBiYzdmMmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvZXh0ZW5zaW9ucy9SZWZyZXNoU3RyYXRlZ2llc1JlZ2lzdHJ5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC9leHRlbnNpb25zL1JlZnJlc2hTdHJhdGVnaWVzUmVnaXN0cnkuamF2YQpAQCAtMjMsNyArMjMsMTEgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlLmV4dGVuc2lvbnMuUmVmcmVzaFN0cmF0ZWd5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlLmludGVybmFsLkFjdGl2YXRvcjsNCiANCi0vKiogUmVnaXN0cnkgZm9yIHRoZSAiZmFjZXRSZWZyZXNoU3RyYXRlZ3kiIGV4dGVuc2lvbiBwb2ludCAqLw0KKy8qKg0KKyAqIFJlZ2lzdHJ5IGZvciB0aGUgImZhY2V0UmVmcmVzaFN0cmF0ZWd5IiBleHRlbnNpb24gcG9pbnQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBSZWZyZXNoU3RyYXRlZ2llc1JlZ2lzdHJ5IGV4dGVuZHMgQWJzdHJhY3RSZWdpc3RyeSB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBFWFRFTlNJT05fUE9JTlRfTkFNRVNQQUNFID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUiOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC91dGlscy9RdWVyeVRvRmFjZXRTZXQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2NvcmUvaW50ZXJuYWwvdXRpbHMvUXVlcnlUb0ZhY2V0U2V0LmphdmEKaW5kZXggNmE3YjI4ZS4uODg0NGIzMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvY29yZS9pbnRlcm5hbC91dGlscy9RdWVyeVRvRmFjZXRTZXQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9jb3JlL2ludGVybmFsL3V0aWxzL1F1ZXJ5VG9GYWNldFNldC5qYXZhCkBAIC0zOCw3ICszOCw5IEBACiAgKiBxdWVyeVNldCdzIG5hbWUgZmFjZXQncyBuYW1lIGluIHRoZSBGYWNldFNldCBhcmUgZGlyZWN0bHkgdGhlaXIgY29ycmVzcG9uZGluZw0KICAqIG5hbWUgaW4gdGhlIFF1ZXJ5U2V0DQogICogDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgUXVlcnlUb0ZhY2V0U2V0IHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgU3RyaW5nIG5zVXJpID0gImh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvRmFjZXRTZXQvIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDE0MWQ4MGMuLmQ3MTA4Y2EgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0O3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC5wcm92aWRlci5GYWNldEVkaXRQbHVnaW4kSW1wbGVtZW50YXRpb24NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggNTZmZTQzNy4uZWJhMTRhNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9wbHVnaW4ucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC04LDcgKzgsNyBAQAogIyBDb250cmlidXRvcnM6DQogIyAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLXBsdWdpbk5hbWUgPSBNb0Rpc2NvIEZhY2V0IEVkaXQgU3VwcG9ydCAoSW5jdWJhdGlvbikNCitwbHVnaW5OYW1lID0gTW9EaXNjbyBGYWNldCBFZGl0IFN1cHBvcnQgKERlcHJlY2F0ZWQsIGhhcyB0byBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZSA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIA0KIF9VSV9DcmVhdGVDaGlsZF90ZXh0ID0gezB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldEF0dHJpYnV0ZUl0ZW1Qcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldEF0dHJpYnV0ZUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDEyN2FjYzIuLmZlMjIyY2MgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRBdHRyaWJ1dGVJdGVtUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0QXR0cmlidXRlSXRlbVByb3ZpZGVyLmphdmEKQEAgLTQwLDcgKzQwLDkgQEAKICAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0QXR0cmlidXRlSXRlbVByb3ZpZGVyDQogCWV4dGVuZHMgRUF0dHJpYnV0ZUl0ZW1Qcm92aWRlcg0KIAlpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldEVkaXRQbHVnaW4uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRFZGl0UGx1Z2luLmphdmEKaW5kZXggZjlmNTI0ZC4uMzcyY2Y5ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldEVkaXRQbHVnaW4uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0RWRpdFBsdWdpbi5qYXZhCkBAIC0xNSwxMSArMTUsOCBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0LnByb3ZpZGVyOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLkVNRlBsdWdpbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlJlc291cmNlTG9jYXRvcjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnByb3ZpZGVyLkVjb3JlRWRpdFBsdWdpbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC5wcm92aWRlci5RdWVyeUVkaXRQbHVnaW47DQogDQogLyoqDQpAQCAtMjcsNyArMjQsOSBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgRmFjZXRFZGl0UGx1Z2luIGV4dGVuZHMgRU1GUGx1Z2luIHsNCiAJLyoqDQogCSAqIEtlZXAgdHJhY2sgb2YgdGhlIHNpbmdsZXRvbi4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0SXRlbVByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNjcyYWMwZi4uODRkYTc2OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldEl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRJdGVtUHJvdmlkZXIuamF2YQpAQCAtNDIsNyArNDIsOSBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRmFjZXRJdGVtUHJvdmlkZXIgZXh0ZW5kcyBFQ2xhc3NJdGVtUHJvdmlkZXIgaW1wbGVtZW50cw0KIAkJSUVkaXRpbmdEb21haW5JdGVtUHJvdmlkZXIsIElTdHJ1Y3R1cmVkSXRlbUNvbnRlbnRQcm92aWRlciwNCiAJCUlUcmVlSXRlbUNvbnRlbnRQcm92aWRlciwgSUl0ZW1MYWJlbFByb3ZpZGVyLCBJSXRlbVByb3BlcnR5U291cmNlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0SXRlbVByb3ZpZGVyQWRhcHRlckZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IGM2YjgyZDEuLjA0MmRkMWQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0yMCw3ICsyMCw2IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuQWRhcHRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmllcjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuQ2hhbmdlTm90aWZpZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLkNvbXBvc2VhYmxlQWRhcHRlckZhY3Rvcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLkNvbXBvc2VkQWRhcHRlckZhY3Rvcnk7DQpAQCAtMzIsNyArMzEsNiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLklOb3RpZnlDaGFuZ2VkTGlzdGVuZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLklTdHJ1Y3R1cmVkSXRlbUNvbnRlbnRQcm92aWRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSVRyZWVJdGVtQ29udGVudFByb3ZpZGVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51dGlsLkZhY2V0QWRhcHRlckZhY3Rvcnk7DQogDQogLyoqDQpAQCAtNDMsNyArNDEsOSBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRmFjZXRJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeSBleHRlbmRzIEZhY2V0QWRhcHRlckZhY3RvcnkgaW1wbGVtZW50cyBDb21wb3NlYWJsZUFkYXB0ZXJGYWN0b3J5LCBJQ2hhbmdlTm90aWZpZXIsIElEaXNwb3NhYmxlIHsNCiAJLyoqDQogCSAqIFRoaXMga2VlcHMgdHJhY2sgb2YgdGhlIHJvb3QgYWRhcHRlciBmYWN0b3J5IHRoYXQgZGVsZWdhdGVzIHRvIHRoaXMgYWRhcHRlciBmYWN0b3J5Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRSZWZlcmVuY2VJdGVtUHJvdmlkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRSZWZlcmVuY2VJdGVtUHJvdmlkZXIuamF2YQppbmRleCA1YWVkYzEzLi5kNjBlOTYwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0UmVmZXJlbmNlSXRlbVByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldFJlZmVyZW5jZUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0zOSw3ICszOSw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFJlZmVyZW5jZUl0ZW1Qcm92aWRlcg0KIAlleHRlbmRzIEVSZWZlcmVuY2VJdGVtUHJvdmlkZXINCiAJaW1wbGVtZW50cw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRTZXRJdGVtUHJvdmlkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRTZXRJdGVtUHJvdmlkZXIuamF2YQppbmRleCAzMjgxOWE5Li5iODUxMmQyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0U2V0SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9GYWNldFNldEl0ZW1Qcm92aWRlci5qYXZhCkBAIC00Myw3ICs0Myw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFNldEl0ZW1Qcm92aWRlcg0KIAlleHRlbmRzIEVQYWNrYWdlSXRlbVByb3ZpZGVyDQogCWltcGxlbWVudHMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL0ZhY2V0U3RydWN0dXJhbEZlYXR1cmVJdGVtUHJvdmlkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IGEyNDk1NWQuLjlkMGZkNTMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZUl0ZW1Qcm92aWRlci5qYXZhCkBAIC0zNiw3ICszNiw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFN0cnVjdHVyYWxGZWF0dXJlSXRlbVByb3ZpZGVyDQogCWV4dGVuZHMgSXRlbVByb3ZpZGVyQWRhcHRlcg0KIAlpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9TaG9ydGN1dEl0ZW1Qcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdC9wcm92aWRlci9TaG9ydGN1dEl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IGQ2NmQ5NzcuLjFkZmU0ODYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXQvcHJvdmlkZXIvU2hvcnRjdXRJdGVtUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0L3Byb3ZpZGVyL1Nob3J0Y3V0SXRlbVByb3ZpZGVyLmphdmEKQEAgLTIwLDE0ICsyMCwxMCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5LkFkYXB0ZXJGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5SZXNvdXJjZUxvY2F0b3I7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FU3RydWN0dXJhbEZlYXR1cmU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FY29yZUZhY3Rvcnk7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5wcm92aWRlci5FUmVmZXJlbmNlSXRlbVByb3ZpZGVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5Db21wb3NlYWJsZUFkYXB0ZXJGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JRWRpdGluZ0RvbWFpbkl0ZW1Qcm92aWRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSUl0ZW1MYWJlbFByb3ZpZGVyOw0KQEAgLTM2LDcgKzMyLDYgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JU3RydWN0dXJlZEl0ZW1Db250ZW50UHJvdmlkZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLklUcmVlSXRlbUNvbnRlbnRQcm92aWRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuVmlld2VyTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldEZhY3Rvcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LkZhY2V0UGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuU2hvcnRjdXQ7DQpAQCAtNDYsNyArNDEsOSBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgU2hvcnRjdXRJdGVtUHJvdmlkZXINCiAJZXh0ZW5kcyBFUmVmZXJlbmNlSXRlbVByb3ZpZGVyDQogCWltcGxlbWVudHMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3IvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3IvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNmQ0YjcxNC4uNWJhZWI2NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3I7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3IucHJlc2VudGF0aW9uLkZhY2V0RWRpdG9yUGx1Z2luJEltcGxlbWVudGF0aW9uDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9wbHVnaW4ucHJvcGVydGllcwppbmRleCA3YmIzYzgyLi5lNDFkMTQwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3IvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC04LDcgKzgsNyBAQAogIyBDb250cmlidXRvcnM6DQogIyAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLXBsdWdpbk5hbWUgPSBNb0Rpc2NvIEZhY2V0IEVkaXRvciAoSW5jdWJhdGlvbikNCitwbHVnaW5OYW1lID0gTW9EaXNjbyBGYWNldCBFZGl0b3IgKERlcHJlY2F0ZWQsIGhhcyB0byBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZSA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIA0KIF9VSV9GYWNldEVkaXRvcl9tZW51ID0gJkZhY2V0IEVkaXRvcg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9NZXNzYWdlcy5qYXZhCmluZGV4IGQ0M2M4ZTYuLjQ3YjhkNjEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0b3IvTWVzc2FnZXMuamF2YQpAQCAtMTIsNiArMTIsMTAgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgRmFjZXRFZGl0b3JfRWRpdGlvbjsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRBY3Rpb25CYXJDb250cmlidXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0b3IvcHJlc2VudGF0aW9uL0ZhY2V0QWN0aW9uQmFyQ29udHJpYnV0b3IuamF2YQppbmRleCAzMTUxZTExLi5lOTM3YzY0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRBY3Rpb25CYXJDb250cmlidXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9GYWNldEFjdGlvbkJhckNvbnRyaWJ1dG9yLmphdmEKQEAgLTUxLDcgKzUxLDkgQEAKICAqIGJlZ2luLXVzZXItZG9jIC0tPiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRmFjZXRBY3Rpb25CYXJDb250cmlidXRvciBleHRlbmRzDQogCQlFZGl0aW5nRG9tYWluQWN0aW9uQmFyQ29udHJpYnV0b3IgaW1wbGVtZW50cyBJU2VsZWN0aW9uQ2hhbmdlZExpc3RlbmVyIHsNCiAJLyoqDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0b3IvcHJlc2VudGF0aW9uL0ZhY2V0RWRpdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRFZGl0b3IuamF2YQppbmRleCA0MDhhYzM5Li5kNTc3MzY5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRFZGl0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRFZGl0b3IuamF2YQpAQCAtMTY1LDcgKzE2NSw5IEBACiAgKiBlbmQtdXNlci1kb2MgLS0+DQogICogDQogICogQGdlbmVyYXRlZCBOT1QNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldEVkaXRvciBleHRlbmRzIE11bHRpUGFnZUVkaXRvclBhcnQgaW1wbGVtZW50cyBJRWRpdGluZ0RvbWFpblByb3ZpZGVyLA0KIAkJSVNlbGVjdGlvblByb3ZpZGVyLCBJTWVudUxpc3RlbmVyLCBJVmlld2VyUHJvdmlkZXIsIElHb3RvTWFya2VyIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRFZGl0b3JQbHVnaW4uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9GYWNldEVkaXRvclBsdWdpbi5qYXZhCmluZGV4IGIzYjdjYmQuLjQ2ZTU1YzggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9GYWNldEVkaXRvclBsdWdpbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9GYWNldEVkaXRvclBsdWdpbi5qYXZhCkBAIC0xNSwxMyArMTUsOSBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3IucHJlc2VudGF0aW9uOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLkVNRlBsdWdpbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51aS5FY2xpcHNlVUlQbHVnaW47DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5SZXNvdXJjZUxvY2F0b3I7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5wcm92aWRlci5FY29yZUVkaXRQbHVnaW47DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQucHJvdmlkZXIuUXVlcnlFZGl0UGx1Z2luOw0KIA0KIC8qKg0KQEAgLTI5LDcgKzI1LDkgQEAKICAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIEZhY2V0RWRpdG9yUGx1Z2luIGV4dGVuZHMgRU1GUGx1Z2luIHsNCiAJLyoqDQogCSAqIEtlZXAgdHJhY2sgb2YgdGhlIHNpbmdsZXRvbi4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRNb2RlbFdpemFyZC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0b3IvcHJlc2VudGF0aW9uL0ZhY2V0TW9kZWxXaXphcmQuamF2YQppbmRleCBmOTk4OWY2Li5mOTFlMDdmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vRmFjZXRNb2RlbFdpemFyZC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9GYWNldE1vZGVsV2l6YXJkLmphdmEKQEAgLTcwLDcgKzcwLDkgQEAKICAqIC0tPiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkIE5PVA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0TW9kZWxXaXphcmQgZXh0ZW5kcyBXaXphcmQgaW1wbGVtZW50cyBJTmV3V2l6YXJkIHsNCiAJLyoqDQogCSAqIFRoZSBzdXBwb3J0ZWQgZXh0ZW5zaW9ucyBmb3IgY3JlYXRlZCBmaWxlcy4gPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4gPCEtLQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9Mb2FkTWV0YU1vZGVsUmVzb3VyY2VBY3Rpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9Mb2FkTWV0YU1vZGVsUmVzb3VyY2VBY3Rpb24uamF2YQppbmRleCA0ODk2YWU4Li5jMzAwYzYxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vTG9hZE1ldGFNb2RlbFJlc291cmNlQWN0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0b3IvcHJlc2VudGF0aW9uL0xvYWRNZXRhTW9kZWxSZXNvdXJjZUFjdGlvbi5qYXZhCkBAIC0zNCw4ICszNCw5IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIEdyZWdvaXJlIERVUEUNCi0gKiANCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBMb2FkTWV0YU1vZGVsUmVzb3VyY2VBY3Rpb24gZXh0ZW5kcyBMb2FkUmVzb3VyY2VBY3Rpb24gew0KIA0KIAlwdWJsaWMgTG9hZE1ldGFNb2RlbFJlc291cmNlQWN0aW9uKCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9Mb2FkTW9EaXNjb1Jlc291cmNlQWN0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2VkaXRvci9wcmVzZW50YXRpb24vTG9hZE1vRGlzY29SZXNvdXJjZUFjdGlvbi5qYXZhCmluZGV4IDk1MGZlZWIuLjkyM2NlNzcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZWRpdG9yL3ByZXNlbnRhdGlvbi9Mb2FkTW9EaXNjb1Jlc291cmNlQWN0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9lZGl0b3IvcHJlc2VudGF0aW9uL0xvYWRNb0Rpc2NvUmVzb3VyY2VBY3Rpb24uamF2YQpAQCAtMzMsOCArMzMsOSBAQAogDQogLyoqDQogICogQGF1dGhvciBHcmVnb2lyZSBEVVBFDQotICogDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTG9hZE1vRGlzY29SZXNvdXJjZUFjdGlvbiBleHRlbmRzIExvYWRSZXNvdXJjZUFjdGlvbiB7DQogDQogCXB1YmxpYyBMb2FkTW9EaXNjb1Jlc291cmNlQWN0aW9uKCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBmMTY1YzQ1Li5mOWUzYWUwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xNCw0ICsxNCw0IEBACiAgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5jb3JlLA0KICBjb20uaWJtLmljdTtidW5kbGUtdmVyc2lvbj0iNC4yLjEiDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggYjg2MGEyMi4uMmU3YzY3YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDQgKzEwLDQgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLmxpbmVjb3VudA0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gRmFjZXQgdG8gY291bnQgbGluZXMgaW4gS0RNIEludmVudG9yeUl0ZW1zIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBGYWNldCB0byBjb3VudCBsaW5lcyBpbiBLRE0gSW52ZW50b3J5SXRlbXMgKERlcHJlY2F0ZWQsIHdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0KSAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9BYnN0cmFjdFJlY3Vyc2l2ZUNvdW50LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9BYnN0cmFjdFJlY3Vyc2l2ZUNvdW50LmphdmEKaW5kZXggMzU4MzRhNy4uODY0MTk1YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9leGFtcGxlcy9rZG0vQWJzdHJhY3RSZWN1cnNpdmVDb3VudC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0Fic3RyYWN0UmVjdXJzaXZlQ291bnQuamF2YQpAQCAtMjAsNyArMjAsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtLnNvdXJjZS5BYnN0cmFjdEludmVudG9yeUVsZW1lbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0uc291cmNlLkludmVudG9yeUNvbnRhaW5lcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5zb3VyY2UuSW52ZW50b3J5SXRlbTsNCi0NCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFJlY3Vyc2l2ZUNvdW50IGltcGxlbWVudHMgSUphdmFNb2RlbFF1ZXJ5PEVPYmplY3QsIEludGVnZXI+IHsNCiAJcHVibGljIEludGVnZXIgZXZhbHVhdGUoZmluYWwgRU9iamVjdCBjb250ZXh0LCBmaW5hbCBQYXJhbWV0ZXJWYWx1ZUxpc3QgcGFyYW1ldGVyVmFsdWVzKQ0KIAkJCXRocm93cyBNb2RlbFF1ZXJ5RXhlY3V0aW9uRXhjZXB0aW9uIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0FjdGl2YXRvci5qYXZhCmluZGV4IGJkOTRkOTEuLjljN2Y3NDMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0FjdGl2YXRvci5qYXZhCkBAIC0xMyw3ICsxMywxMSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5QbHVnaW47CiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7CiAKLS8qKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUgKi8KKy8qKg0KKyAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KKyAqLw0KK0BEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgUGx1Z2luIHsKIAogCS8vIFRoZSBwbHVnLWluIElECmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9MaW5lQ291bnRIZWxwZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0xpbmVDb3VudEhlbHBlci5qYXZhCmluZGV4IDAzYTU2YzYuLjZhNzhkMDYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0xpbmVDb3VudEhlbHBlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL0xpbmVDb3VudEhlbHBlci5qYXZhCkBAIC0yMSw2ICsyMSwxMCBAQAogDQogaW1wb3J0IGNvbS5pYm0uaWN1LmxhbmcuVUNoYXJhY3RlcjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBMaW5lQ291bnRIZWxwZXIgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBpbnQgQlVGRkVSX1NJWkUgPSAxMDI0Ow0KIAlwcml2YXRlIHN0YXRpYyBMaW5lQ291bnRIZWxwZXIgaW5zdGFuY2U7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9leGFtcGxlcy9rZG0vTm9uRW1wdHlMaW5lcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9leGFtcGxlcy9rZG0vTm9uRW1wdHlMaW5lcy5qYXZhCmluZGV4IDAyM2FjMmMuLmJlMDAzYWQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL05vbkVtcHR5TGluZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9Ob25FbXB0eUxpbmVzLmphdmEKQEAgLTE4LDcgKzE4LDkgQEAKIC8qKg0KICAqIFRoZSBudW1iZXIgb2YgbGluZXMgY29udGFpbmluZyBzb21ldGhpbmcgZWxzZSB0aGFuIHdoaXRlc3BhY2UgaW4gdGhpcw0KICAqIEludmVudG9yeUl0ZW0uDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTm9uRW1wdHlMaW5lcyBleHRlbmRzIEFic3RyYWN0UmVjdXJzaXZlQ291bnQgaW1wbGVtZW50cw0KIAkJSUphdmFNb2RlbFF1ZXJ5PEVPYmplY3QsIEludGVnZXI+IHsNCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9leGFtcGxlcy9rZG0vTnVtYmVyT2ZDaGFyYWN0ZXJzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9OdW1iZXJPZkNoYXJhY3RlcnMuamF2YQppbmRleCBmYWI1ZTE3Li5mYWM4MzNmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9OdW1iZXJPZkNoYXJhY3RlcnMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9OdW1iZXJPZkNoYXJhY3RlcnMuamF2YQpAQCAtMTEsMTEgKzExLDE1IEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbTsKIAogaW1wb3J0IGphdmEuaW8uRmlsZTsKLQorDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0OwogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuamF2YS5JSmF2YU1vZGVsUXVlcnk7CiAKLS8qKiBOdW1iZXIgb2YgY2hhcmFjdGVycyBpbiB0aGUgdW5kZXJseWluZyBmaWxlLiAqLworLyoqDQorICogTnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4gdGhlIHVuZGVybHlpbmcgZmlsZS4NCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIE51bWJlck9mQ2hhcmFjdGVycyBleHRlbmRzIEFic3RyYWN0UmVjdXJzaXZlQ291bnQgaW1wbGVtZW50cwogCQlJSmF2YU1vZGVsUXVlcnk8RU9iamVjdCwgSW50ZWdlcj4gewogCUBPdmVycmlkZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9leGFtcGxlcy9rZG0vTnVtYmVyT2ZMaW5lcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuZXhhbXBsZXMua2RtL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9leGFtcGxlcy9rZG0vTnVtYmVyT2ZMaW5lcy5qYXZhCmluZGV4IGJiMDY4NmEuLjNkMmRjMjEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LmV4YW1wbGVzLmtkbS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvZXhhbXBsZXMva2RtL051bWJlck9mTGluZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5leGFtcGxlcy5rZG0vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2V4YW1wbGVzL2tkbS9OdW1iZXJPZkxpbmVzLmphdmEKQEAgLTE1LDcgKzE1LDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuamF2YS5JSmF2YU1vZGVsUXVlcnk7DQogDQotLyoqIFRoZSBudW1iZXIgb2YgbGluZXMgaW4gdGhpcyBJbnZlbnRvcnlJdGVtICovDQorLyoqDQorICogVGhlIG51bWJlciBvZiBsaW5lcyBpbiB0aGlzIEludmVudG9yeUl0ZW0NCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBOdW1iZXJPZkxpbmVzIGV4dGVuZHMgQWJzdHJhY3RSZWN1cnNpdmVDb3VudCBpbXBsZW1lbnRzDQogCQlJSmF2YU1vZGVsUXVlcnk8RU9iamVjdCwgSW50ZWdlcj4gew0KIAlAT3ZlcnJpZGUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGRhY2Y4ZDIuLmU5MzJmZWMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCAwOGNhMDZlLi5mM2NjN2E4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEzLDQgKzEzLDQgQEAKIGNhdGVnb3J5Lm5hbWUgPSBNb0Rpc2NvDQogY2F0YWxvZ1ZpZXcubmFtZSA9IEZhY2V0IFNldHMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEZhY2V0IFVJIFBsdWctaW4gKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEZhY2V0IFVJIFBsdWctaW4gKERlcHJlY2F0ZWQsIGhhcyB0byBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQpIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS9BY3RpdmF0b3IuamF2YQppbmRleCBhZjViZmRlLi5kYmFiZDg3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdWkvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL0FjdGl2YXRvci5qYXZhCkBAIC0xNiw3ICsxNiw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdWkvSW1hZ2VQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL0ltYWdlUHJvdmlkZXIuamF2YQppbmRleCBiOGU3YWExLi5kMTk4ZTY2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdWkvSW1hZ2VQcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS9JbWFnZVByb3ZpZGVyLmphdmEKQEAgLTE1LDggKzE1LDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgR3JlZ29pcmUgRFVQRSAoTWlhLVNvZnR3YXJlKQ0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEltYWdlUHJvdmlkZXIgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTU9ERUxfUVVFUllfU0VUID0gImljb25zL2ZhY2V0U2V0LnBuZyI7IC8vJE5PTi1OTFMtMSQNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE1PREVMX1FVRVJZID0gImljb25zL2ZhY2V0LnBuZyI7IC8vJE5PTi1OTFMtMSQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdWkvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS9NZXNzYWdlcy5qYXZhCmluZGV4IDJlZjVlOTUuLmMyZDIwNzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS9NZXNzYWdlcy5qYXZhCkBAIC0xNSw4ICsxNSw5IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIGdkdXBlDQotICogDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkDQogCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEZhY2V0Vmlld18wOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS92aWV3cy9GYWNldFNldENvbnRlbnRQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL3ZpZXdzL0ZhY2V0U2V0Q29udGVudFByb3ZpZGVyLmphdmEKaW5kZXggNmVmNDg4OS4uNzNjYjBiYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL3ZpZXdzL0ZhY2V0U2V0Q29udGVudFByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL3ZpZXdzL0ZhY2V0U2V0Q29udGVudFByb3ZpZGVyLmphdmEKQEAgLTIwLDggKzIwLDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgZ2R1cGUNCi0gKiANCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFNldENvbnRlbnRQcm92aWRlciBpbXBsZW1lbnRzIElUcmVlQ29udGVudFByb3ZpZGVyIHsNCiANCiAJcHJpdmF0ZSBFQ2xhc3MgZGVwdGg7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL3ZpZXdzL0ZhY2V0Vmlldy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3VpL3ZpZXdzL0ZhY2V0Vmlldy5qYXZhCmluZGV4IGUyNTZkNGIuLjFmM2QxYzYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91aS92aWV3cy9GYWNldFZpZXcuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdWkvdmlld3MvRmFjZXRWaWV3LmphdmEKQEAgLTQzLDcgKzQzLDkgQEAKIC8qKg0KICAqIEFuIEVjbGlwc2UgdmlldyB0aGF0IGRpc3BsYXlzIGEgbGlzdCBvZiBhdmFpbGFibGUgTW9EaXNjbyBmYWNldCBzZXRzLg0KICAqIENsaWNraW5nIG9uIGEgZmFjZXQgc2V0IG9wZW5zIGl0IGluIHRoZSBmYWNldCBzZXQgZWRpdG9yLg0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0VmlldyBleHRlbmRzIEFic3RyYWN0VHJlZVZpZXcgaW1wbGVtZW50cyBNb2Rpc2NvQ2F0YWxvZ0NoYW5nZUxpc3RlbmVyIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfQ09MVU1OID0gIkZhY2V0Vmlld19OYW1lQ29sdW1uIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZWM4NTlhMy4uYTcyOTk5OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQ7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvcGx1Z2luLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9wbHVnaW4ucHJvcGVydGllcwppbmRleCA5YTdmMzg0Li4zNWIzMGFiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9wbHVnaW4ucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9wbHVnaW4ucHJvcGVydGllcwpAQCAtOCw3ICs4LDcgQEAKICMgQ29udHJpYnV0b3JzOg0KICMgICAgR3JlZ29pcmUgRFVQRSAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi1wbHVnaW5OYW1lID0gTW9EaXNjbyBGYWNldCBNZXRhIE1vZGVsIEltcGxlbWVudGF0aW9uIChJbmN1YmF0aW9uKQ0KK3BsdWdpbk5hbWUgPSBNb0Rpc2NvIEZhY2V0IE1ldGEgTW9kZWwgSW1wbGVtZW50YXRpb24gKERlcHJlY2F0ZWQsIHdpbGwgYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0KSAoSW5jdWJhdGlvbikNCiBwcm92aWRlck5hbWUgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiANCiBjYXRlZ29yeS5uYW1lID0gTW9EaXNjbyBGYWNldCBDb25zdHJhaW50cw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0LmphdmEKaW5kZXggYWYxYTA0ZC4uMjRmNWE4ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0LmphdmEKQEAgLTQyLDcgKzQyLDkgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXRQYWNrYWdlI2dldEZhY2V0KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZhY2V0IGV4dGVuZHMgRUNsYXNzIHsNCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPkNvbmRpdGlvbiBRdWVyeTwvYj48L2VtPicgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldEF0dHJpYnV0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0QXR0cmlidXRlLmphdmEKaW5kZXggYWU4MzY4ZC4uNWZmNDM4YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0QXR0cmlidXRlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0QXR0cmlidXRlLmphdmEKQEAgLTI5LDYgKzI5LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXRQYWNrYWdlI2dldEZhY2V0QXR0cmlidXRlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZhY2V0QXR0cmlidXRlIGV4dGVuZHMgRUF0dHJpYnV0ZSwgRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZSB7DQogfSAvLyBGYWNldEF0dHJpYnV0ZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldEZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldEZhY3RvcnkuamF2YQppbmRleCBkMjhjNzNlLi5kODk3ZDk4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvRmFjZXRGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0RmFjdG9yeS5qYXZhCkBAIC0yMyw3ICsyMyw5IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LkZhY2V0UGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgRmFjZXRGYWN0b3J5IGV4dGVuZHMgRUZhY3Rvcnkgew0KIAkvKioNCiAJICogVGhlIHNpbmdsZXRvbiBpbnN0YW5jZSBvZiB0aGUgZmFjdG9yeS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvRmFjZXRQYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvRmFjZXRQYWNrYWdlLmphdmEKaW5kZXggNTQwNzU1Ny4uMTFmOTlkMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0UGFja2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldFBhY2thZ2UuamF2YQpAQCAtMzMsNyArMzMsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldEZhY3RvcnkNCiAgKiBAbW9kZWwga2luZD0icGFja2FnZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZhY2V0UGFja2FnZSBleHRlbmRzIEVQYWNrYWdlIHsNCiAJLyoqDQogCSAqIFRoZSBwYWNrYWdlIG5hbWUuDQpAQCAtMTMxOSw3ICsxMzIxLDkgQEAKIAkgKiA8L3VsPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KKwkgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAJICovDQorCUBEZXByZWNhdGVkDQogCWludGVyZmFjZSBMaXRlcmFscyB7DQogCQkvKioNCiAJCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5pbXBsLkZhY2V0SW1wbCA8ZW0+RmFjZXQ8L2VtPn0nIGNsYXNzLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldFJlZmVyZW5jZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0UmVmZXJlbmNlLmphdmEKaW5kZXggOTc5NDBjZS4uNTEyY2Q2NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0UmVmZXJlbmNlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0UmVmZXJlbmNlLmphdmEKQEAgLTI5LDYgKzI5LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXRQYWNrYWdlI2dldEZhY2V0UmVmZXJlbmNlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZhY2V0UmVmZXJlbmNlIGV4dGVuZHMgRVJlZmVyZW5jZSwgRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZSB7DQogfSAvLyBGYWNldFJlZmVyZW5jZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldFNldC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0U2V0LmphdmEKaW5kZXggYTg0MmNiMC4uNTZjMmI5OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0U2V0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0U2V0LmphdmEKQEAgLTMzLDcgKzMzLDkgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXRQYWNrYWdlI2dldEZhY2V0U2V0KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEZhY2V0U2V0IGV4dGVuZHMgRVBhY2thZ2Ugew0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+RXh0ZW5kZWQgUGFja2FnZTwvYj48L2VtPicgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldFN0cnVjdHVyYWxGZWF0dXJlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZS5qYXZhCmluZGV4IDZiOWI4NDcuLjE0Yzc0Y2MgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9GYWNldFN0cnVjdHVyYWxGZWF0dXJlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L0ZhY2V0U3RydWN0dXJhbEZlYXR1cmUuamF2YQpAQCAtMTUsNyArMTUsNiBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnk7DQogDQogLyoqDQpAQCAtMzMsNyArMzIsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldFBhY2thZ2UjZ2V0RmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZSgpDQogICogQG1vZGVsIGFic3RyYWN0PSJ0cnVlIg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZSBleHRlbmRzIEVPYmplY3Qgew0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+VmFsdWUgUXVlcnk8L2I+PC9lbT4nIHJlZmVyZW5jZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvU2hvcnRjdXQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9TaG9ydGN1dC5qYXZhCmluZGV4IGZhNjRmMjQuLjg5M2MxMGEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9TaG9ydGN1dC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9TaG9ydGN1dC5qYXZhCkBAIC0xNSw3ICsxNSw2IEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0Ow0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUmVmZXJlbmNlOw0KIA0KIC8qKg0KQEAgLTM0LDcgKzMzLDkgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXRQYWNrYWdlI2dldFNob3J0Y3V0KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFNob3J0Y3V0IGV4dGVuZHMgRVJlZmVyZW5jZSB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5QYXRoPC9iPjwvZW0+JyByZWZlcmVuY2UgbGlzdC4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldEF0dHJpYnV0ZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0QXR0cmlidXRlSW1wbC5qYXZhCmluZGV4IGVhZTU2MzQuLjE3ODE4YWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0QXR0cmlidXRlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0QXR0cmlidXRlSW1wbC5qYXZhCkBAIC0xNSwxMCArMTUsOCBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5JbnRlcm5hbEVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVBdHRyaWJ1dGVJbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiANCkBAIC00MCw3ICszOCw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRmFjZXRBdHRyaWJ1dGVJbXBsIGV4dGVuZHMgRUF0dHJpYnV0ZUltcGwgaW1wbGVtZW50cyBGYWNldEF0dHJpYnV0ZSB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRWYWx1ZVF1ZXJ5KCkgPGVtPlZhbHVlIFF1ZXJ5PC9lbT59JyByZWZlcmVuY2UuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRGYWN0b3J5SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRGYWN0b3J5SW1wbC5qYXZhCmluZGV4IDRiOWIxMDIuLjE3Zjg1NTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0RmFjdG9yeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldEZhY3RvcnlJbXBsLmphdmEKQEAgLTI2LDcgKzI2LDkgQEAKICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5GYWN0b3J5PC9iPi4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRmFjZXRGYWN0b3J5SW1wbCBleHRlbmRzIEVGYWN0b3J5SW1wbCBpbXBsZW1lbnRzIEZhY2V0RmFjdG9yeSB7DQogCS8qKg0KIAkgKiBDcmVhdGVzIHRoZSBkZWZhdWx0IGZhY3RvcnkgaW1wbGVtZW50YXRpb24uDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldEltcGwuamF2YQppbmRleCBhM2FkNDViLi40OTk0M2Y3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldEltcGwuamF2YQpAQCAtMzcsNyArMzcsOSBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0SW1wbCBleHRlbmRzIEVDbGFzc0ltcGwgaW1wbGVtZW50cyBGYWNldCB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRDb25kaXRpb25RdWVyeSgpIDxlbT5Db25kaXRpb24gUXVlcnk8L2VtPn0nIHJlZmVyZW5jZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldFBhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldFBhY2thZ2VJbXBsLmphdmEKaW5kZXggYTg3ZmUwZS4uNzkzMmNkNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRQYWNrYWdlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0UGFja2FnZUltcGwuamF2YQpAQCAtMzUsNyArMzUsOSBAQAogICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPlBhY2thZ2U8L2I+Lg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFBhY2thZ2VJbXBsIGV4dGVuZHMgRVBhY2thZ2VJbXBsIGltcGxlbWVudHMgRmFjZXRQYWNrYWdlIHsNCiAJLyoqDQogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRSZWZlcmVuY2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldFJlZmVyZW5jZUltcGwuamF2YQppbmRleCA3ODZiMTIxLi5lNDU4YzYzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldFJlZmVyZW5jZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldFJlZmVyZW5jZUltcGwuamF2YQpAQCAtMTUsMTAgKzE1LDggQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRVJlZmVyZW5jZUltcGw7DQogDQpAQCAtNDAsNyArMzgsOSBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0UmVmZXJlbmNlSW1wbCBleHRlbmRzIEVSZWZlcmVuY2VJbXBsIGltcGxlbWVudHMgRmFjZXRSZWZlcmVuY2Ugew0KIAkvKioNCiAJICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0VmFsdWVRdWVyeSgpIDxlbT5WYWx1ZSBRdWVyeTwvZW0+fScgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0U2V0SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRTZXRJbXBsLmphdmEKaW5kZXggMzgwZGYwMS4uNmRmNzUzZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRTZXRJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRTZXRJbXBsLmphdmEKQEAgLTQzLDcgKzQzLDkgQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFNldEltcGwgZXh0ZW5kcyBFUGFja2FnZUltcGwgaW1wbGVtZW50cyBGYWNldFNldCB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRFeHRlbmRlZFBhY2thZ2UoKSA8ZW0+RXh0ZW5kZWQgUGFja2FnZTwvZW0+fScgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0U3RydWN0dXJhbEZlYXR1cmVJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9GYWNldFN0cnVjdHVyYWxGZWF0dXJlSW1wbC5qYXZhCmluZGV4IDdiMmIyOGYuLmE1OWQ5ZTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL0ZhY2V0U3RydWN0dXJhbEZlYXR1cmVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L2ltcGwvRmFjZXRTdHJ1Y3R1cmFsRmVhdHVyZUltcGwuamF2YQpAQCAtMTUsMTAgKzE1LDggQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQogDQpAQCAtMzksNyArMzcsOSBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGFic3RyYWN0IGNsYXNzIEZhY2V0U3RydWN0dXJhbEZlYXR1cmVJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBGYWNldFN0cnVjdHVyYWxGZWF0dXJlIHsNCiAJLyoqDQogCSAqIFRoZSBjYWNoZWQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldFZhbHVlUXVlcnkoKSA8ZW0+VmFsdWUgUXVlcnk8L2VtPn0nIHJlZmVyZW5jZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvaW1wbC9TaG9ydGN1dEltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL1Nob3J0Y3V0SW1wbC5qYXZhCmluZGV4IDBiMjFkYzcuLjk5OGRiNzIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL1Nob3J0Y3V0SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9pbXBsL1Nob3J0Y3V0SW1wbC5qYXZhCkBAIC00MCw3ICs0MCw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgU2hvcnRjdXRJbXBsIGV4dGVuZHMgRVJlZmVyZW5jZUltcGwgaW1wbGVtZW50cyBTaG9ydGN1dCB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRQYXRoKCkgPGVtPlBhdGg8L2VtPn0nIHJlZmVyZW5jZSBsaXN0Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9wbHVnaW4vRmFjZXRQbHVnaW4uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC9wbHVnaW4vRmFjZXRQbHVnaW4uamF2YQppbmRleCA3ZTQyMDljLi4xNGFjODExIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvcGx1Z2luL0ZhY2V0UGx1Z2luLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3BsdWdpbi9GYWNldFBsdWdpbi5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFBsdWdpbiBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3V0aWwvRmFjZXRBZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3V0aWwvRmFjZXRBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IDE0YTczZTYuLjczYWM0MjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91dGlsL0ZhY2V0QWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdXRpbC9GYWNldEFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTM2LDcgKzM2LDkgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXRQYWNrYWdlDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZhY2V0QWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBZGFwdGVyRmFjdG9yeUltcGwgew0KIAkvKioNCiAJICogVGhlIGNhY2hlZCBtb2RlbCBwYWNrYWdlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91dGlsL0ZhY2V0U3dpdGNoLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdXRpbC9GYWNldFN3aXRjaC5qYXZhCmluZGV4IGYzYzRmYmUuLjY0YTQzYTggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC91dGlsL0ZhY2V0U3dpdGNoLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3V0aWwvRmFjZXRTd2l0Y2guamF2YQpAQCAtMjYsNyArMjYsNiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUmVmZXJlbmNlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVN0cnVjdHVyYWxGZWF0dXJlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVR5cGVkRWxlbWVudDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuKjsNCiANCiAvKioNCkBAIC00MSw3ICs0MCw5IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LkZhY2V0UGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFN3aXRjaDxUPiB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIG1vZGVsIHBhY2thZ2UNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdmFsaWRhdGlvbi9FVmFsaWRhdG9yQWRhcHRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRVZhbGlkYXRvckFkYXB0ZXIuamF2YQppbmRleCA4YTZjZjAxLi4xNGYzNjRlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdmFsaWRhdGlvbi9FVmFsaWRhdG9yQWRhcHRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC92YWxpZGF0aW9uL0VWYWxpZGF0b3JBZGFwdGVyLmphdmEKQEAgLTI5LDcgKzI5LDkgQEAKICAqIFRoaXMgY2xhc3MgaGFzIGJlZW4gd3JpdHRlbiB1c2luZyB0aGUgIlR1dG9yaWFsOiBFTUYgVmFsaWRhdGlvbiBBZGFwdGVyIg0KICAqIGRvY3VtZW50YXRpb24gKHtAbGluaw0KICAqIC9vcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbi5kb2MvdHV0b3JpYWxzL3ZhbGlkYXRpb25BZGFwdGVyVHV0b3JpYWwuaHRtbH0pDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRVZhbGlkYXRvckFkYXB0ZXIgZXh0ZW5kcyBFT2JqZWN0VmFsaWRhdG9yIHsNCiANCiAJcHJpdmF0ZSBmaW5hbCBJQmF0Y2hWYWxpZGF0b3IgYmF0Y2hWYWxpZGF0b3I7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRXh0ZW5kZWRDbGFzc1ZhbGlkYXRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC92YWxpZGF0aW9uL0V4dGVuZGVkQ2xhc3NWYWxpZGF0aW9uLmphdmEKaW5kZXggYmQ0ZGYxNy4uMGViMmYyMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRXh0ZW5kZWRDbGFzc1ZhbGlkYXRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdmFsaWRhdGlvbi9FeHRlbmRlZENsYXNzVmFsaWRhdGlvbi5qYXZhCkBAIC0yNSw2ICsyNSwxMSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LkZhY2V0U2V0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5wbHVnaW4uRmFjZXRQbHVnaW47DQogDQorLyoqDQorICogDQorICogQGRlcHJlY2F0ZWQgUmVwbGFjZWQgYnkgRU1GIEZhY2V0DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRXh0ZW5kZWRDbGFzc1ZhbGlkYXRpb24gZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC92YWxpZGF0aW9uL0ZhY2V0U2V0TmFtZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRmFjZXRTZXROYW1lLmphdmEKaW5kZXggMDgwOGJjMi4uZWZhM2RiYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRmFjZXRTZXROYW1lLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRmFjZXRTZXROYW1lLmphdmEKQEAgLTE2LDYgKzE2LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24uSVZhbGlkYXRpb25Db250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldFNldDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFNldE5hbWUgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC92YWxpZGF0aW9uL0ZhY2V0U2V0Um9vdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRmFjZXRTZXRSb290LmphdmEKaW5kZXggN2M1YzYzYi4uNTU1MzJlZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRmFjZXRTZXRSb290LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vRmFjZXRTZXRSb290LmphdmEKQEAgLTE3LDYgKzE3LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24uSVZhbGlkYXRpb25Db250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldFNldDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBGYWNldFNldFJvb3QgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC92YWxpZGF0aW9uL05vbkVtcHR5TmFtZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vTm9uRW1wdHlOYW1lLmphdmEKaW5kZXggNzdmNGRjNC4uMWI3NDgxYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vTm9uRW1wdHlOYW1lLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vTm9uRW1wdHlOYW1lLmphdmEKQEAgLTE5LDYgKzE5LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuRmFjZXQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0LkZhY2V0U2V0Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFJlcGxhY2VkIGJ5IEVNRiBGYWNldA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE5vbkVtcHR5TmFtZSBleHRlbmRzIEFic3RyYWN0TW9kZWxDb25zdHJhaW50IHsNCiANCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vVW5pcXVlTmFtZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL2ZhY2V0L3ZhbGlkYXRpb24vVW5pcXVlTmFtZS5qYXZhCmluZGV4IDZhMzIyNTAuLmRjMDJhZTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmZhY2V0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9mYWNldC92YWxpZGF0aW9uL1VuaXF1ZU5hbWUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvZmFjZXQvdmFsaWRhdGlvbi9VbmlxdWVOYW1lLmphdmEKQEAgLTE5LDYgKzE5LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24uSVZhbGlkYXRpb25Db250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldFNldDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBSZXBsYWNlZCBieSBFTUYgRmFjZXQNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBVbmlxdWVOYW1lIGV4dGVuZHMgQWJzdHJhY3RNb2RlbENvbnN0cmFpbnQgew0KIA0KIAlAT3ZlcnJpZGUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA3MjMxOGFiLi5iOTNjOTBmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3ByZWZ1c2UvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9wcmVmdXNlL0FjdGl2YXRvci5qYXZhCmluZGV4IGYxN2U3MjguLmI0YjllMDYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3ByZWZ1c2UvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcHJlZnVzZS9BY3RpdmF0b3IuamF2YQpAQCAtMTcsNyArMTcsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9wcmVmdXNlL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9wcmVmdXNlL01lc3NhZ2VzLmphdmEKaW5kZXggNGFjYWJkOS4uNmEyZjA4ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcHJlZnVzZS9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3ByZWZ1c2UvTWVzc2FnZXMuamF2YQpAQCAtMTQsOCArMTQsMTAgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgR0JhcmJpZXINCi0gKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcwMQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2UubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkDQogCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFByZWZ1c2VHcmFwaENvbnRhaW5lcl9CYWxhbmNlZFRyZWU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcHJlZnVzZS9leGFtcGxlcy9ncmFwaHZpZXcvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3ByZWZ1c2UvZXhhbXBsZXMvZ3JhcGh2aWV3L01lc3NhZ2VzLmphdmEKaW5kZXggODBjOWRmYS4uOGQ4OGUxNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcHJlZnVzZS9leGFtcGxlcy9ncmFwaHZpZXcvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9wcmVmdXNlL2V4YW1wbGVzL2dyYXBodmlldy9NZXNzYWdlcy5qYXZhCkBAIC0xNCw4ICsxNCwxMCBAQAogDQogLyoqDQogICogQGF1dGhvciBHQmFyYmllcg0KLSAqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzAxDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS5leGFtcGxlcy5ncmFwaHZpZXcubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkDQogCXB1YmxpYyBzdGF0aWMgU3RyaW5nIEdyYXBoVmlld1V0aWxzX0JhbGFuY2VkVHJlZTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9wcmVmdXNlL2V4YW1wbGVzL3RyZWV2aWV3L01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5wcmVmdXNlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9wcmVmdXNlL2V4YW1wbGVzL3RyZWV2aWV3L01lc3NhZ2VzLmphdmEKaW5kZXggZGVmYmE1Ny4uMGQ2ZmMzOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucHJlZnVzZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcHJlZnVzZS9leGFtcGxlcy90cmVldmlldy9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3ByZWZ1c2UvZXhhbXBsZXMvdHJlZXZpZXcvTWVzc2FnZXMuamF2YQpAQCAtMTQsOCArMTQsMTAgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgR0JhcmJpZXINCi0gKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcwMQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnByZWZ1c2UuZXhhbXBsZXMudHJlZXZpZXcubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkDQogCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFRyZWVWaWV3X1VucmVjb2duaXplZE9yaWVudGF0aW9uVmFsdWU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZWQzNDQyYS4uYjYzOTMxMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDI4OWYyZjIuLjY0ZDZjOGUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEzLDcgKzEzLDcgQEAKIGV4dGVuc2lvbi1wb2ludC5uYW1lID0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucmVnaXN0cmF0aW9uDQogZXh0ZW5zaW9uLXBvaW50Lm5hbWUuMCA9IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmZhY3RvcnkNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIFF1ZXJ5IENvcmUgKEluY3ViYXRpb24pDQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIFF1ZXJ5IENvcmUgKERlcHJlY2F0ZWQsIGhhcyB0byBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQpIChJbmN1YmF0aW9uKQ0KIGV4dGVuc2lvbi1wb2ludC5uYW1lLjEgPSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5yZWdpc3RyYXRpb24NCiBleHRlbnNpb24tcG9pbnQubmFtZS4yID0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZmFjdG9yeQ0KIGNvbnN0cmFpbnQuZGVzY3JpcHRpb24gPSBBbGwgaXRlbXMgbXVzdCBiZSBuYW1lZC4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL0Fic3RyYWN0TW9kZWxRdWVyeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9BYnN0cmFjdE1vZGVsUXVlcnkuamF2YQppbmRleCBjMDBhNjQyLi40Y2Q4NTYyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL0Fic3RyYWN0TW9kZWxRdWVyeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvQWJzdHJhY3RNb2RlbFF1ZXJ5LmphdmEKQEAgLTQzLDcgKzQzLDkgQEAKICAqIA0KICAqIEBhdXRob3IgR3JlZ29pcmUgRFVQRSAoTWlhLVNvZnR3YXJlKQ0KICAqIA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdE1vZGVsUXVlcnkgew0KIA0KIAlwcml2YXRlIGZpbmFsIE1vZGVsUXVlcnkgbW9kZWxRdWVyeTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL0lNb2RlbFF1ZXJ5RmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9JTW9kZWxRdWVyeUZhY3RvcnkuamF2YQppbmRleCBlNDE2YjQ1Li40N2QwZTU1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL0lNb2RlbFF1ZXJ5RmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvSU1vZGVsUXVlcnlGYWN0b3J5LmphdmEKQEAgLTE1LDYgKzE1LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS5leGNlcHRpb24uTW9kZWxRdWVyeUV4Y2VwdGlvbjsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZTsNCiANCisvKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgSU1vZGVsUXVlcnlGYWN0b3J5IHsNCiAJcHVibGljIEFic3RyYWN0TW9kZWxRdWVyeSBjcmVhdGUoTW9kZWxRdWVyeSBtb2RlbFF1ZXJ5LCBCdW5kbGUgYnVuZGxlKQ0KIAkJCXRocm93cyBNb2RlbFF1ZXJ5RXhjZXB0aW9uOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvSU1vZGVsUXVlcnlUb29sdGlwLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL0lNb2RlbFF1ZXJ5VG9vbHRpcC5qYXZhCmluZGV4IDljOGEzOWIuLjcwYmM2YjUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvSU1vZGVsUXVlcnlUb29sdGlwLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9JTW9kZWxRdWVyeVRvb2x0aXAuamF2YQpAQCAtMTcsNyArMTcsOSBAQAogLyoqDQogICogSW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlIGlmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGUgdG9vbHRpcCB0aGF0IGlzIHNob3duDQogICogZm9yIGEgc3BlY2lmaWMga2luZCBvZiBxdWVyaWVzLg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgSU1vZGVsUXVlcnlUb29sdGlwIHsNCiAJLyoqDQogCSAqIFNldCB0aGUgdG9vbHRpcCB0ZXh0IGludG8gdGhlIHtAbGluayBTdHlsZWRUZXh0fSBjb21wb25lbnQuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9JUXVlcnlTZXRQcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9JUXVlcnlTZXRQcm92aWRlci5qYXZhCmluZGV4IDgwMzMwZDUuLjVhOTA5OWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvSVF1ZXJ5U2V0UHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL0lRdWVyeVNldFByb3ZpZGVyLmphdmEKQEAgLTE1LDYgKzE1LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlTZXQ7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBJUXVlcnlTZXRQcm92aWRlciB7DQogCUNvbGxlY3Rpb248TW9kZWxRdWVyeVNldD4gZ2V0UXVlcnlTZXRzKENvbGxlY3Rpb248PyBleHRlbmRzIEVPYmplY3Q+IGNvbnRleHQpOw0KIH0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL01vZGVsUXVlcnlTZXRDYXRhbG9nLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL01vZGVsUXVlcnlTZXRDYXRhbG9nLmphdmEKaW5kZXggZGNmNWJiZi4uNzkxNGJhMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9Nb2RlbFF1ZXJ5U2V0Q2F0YWxvZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvTW9kZWxRdWVyeVNldENhdGFsb2cuamF2YQpAQCAtMzMsNiArMzMsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmludGVybmFsLnZhbGlkYXRpb24uRVZhbGlkYXRvckFkYXB0ZXI7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIE1vZGVsUXVlcnlTZXRDYXRhbG9nIGV4dGVuZHMgQWJzdHJhY3RNb0Rpc2NvQ2F0YWxvZyB7DQogDQogCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFJFR0lTVFJBVElPTl9FWFRFTlNJT05fUE9JTlRfSUQgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucmVnaXN0cmF0aW9uIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL0J1bmRsZUNsYXNzUGF0aEV4Y2VwdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vQnVuZGxlQ2xhc3NQYXRoRXhjZXB0aW9uLmphdmEKaW5kZXggZWY2YzA5ZC4uZTEyZjc0MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vQnVuZGxlQ2xhc3NQYXRoRXhjZXB0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vQnVuZGxlQ2xhc3NQYXRoRXhjZXB0aW9uLmphdmEKQEAgLTE0LDYgKzE0LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklQYXRoOw0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCdW5kbGVDbGFzc1BhdGhFeGNlcHRpb24gZXh0ZW5kcyBNb2RlbFF1ZXJ5RXhjZXB0aW9uIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gODY2NDUwMjg5NzE2OTY2NjkxNkw7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vRXhlY3V0aW9uRW52aXJvbm1lbnRFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL0V4ZWN1dGlvbkVudmlyb25tZW50RXhjZXB0aW9uLmphdmEKaW5kZXggMDAxZDE4YS4uYmU4MzY4NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vRXhlY3V0aW9uRW52aXJvbm1lbnRFeGNlcHRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2V4Y2VwdGlvbi9FeGVjdXRpb25FbnZpcm9ubWVudEV4Y2VwdGlvbi5qYXZhCkBAIC0xMCw2ICsxMCwxMCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmV4Y2VwdGlvbjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRXhlY3V0aW9uRW52aXJvbm1lbnRFeGNlcHRpb24gZXh0ZW5kcyBNb2RlbFF1ZXJ5RXhjZXB0aW9uIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTE5MDI3NTk4Nzg2NDAwMjgyNTlMOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL01pc3NpbmdCdW5kbGVFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL01pc3NpbmdCdW5kbGVFeGNlcHRpb24uamF2YQppbmRleCA5NjM0ZjE4Li43NWRkMjU1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2V4Y2VwdGlvbi9NaXNzaW5nQnVuZGxlRXhjZXB0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vTWlzc2luZ0J1bmRsZUV4Y2VwdGlvbi5qYXZhCkBAIC0xMCw2ICsxMCwxMCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmV4Y2VwdGlvbjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWlzc2luZ0J1bmRsZUV4Y2VwdGlvbiBleHRlbmRzIE1vZGVsUXVlcnlFeGNlcHRpb24gew0KIA0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtODQwNDgxNjI0MTA0MDM5NTg4Mkw7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vTW9kZWxRdWVyeUV4Y2VwdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vTW9kZWxRdWVyeUV4Y2VwdGlvbi5qYXZhCmluZGV4IDI3ZDY2NjkuLjYxMmMyMjUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL01vZGVsUXVlcnlFeGNlcHRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2V4Y2VwdGlvbi9Nb2RlbFF1ZXJ5RXhjZXB0aW9uLmphdmEKQEAgLTEwLDYgKzEwLDEwIEBACiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuZXhjZXB0aW9uOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2RlbFF1ZXJ5RXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTMyMDM4NzQwNTkzMjU3NDUxNTdMOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL01vZGVsUXVlcnlFeGVjdXRpb25FeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL01vZGVsUXVlcnlFeGVjdXRpb25FeGNlcHRpb24uamF2YQppbmRleCAyYzBjMmI0Li5hNThkZjdlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2V4Y2VwdGlvbi9Nb2RlbFF1ZXJ5RXhlY3V0aW9uRXhjZXB0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vTW9kZWxRdWVyeUV4ZWN1dGlvbkV4Y2VwdGlvbi5qYXZhCkBAIC0xMCw2ICsxMCwxMCBAQAogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmV4Y2VwdGlvbjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeUV4ZWN1dGlvbkV4Y2VwdGlvbiBleHRlbmRzIE1vZGVsUXVlcnlFeGNlcHRpb24gew0KIA0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBsb25nIHNlcmlhbFZlcnNpb25VSUQgPSAtODQ2NDI1MjI1NzY2NjYxNzY4NUw7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vTW9kZWxRdWVyeVR5cGVDaGVja2luZ0V4Y2VwdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9leGNlcHRpb24vTW9kZWxRdWVyeVR5cGVDaGVja2luZ0V4Y2VwdGlvbi5qYXZhCmluZGV4IDc3ZDEwMmMuLmEwMWJkOWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL01vZGVsUXVlcnlUeXBlQ2hlY2tpbmdFeGNlcHRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2V4Y2VwdGlvbi9Nb2RlbFF1ZXJ5VHlwZUNoZWNraW5nRXhjZXB0aW9uLmphdmEKQEAgLTEwLDYgKzEwLDEwIEBACiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuZXhjZXB0aW9uOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2RlbFF1ZXJ5VHlwZUNoZWNraW5nRXhjZXB0aW9uIGV4dGVuZHMgTW9kZWxRdWVyeUV4Y2VwdGlvbiB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIGxvbmcgc2VyaWFsVmVyc2lvblVJRCA9IC05MDY0Mjc0MzM0ODE3NjQyODE5TDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2V4Y2VwdGlvbi9Qcm9qZWN0RGlzYWJsZWRFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL1Byb2plY3REaXNhYmxlZEV4Y2VwdGlvbi5qYXZhCmluZGV4IDI0MTc1MGEuLjRjMDcyNWQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL1Byb2plY3REaXNhYmxlZEV4Y2VwdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvZXhjZXB0aW9uL1Byb2plY3REaXNhYmxlZEV4Y2VwdGlvbi5qYXZhCkBAIC0xMCw2ICsxMCwxMCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmV4Y2VwdGlvbjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUHJvamVjdERpc2FibGVkRXhjZXB0aW9uIGV4dGVuZHMgTW9kZWxRdWVyeUV4Y2VwdGlvbiB7DQogDQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKaW5kZXggZGNmZjU1YTAuLmU2YmY1Y2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQpAQCAtMjQsNyArMjQsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhCmluZGV4IDQ3YTIzY2YuLmQ0ZjhjYmEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL01lc3NhZ2VzLmphdmEKQEAgLTEyLDYgKzEyLDEwIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiANCisvKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmludGVybmFsLm1lc3NhZ2VzIjsgLy8kTk9OLU5MUy0xJA0KIAlwdWJsaWMgc3RhdGljIFN0cmluZyBJbXBsZW1lbnRhdGlvbkNsYXNzSW50ZXJmYWNlX2xvZ0Vycm9yc0pvYk5hbWU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9RdWVyeUJ1aWxkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvUXVlcnlCdWlsZGVyLmphdmEKaW5kZXggZWE1NzQ4MS4uOTRmZjhlZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9RdWVyeUJ1aWxkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL1F1ZXJ5QnVpbGRlci5qYXZhCkBAIC0xNiw2ICsxNiwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmludGVybmFsLmJ1aWxkZXIuTW9EaXNjb0NhdGFsb2dCdWlsZGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLk1vZGVsUXVlcnlTZXRDYXRhbG9nOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBRdWVyeUJ1aWxkZXIgZXh0ZW5kcyBNb0Rpc2NvQ2F0YWxvZ0J1aWxkZXIgew0KIA0KIAlwcm90ZWN0ZWQgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFX0VYVEVOU0lPTiA9ICJxdWVyeVNldCI7IC8vJE5PTi1OTFMtMSQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL1F1ZXJ5UHJvdG9jb2xFeHRlbnNpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvUXVlcnlQcm90b2NvbEV4dGVuc2lvbi5qYXZhCmluZGV4IDgxMGQ4NWEuLmZhMGIzYTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvUXVlcnlQcm90b2NvbEV4dGVuc2lvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvUXVlcnlQcm90b2NvbEV4dGVuc2lvbi5qYXZhCkBAIC0xNCw2ICsxNCwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmludGVybmFsLnByb3RvY29sLklNb2Rpc2NvUHJvdG9jb2xFeHRlbnNpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuTW9kZWxRdWVyeVNldENhdGFsb2c7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5UHJvdG9jb2xFeHRlbnNpb24gaW1wbGVtZW50cyBJTW9kaXNjb1Byb3RvY29sRXh0ZW5zaW9uIHsNCiANCiAJLyoNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL1JlZmVyZWRGaWxlSGFuZGxlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC9SZWZlcmVkRmlsZUhhbmRsZXIuamF2YQppbmRleCAxNjQ4Yzk0Li5jZTg1NWIwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL1JlZmVyZWRGaWxlSGFuZGxlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvUmVmZXJlZEZpbGVIYW5kbGVyLmphdmEKQEAgLTMyLDcgKzMyLDkgQEAKICAqIGF0dHJpYnV0ZS4NCiAgKiANCiAgKiBAYXV0aG9yIEdyZWdvaXJlIERVUEUgKE1pYS1Tb2Z0d2FyZSkNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgUmVmZXJlZEZpbGVIYW5kbGVyIHsNCiANCiAJcHJpdmF0ZSBCdW5kbGUgYnVuZGxlOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdXRpbHMvUXVlcnlVdGlscy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC91dGlscy9RdWVyeVV0aWxzLmphdmEKaW5kZXggZmJlZWZmZS4uZTY5NTVkYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC91dGlscy9RdWVyeVV0aWxzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC91dGlscy9RdWVyeVV0aWxzLmphdmEKQEAgLTEwLDYgKzEwLDEwIEBACiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuaW50ZXJuYWwudXRpbHM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIFF1ZXJ5VXRpbHMgew0KIAlwcml2YXRlIFF1ZXJ5VXRpbHMoKSB7DQogCQkvLyBub3QgaW5zdGFudGlhYmxlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL0VWYWxpZGF0b3JBZGFwdGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vRVZhbGlkYXRvckFkYXB0ZXIuamF2YQppbmRleCA2NDJlYmQ2Li4zZDVkMWYzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vRVZhbGlkYXRvckFkYXB0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vRVZhbGlkYXRvckFkYXB0ZXIuamF2YQpAQCAtMjksNyArMjksOSBAQAogICogVGhpcyBjbGFzcyBoYXMgYmVlbiB3cml0dGVuIHVzaW5nIHRoZSAiVHV0b3JpYWw6IEVNRiBWYWxpZGF0aW9uIEFkYXB0ZXIiDQogICogZG9jdW1lbnRhdGlvbiAoe0BsaW5rDQogICogL29yZy5lY2xpcHNlLmVtZi52YWxpZGF0aW9uLmRvYy90dXRvcmlhbHMvdmFsaWRhdGlvbkFkYXB0ZXJUdXRvcmlhbC5odG1sfSkNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRVZhbGlkYXRvckFkYXB0ZXIgZXh0ZW5kcyBFT2JqZWN0VmFsaWRhdG9yIHsNCiANCiAJcHJpdmF0ZSBmaW5hbCBJQmF0Y2hWYWxpZGF0b3IgYmF0Y2hWYWxpZGF0b3I7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL0ltcGxlbWVudGF0aW9uQ2xhc3NJbnRlcmZhY2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9JbXBsZW1lbnRhdGlvbkNsYXNzSW50ZXJmYWNlLmphdmEKaW5kZXggMTJmMDE1MS4uYTQ4ZTk5MSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL0ltcGxlbWVudGF0aW9uQ2xhc3NJbnRlcmZhY2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vSW1wbGVtZW50YXRpb25DbGFzc0ludGVyZmFjZS5qYXZhCkBAIC00Nyw2ICs0NywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEltcGxlbWVudGF0aW9uQ2xhc3NJbnRlcmZhY2UgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCXByaXZhdGUgY2xhc3MgVW5yZXNvbHZlZFR5cGUgZXh0ZW5kcyBFeGNlcHRpb24gew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9JbXBsZW1lbnRhdGlvbkNsYXNzTmFtZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL0ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lLmphdmEKaW5kZXggZWQyNmIwZi4uMTBjNzZhYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL0ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL0ltcGxlbWVudGF0aW9uQ2xhc3NOYW1lLmphdmEKQEAgLTM0LDcgKzM0LDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZTsNCiANCi0vKiogQ2hlY2sgdGhhdCB0aGUgaW1wbGVtZW50YXRpb24gY2xhc3MgZXhpc3RzIGFuZCBoYXMgbm8gY29tcGlsYXRpb24gZXJyb3JzLiAqLw0KKy8qKg0KKyAqIENoZWNrIHRoYXQgdGhlIGltcGxlbWVudGF0aW9uIGNsYXNzIGV4aXN0cyBhbmQgaGFzIG5vIGNvbXBpbGF0aW9uIGVycm9ycy4NCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSW1wbGVtZW50YXRpb25DbGFzc05hbWUgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9Nb2RlbFF1ZXJ5U2V0TmFtZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL01vZGVsUXVlcnlTZXROYW1lLmphdmEKaW5kZXggZTY3ZjQxOS4uMjEwZjY5MSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL01vZGVsUXVlcnlTZXROYW1lLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL01vZGVsUXVlcnlTZXROYW1lLmphdmEKQEAgLTE2LDYgKzE2LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLnZhbGlkYXRpb24uSVZhbGlkYXRpb25Db250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5Nb2RlbFF1ZXJ5U2V0Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2RlbFF1ZXJ5U2V0TmFtZSBleHRlbmRzIEFic3RyYWN0TW9kZWxDb25zdHJhaW50IHsNCiANCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL01vZGVsUXVlcnlTZXRSb290LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vTW9kZWxRdWVyeVNldFJvb3QuamF2YQppbmRleCA4MzZhMzk1Li4yYTkxNThmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vTW9kZWxRdWVyeVNldFJvb3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vTW9kZWxRdWVyeVNldFJvb3QuamF2YQpAQCAtMTYsNiArMTYsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYudmFsaWRhdGlvbi5FTUZFdmVudFR5cGU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi52YWxpZGF0aW9uLklWYWxpZGF0aW9uQ29udGV4dDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeVNldFJvb3QgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9Ob25FbXB0eU5hbWUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9Ob25FbXB0eU5hbWUuamF2YQppbmRleCA5YmQxYWJlLi42Y2FjYWE3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vTm9uRW1wdHlOYW1lLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL05vbkVtcHR5TmFtZS5qYXZhCkBAIC0xOSw2ICsxOSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlQYXJhbWV0ZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlTZXQ7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE5vbkVtcHR5TmFtZSBleHRlbmRzIEFic3RyYWN0TW9kZWxDb25zdHJhaW50IHsNCiANCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1BhcmFtZXRlclVuaXF1ZU5hbWUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9QYXJhbWV0ZXJVbmlxdWVOYW1lLmphdmEKaW5kZXggZDcyZGZkZi4uNTNjZTAwNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1BhcmFtZXRlclVuaXF1ZU5hbWUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vUGFyYW1ldGVyVW5pcXVlTmFtZS5qYXZhCkBAIC0xOSw2ICsxOSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlQYXJhbWV0ZXI7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFBhcmFtZXRlclVuaXF1ZU5hbWUgZXh0ZW5kcyBBYnN0cmFjdE1vZGVsQ29uc3RyYWludCB7DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9SZXR1cm5UeXBlVmFsaWRhdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1JldHVyblR5cGVWYWxpZGF0aW9uLmphdmEKaW5kZXggNGM5NGIwOS4uMGEzNzNkZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1JldHVyblR5cGVWYWxpZGF0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1JldHVyblR5cGVWYWxpZGF0aW9uLmphdmEKQEAgLTI3LDYgKzI3LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3I7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFJldHVyblR5cGVWYWxpZGF0aW9uIGV4dGVuZHMgQWJzdHJhY3RNb2RlbENvbnN0cmFpbnQgew0KIA0KIAlAT3ZlcnJpZGUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vU2NvcGVWYWxpZGF0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vU2NvcGVWYWxpZGF0aW9uLmphdmEKaW5kZXggMDM0MDE0Yi4uZWI3MjRhYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1Njb3BlVmFsaWRhdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9TY29wZVZhbGlkYXRpb24uamF2YQpAQCAtMjMsNiArMjMsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5Nb2RlbFF1ZXJ5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLmludGVybmFsLkFjdGl2YXRvcjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgU2NvcGVWYWxpZGF0aW9uIGV4dGVuZHMgQWJzdHJhY3RNb2RlbENvbnN0cmFpbnQgew0KIA0KIAlAT3ZlcnJpZGUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vVW5pcXVlTmFtZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9pbnRlcm5hbC92YWxpZGF0aW9uL1VuaXF1ZU5hbWUuamF2YQppbmRleCBlMjlmOTAxLi42Y2JiNzE0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2ludGVybmFsL3ZhbGlkYXRpb24vVW5pcXVlTmFtZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvaW50ZXJuYWwvdmFsaWRhdGlvbi9VbmlxdWVOYW1lLmphdmEKQEAgLTE5LDYgKzE5LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuTW9kZWxRdWVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuTW9kZWxRdWVyeVNldDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVW5pcXVlTmFtZSBleHRlbmRzIEFic3RyYWN0TW9kZWxDb25zdHJhaW50IHsNCiANCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL0lKYXZhTW9kZWxRdWVyeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL0lKYXZhTW9kZWxRdWVyeS5qYXZhCmluZGV4IGE0Y2E2NWYuLjJhMTVjNzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9JSmF2YU1vZGVsUXVlcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2phdmEvSUphdmFNb2RlbFF1ZXJ5LmphdmEKQEAgLTE5LDcgKzE5LDkgQEAKICAqICAgICAgICAgICAgdGhlIGNvbnRleHQgdHlwZQ0KICAqIEBwYXJhbSA8Uj4NCiAgKiAgICAgICAgICAgIHRoZSByZXR1cm4gdHlwZQ0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgSUphdmFNb2RlbFF1ZXJ5PFQgZXh0ZW5kcyBFT2JqZWN0LCBSPiB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9QYXJhbWV0ZXJWYWx1ZUxpc3QuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9QYXJhbWV0ZXJWYWx1ZUxpc3QuamF2YQppbmRleCA4YTljZWM4Li5jYTI4NGRhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2phdmEvUGFyYW1ldGVyVmFsdWVMaXN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL1BhcmFtZXRlclZhbHVlTGlzdC5qYXZhCkBAIC0yMSw3ICsyMSw5IEBACiAvKioNCiAgKiBMaXN0IG9mIHF1ZXJ5IHBhcmFtZXRlcnMsIHdpdGggdHdvIG1ldGhvZCBmb3IgbmFtZSBkaXJlY3QgdmFsdWUgLyBwYXJhbSBhY2Nlc3MuIA0KICAqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFBhcmFtZXRlclZhbHVlTGlzdCBleHRlbmRzIEFycmF5TGlzdDxNb2RlbFF1ZXJ5UGFyYW1ldGVyVmFsdWU+IHsNCiANCiAJLyoqIFNFUklBTCBJRCAqLw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhTW9kZWxRdWVyeUFkYXB0ZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhTW9kZWxRdWVyeUFkYXB0ZXIuamF2YQppbmRleCA0OTU2MzE3Li43Y2RkOWMzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2phdmEvaW50ZXJuYWwvSmF2YU1vZGVsUXVlcnlBZGFwdGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL2ludGVybmFsL0phdmFNb2RlbFF1ZXJ5QWRhcHRlci5qYXZhCkBAIC0yMiw3ICsyMiw5IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIEdyZWdvaXJlIERVUEUgKE1pYS1Tb2Z0d2FyZSkNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSmF2YU1vZGVsUXVlcnlBZGFwdGVyIGV4dGVuZHMgQWJzdHJhY3RNb2RlbFF1ZXJ5IHsNCiANCiAJcHJpdmF0ZSBmaW5hbCBJSmF2YU1vZGVsUXVlcnk8RU9iamVjdCwgPz4gamF2YU1vZGVsUXVlcnk7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL2ludGVybmFsL0phdmFNb2RlbFF1ZXJ5RmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL2ludGVybmFsL0phdmFNb2RlbFF1ZXJ5RmFjdG9yeS5qYXZhCmluZGV4IDYwZTZhZmYuLjhhYTkxNmYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhTW9kZWxRdWVyeUZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2phdmEvaW50ZXJuYWwvSmF2YU1vZGVsUXVlcnlGYWN0b3J5LmphdmEKQEAgLTYwLDYgKzYwLDEwIEBACiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZTsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUV4Y2VwdGlvbjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSmF2YU1vZGVsUXVlcnlGYWN0b3J5IGltcGxlbWVudHMgSU1vZGVsUXVlcnlGYWN0b3J5IHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBERUxBWSA9IDEwMDA7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL2ludGVybmFsL0phdmFRdWVyeUltcGxNYXJrZXJDaGFuZ2VMaXN0ZW5lci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9qYXZhL2ludGVybmFsL0phdmFRdWVyeUltcGxNYXJrZXJDaGFuZ2VMaXN0ZW5lci5qYXZhCmluZGV4IDA5YWI3MmYuLmZiOGZmNjUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhUXVlcnlJbXBsTWFya2VyQ2hhbmdlTGlzdGVuZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2phdmEvaW50ZXJuYWwvSmF2YVF1ZXJ5SW1wbE1hcmtlckNoYW5nZUxpc3RlbmVyLmphdmEKQEAgLTQ5LDcgKzQ5LDkgQEAKICAqIExpc3RlbnMgdG8gY2hhbmdlcyBpbiB0aGUgd29ya3NwYWNlIGFuZCBxdWVyeSBzZXQgY2F0YWxvZywgYW5kIHJldmFsaWRhdGVzDQogICogdGhlIHByb2plY3RzIGNvbnRhaW5pbmcgUXVlcnlTZXRzIHdoZW4gdGhlIEphdmEgaW1wbGVtZW50YXRpb24gY2xhc3MNCiAgKiByZWZlcmVuY2VkIGJ5IG9uZSBvZiB0aGVpciBxdWVyaWVzIGlzIG1vZGlmaWVkLg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBKYXZhUXVlcnlJbXBsTWFya2VyQ2hhbmdlTGlzdGVuZXIgaW1wbGVtZW50cyBJUmVzb3VyY2VDaGFuZ2VMaXN0ZW5lciwNCiAJCU1vZGlzY29DYXRhbG9nQ2hhbmdlTGlzdGVuZXIsIE5vblZhbGlkRmlsZUxpc3RlbmVyIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL2phdmEvaW50ZXJuYWwvSmF2YVZhbGlkYXRpb25RdWVyeUJ1aWxkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhVmFsaWRhdGlvblF1ZXJ5QnVpbGRlci5qYXZhCmluZGV4IDIyMjljNzUuLjRiOWZhMDcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhVmFsaWRhdGlvblF1ZXJ5QnVpbGRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvamF2YS9pbnRlcm5hbC9KYXZhVmFsaWRhdGlvblF1ZXJ5QnVpbGRlci5qYXZhCkBAIC0zMSw2ICszMSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuTW9kZWxRdWVyeVNldENhdGFsb2c7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKYXZhVmFsaWRhdGlvblF1ZXJ5QnVpbGRlciBpbXBsZW1lbnRzIElNb2Rpc2NvQnVpbGRlciB7DQogDQogCXB1YmxpYyBKYXZhVmFsaWRhdGlvblF1ZXJ5QnVpbGRlcigpIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL29jbC9PQ0xNb2RlbFF1ZXJ5QWRhcHRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9vY2wvT0NMTW9kZWxRdWVyeUFkYXB0ZXIuamF2YQppbmRleCA5MzZhMzkwLi5hMjc0NjY4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL29jbC9PQ0xNb2RlbFF1ZXJ5QWRhcHRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvb2NsL09DTE1vZGVsUXVlcnlBZGFwdGVyLmphdmEKQEAgLTMyLDYgKzMyLDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uub2NsLmV4cHJlc3Npb25zLk9DTEV4cHJlc3Npb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLm9jbC5oZWxwZXIuT0NMSGVscGVyOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBPQ0xNb2RlbFF1ZXJ5QWRhcHRlciBleHRlbmRzIEFic3RyYWN0TW9kZWxRdWVyeSB7DQogDQogCXByaXZhdGUgT0NMRXhwcmVzc2lvbjxFQ2xhc3NpZmllcj4gcXVlcnk7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9vY2wvT2NsTW9kZWxRdWVyeUZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvb2NsL09jbE1vZGVsUXVlcnlGYWN0b3J5LmphdmEKaW5kZXggYmUyY2E5ZS4uOTAxOGViNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9vY2wvT2NsTW9kZWxRdWVyeUZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL29jbC9PY2xNb2RlbFF1ZXJ5RmFjdG9yeS5qYXZhCkBAIC0xOSw2ICsxOSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuZXhjZXB0aW9uLk1vZGVsUXVlcnlFeGNlcHRpb247DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE9jbE1vZGVsUXVlcnlGYWN0b3J5IGltcGxlbWVudHMgSU1vZGVsUXVlcnlGYWN0b3J5IHsNCiANCiAJcHVibGljIEFic3RyYWN0TW9kZWxRdWVyeSBjcmVhdGUoZmluYWwgTW9kZWxRdWVyeSBtb2RlbFF1ZXJ5LCBmaW5hbCBCdW5kbGUgYnVuZGxlKQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvcHJvcGVydHlUZXN0ZXJzL1F1ZXJ5UHJvcGVydHlUZXN0ZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2NvcmUvcHJvcGVydHlUZXN0ZXJzL1F1ZXJ5UHJvcGVydHlUZXN0ZXIuamF2YQppbmRleCA2MmZjMWE4Li43MTBjOGRjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9jb3JlL3Byb3BlcnR5VGVzdGVycy9RdWVyeVByb3BlcnR5VGVzdGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvY29yZS9wcm9wZXJ0eVRlc3RlcnMvUXVlcnlQcm9wZXJ0eVRlc3Rlci5qYXZhCkBAIC0xNyw2ICsxNywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlTZXQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUuTW9kZWxRdWVyeVNldENhdGFsb2c7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5UHJvcGVydHlUZXN0ZXIgZXh0ZW5kcyBQcm9wZXJ0eVRlc3RlciB7DQogDQogCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFFVRVJZID0gImlzTW9EaXNjb1F1ZXJ5IjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDEwY2M1MTUuLjhiNWQxNDcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0O3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC5wcm92aWRlci5RdWVyeUVkaXRQbHVnaW4kSW1wbGVtZW50YXRpb24NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggMjBlMjJjOS4uYjg4MjVmYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9wbHVnaW4ucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC04LDcgKzgsNyBAQAogIyBDb250cmlidXRvcnM6DQogIyAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLXBsdWdpbk5hbWUgPSBNb0Rpc2NvIFF1ZXJ5IEVkaXQgU3VwcG9ydCAoSW5jdWJhdGlvbikNCitwbHVnaW5OYW1lID0gTW9EaXNjbyBRdWVyeSBFZGl0IFN1cHBvcnQgKERlcHJlY2F0ZWQsIGhhcyB0byBiZSByZXBsYWNlZCBieSBFTUYgRmFjZXQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZSA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIA0KIF9VSV9DcmVhdGVDaGlsZF90ZXh0ID0gezB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9KYXZhTW9kZWxRdWVyeUl0ZW1Qcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9KYXZhTW9kZWxRdWVyeUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDZhMzM3MjUuLmY5ZTlmMWMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvSmF2YU1vZGVsUXVlcnlJdGVtUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL0phdmFNb2RlbFF1ZXJ5SXRlbVByb3ZpZGVyLmphdmEKQEAgLTIwLDcgKzIwLDYgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyRmFjdG9yeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5Db21wb3NlYWJsZUFkYXB0ZXJGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JRWRpdGluZ0RvbWFpbkl0ZW1Qcm92aWRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSUl0ZW1MYWJlbFByb3ZpZGVyOw0KQEAgLTMwLDcgKzI5LDYgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JVHJlZUl0ZW1Db250ZW50UHJvdmlkZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLkl0ZW1Qcm9wZXJ0eURlc2NyaXB0b3I7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLlZpZXdlck5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuSmF2YU1vZGVsUXVlcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZTsNCiANCkBAIC0zOSw3ICszNyw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSmF2YU1vZGVsUXVlcnlJdGVtUHJvdmlkZXINCiAJZXh0ZW5kcyBNb2RlbFF1ZXJ5SXRlbVByb3ZpZGVyDQogCWltcGxlbWVudHMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL01vZGVsUXVlcnlJdGVtUHJvdmlkZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvTW9kZWxRdWVyeUl0ZW1Qcm92aWRlci5qYXZhCmluZGV4IDQwMjlkZjkuLjgyN2U2YzUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvTW9kZWxRdWVyeUl0ZW1Qcm92aWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvTW9kZWxRdWVyeUl0ZW1Qcm92aWRlci5qYXZhCkBAIC00MSw3ICs0MSw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeUl0ZW1Qcm92aWRlcg0KIAlleHRlbmRzIEl0ZW1Qcm92aWRlckFkYXB0ZXINCiAJaW1wbGVtZW50cw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvTW9kZWxRdWVyeVBhcmFtZXRlckl0ZW1Qcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9Nb2RlbFF1ZXJ5UGFyYW1ldGVySXRlbVByb3ZpZGVyLmphdmEKaW5kZXggNzk3MGZmYS4uMjk1NGRmNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9Nb2RlbFF1ZXJ5UGFyYW1ldGVySXRlbVByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9Nb2RlbFF1ZXJ5UGFyYW1ldGVySXRlbVByb3ZpZGVyLmphdmEKQEAgLTIwLDkgKzIwLDcgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyRmFjdG9yeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuUmVzb3VyY2VMb2NhdG9yOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5Db21wb3NlYWJsZUFkYXB0ZXJGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JRWRpdGluZ0RvbWFpbkl0ZW1Qcm92aWRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSUl0ZW1MYWJlbFByb3ZpZGVyOw0KQEAgLTMzLDcgKzMxLDYgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JdGVtUHJvcGVydHlEZXNjcmlwdG9yOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JdGVtUHJvdmlkZXJBZGFwdGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5WaWV3ZXJOb3RpZmljYXRpb247DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlQYXJhbWV0ZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZTsNCiANCkBAIC00Miw3ICszOSw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeVBhcmFtZXRlckl0ZW1Qcm92aWRlcg0KIAlleHRlbmRzIEl0ZW1Qcm92aWRlckFkYXB0ZXINCiAJaW1wbGVtZW50cw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvTW9kZWxRdWVyeVNldEl0ZW1Qcm92aWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9Nb2RlbFF1ZXJ5U2V0SXRlbVByb3ZpZGVyLmphdmEKaW5kZXggMGNhZGMyNy4uZTgyMDliOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9Nb2RlbFF1ZXJ5U2V0SXRlbVByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9Nb2RlbFF1ZXJ5U2V0SXRlbVByb3ZpZGVyLmphdmEKQEAgLTQyLDcgKzQyLDkgQEAKICAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2RlbFF1ZXJ5U2V0SXRlbVByb3ZpZGVyDQogCWV4dGVuZHMgSXRlbVByb3ZpZGVyQWRhcHRlcg0KIAlpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9PQ0xNb2RlbFF1ZXJ5SXRlbVByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL09DTE1vZGVsUXVlcnlJdGVtUHJvdmlkZXIuamF2YQppbmRleCBhMGU4ZDBiLi4yYjI0Y2NlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL09DTE1vZGVsUXVlcnlJdGVtUHJvdmlkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL09DTE1vZGVsUXVlcnlJdGVtUHJvdmlkZXIuamF2YQpAQCAtMjAsNyArMjAsNiBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5LkFkYXB0ZXJGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLkNvbXBvc2VhYmxlQWRhcHRlckZhY3Rvcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLklFZGl0aW5nRG9tYWluSXRlbVByb3ZpZGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JSXRlbUxhYmVsUHJvdmlkZXI7DQpAQCAtMzAsNyArMjksNiBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LnByb3ZpZGVyLklUcmVlSXRlbUNvbnRlbnRQcm92aWRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSXRlbVByb3BlcnR5RGVzY3JpcHRvcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuVmlld2VyTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5PQ0xNb2RlbFF1ZXJ5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5RdWVyeVBhY2thZ2U7DQogDQpAQCAtMzksNyArMzcsOSBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE9DTE1vZGVsUXVlcnlJdGVtUHJvdmlkZXINCiAJZXh0ZW5kcyBNb2RlbFF1ZXJ5SXRlbVByb3ZpZGVyDQogCWltcGxlbWVudHMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL1F1ZXJ5RWRpdFBsdWdpbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9RdWVyeUVkaXRQbHVnaW4uamF2YQppbmRleCA0NTZhNDdkLi4wYWU3MWFiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0L3Byb3ZpZGVyL1F1ZXJ5RWRpdFBsdWdpbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvUXVlcnlFZGl0UGx1Z2luLmphdmEKQEAgLTIzLDcgKzIzLDkgQEAKICAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBRdWVyeUVkaXRQbHVnaW4gZXh0ZW5kcyBFTUZQbHVnaW4gew0KIAkvKioNCiAJICogS2VlcCB0cmFjayBvZiB0aGUgc2luZ2xldG9uLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXQvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXQvcHJvdmlkZXIvUXVlcnlJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9RdWVyeUl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggYzVjMDk4ZC4uYmViNjBjMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9RdWVyeUl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdC9wcm92aWRlci9RdWVyeUl0ZW1Qcm92aWRlckFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTIwLDcgKzIwLDYgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5DaGFuZ2VOb3RpZmllcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuQ29tcG9zZWFibGVBZGFwdGVyRmFjdG9yeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuQ29tcG9zZWRBZGFwdGVyRmFjdG9yeTsNCkBAIC0zMiw3ICszMSw2IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSU5vdGlmeUNoYW5nZWRMaXN0ZW5lcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVkaXQucHJvdmlkZXIuSVN0cnVjdHVyZWRJdGVtQ29udGVudFByb3ZpZGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5wcm92aWRlci5JVHJlZUl0ZW1Db250ZW50UHJvdmlkZXI7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnV0aWwuUXVlcnlBZGFwdGVyRmFjdG9yeTsNCiANCiAvKioNCkBAIC00Myw3ICs0MSw5IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUXVlcnlJdGVtUHJvdmlkZXJBZGFwdGVyRmFjdG9yeSBleHRlbmRzIFF1ZXJ5QWRhcHRlckZhY3RvcnkgaW1wbGVtZW50cyBDb21wb3NlYWJsZUFkYXB0ZXJGYWN0b3J5LCBJQ2hhbmdlTm90aWZpZXIsIElEaXNwb3NhYmxlIHsNCiAJLyoqDQogCSAqIFRoaXMga2VlcHMgdHJhY2sgb2YgdGhlIHJvb3QgYWRhcHRlciBmYWN0b3J5IHRoYXQgZGVsZWdhdGVzIHRvIHRoaXMgYWRhcHRlciBmYWN0b3J5Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA3Yzk1Njc0Li5lODQ2YTQ3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3IvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlcGx1Z2luTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvcjtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci5wcmVzZW50YXRpb24uUXVlcnlFZGl0b3JQbHVnaW4kSW1wbGVtZW50YXRpb24NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3BsdWdpbi5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3BsdWdpbi5wcm9wZXJ0aWVzCmluZGV4IDI3Mjc5OTguLjliZjI2OWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9wbHVnaW4ucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3IvcGx1Z2luLnByb3BlcnRpZXMKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdG9yL01lc3NhZ2VzLmphdmEKaW5kZXggZmUyOGQ3Zi4uYjFkYmU0ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9NZXNzYWdlcy5qYXZhCkBAIC0xMyw2ICsxMywxMCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgUXVlcnlBY3Rpb25CYXJDb250cmlidXRvcl9TaG93SW47DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL0xvYWRNZXRhTW9kZWxSZXNvdXJjZUFjdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL0xvYWRNZXRhTW9kZWxSZXNvdXJjZUFjdGlvbi5qYXZhCmluZGV4IDA3YTA0OTQuLjE0NzEwMzQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdG9yL3ByZXNlbnRhdGlvbi9Mb2FkTWV0YU1vZGVsUmVzb3VyY2VBY3Rpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vTG9hZE1ldGFNb2RlbFJlc291cmNlQWN0aW9uLmphdmEKQEAgLTM0LDggKzM0LDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgZ2R1cGUNCi0gKiANCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTG9hZE1ldGFNb2RlbFJlc291cmNlQWN0aW9uIGV4dGVuZHMgTG9hZFJlc291cmNlQWN0aW9uIHsNCiANCiAJcHVibGljIExvYWRNZXRhTW9kZWxSZXNvdXJjZUFjdGlvbigpIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlBY3Rpb25CYXJDb250cmlidXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL1F1ZXJ5QWN0aW9uQmFyQ29udHJpYnV0b3IuamF2YQppbmRleCA5ZWJlOGY5Li43OWYyNTYwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlBY3Rpb25CYXJDb250cmlidXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdG9yL3ByZXNlbnRhdGlvbi9RdWVyeUFjdGlvbkJhckNvbnRyaWJ1dG9yLmphdmEKQEAgLTUzLDcgKzUzLDkgQEAKICAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZCBOT1QNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUXVlcnlBY3Rpb25CYXJDb250cmlidXRvcg0KIAlleHRlbmRzIEVkaXRpbmdEb21haW5BY3Rpb25CYXJDb250cmlidXRvcg0KIAlpbXBsZW1lbnRzIElTZWxlY3Rpb25DaGFuZ2VkTGlzdGVuZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdG9yL3ByZXNlbnRhdGlvbi9RdWVyeUVkaXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL1F1ZXJ5RWRpdG9yLmphdmEKaW5kZXggZjU4N2MxYS4uODRjNTI4NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL1F1ZXJ5RWRpdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL1F1ZXJ5RWRpdG9yLmphdmEKQEAgLTE2Niw3ICsxNjYsOSBAQAogICogZW5kLXVzZXItZG9jIC0tPg0KICAqIA0KICAqIEBnZW5lcmF0ZWQgTk9UDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5RWRpdG9yIGV4dGVuZHMgTXVsdGlQYWdlRWRpdG9yUGFydCBpbXBsZW1lbnRzIElFZGl0aW5nRG9tYWluUHJvdmlkZXIsDQogCQlJU2VsZWN0aW9uUHJvdmlkZXIsIElNZW51TGlzdGVuZXIsIElWaWV3ZXJQcm92aWRlciwgSUdvdG9NYXJrZXIsIElTaG93SW5Tb3VyY2UsDQogCQlJU2hvd0luVGFyZ2V0TGlzdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL1F1ZXJ5RWRpdG9yUGx1Z2luLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlFZGl0b3JQbHVnaW4uamF2YQppbmRleCA5NzZjYWUyLi4wYmVjZTU0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlFZGl0b3JQbHVnaW4uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlFZGl0b3JQbHVnaW4uamF2YQpAQCAtMjQsNyArMjQsOSBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIFF1ZXJ5RWRpdG9yUGx1Z2luIGV4dGVuZHMgRU1GUGx1Z2luIHsNCiAJLyoqDQogCSAqIEtlZXAgdHJhY2sgb2YgdGhlIHNpbmdsZXRvbi4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlNb2RlbFdpemFyZC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuZWRpdG9yL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9lZGl0b3IvcHJlc2VudGF0aW9uL1F1ZXJ5TW9kZWxXaXphcmQuamF2YQppbmRleCAwNDNmMjU2Li5iZjhhNjc3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5lZGl0b3Ivc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2VkaXRvci9wcmVzZW50YXRpb24vUXVlcnlNb2RlbFdpemFyZC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmVkaXRvci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvZWRpdG9yL3ByZXNlbnRhdGlvbi9RdWVyeU1vZGVsV2l6YXJkLmphdmEKQEAgLTY1LDcgKzY1LDkgQEAKICAqIC0tPiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5TW9kZWxXaXphcmQgZXh0ZW5kcyBXaXphcmQgaW1wbGVtZW50cyBJTmV3V2l6YXJkIHsNCiAJLyoqDQogCSAqIFRoZSBzdXBwb3J0ZWQgZXh0ZW5zaW9ucyBmb3IgY3JlYXRlZCBmaWxlcy4gPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4gPCEtLQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAyZmE4YzkyLi41NzA1YzM4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlcGx1Z2luTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aDtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvcGx1Z2luLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggN2MyYzY2Yy4uZjg0OWQ1YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3BsdWdpbi5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9wbHVnaW4ucHJvcGVydGllcwpAQCAtOCw1ICs4LDUgQEAKICMgQ29udHJpYnV0b3JzOg0KICMgICAgR3JlZ29pcmUgRFVQRSAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi1wbHVnaW5OYW1lID0gTW9EaXNjbyBKWFBhdGggUXVlcnkgTW9kZWwgKEluY3ViYXRpb24pDQorcGx1Z2luTmFtZSA9IE1vRGlzY28gSlhQYXRoIFF1ZXJ5IE1vZGVsIChEZXByZWNhdGVkLCBoYXMgdG8gYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0KSAoSW5jdWJhdGlvbikNCiBwcm92aWRlck5hbWUgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9KWFBhdGhNb2RlbFF1ZXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9KWFBhdGhNb2RlbFF1ZXJ5LmphdmEKaW5kZXggZTZjNzA4Ny4uMjA3ZGNmOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvSlhQYXRoTW9kZWxRdWVyeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL0pYUGF0aE1vZGVsUXVlcnkuamF2YQpAQCAtMzYsNyArMzYsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguSnhwYXRoUGFja2FnZSNnZXRKWFBhdGhNb2RlbFF1ZXJ5KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBKWFBhdGhNb2RlbFF1ZXJ5IGV4dGVuZHMgTW9kZWxRdWVyeSB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5RdWVyeTwvYj48L2VtPicgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL0p4cGF0aEZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL0p4cGF0aEZhY3RvcnkuamF2YQppbmRleCBhNDhkMmEzLi5hMTAzMjljIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9KeHBhdGhGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvSnhwYXRoRmFjdG9yeS5qYXZhCkBAIC0yMiw3ICsyMiw5IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC5KeHBhdGhQYWNrYWdlDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgSnhwYXRoRmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsNCiAJLyoqDQogCSAqIFRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgdGhlIGZhY3RvcnkuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvSnhwYXRoUGFja2FnZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvSnhwYXRoUGFja2FnZS5qYXZhCmluZGV4IDg4MmE3OWIuLjBhNzRmODMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL0p4cGF0aFBhY2thZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9KeHBhdGhQYWNrYWdlLmphdmEKQEAgLTMyLDcgKzMyLDkgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLkp4cGF0aEZhY3RvcnkNCiAgKiBAbW9kZWwga2luZD0icGFja2FnZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBKeHBhdGhQYWNrYWdlIGV4dGVuZHMgRVBhY2thZ2Ugew0KIAkvKioNCiAJICogVGhlIHBhY2thZ2UgbmFtZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9pbXBsL0pYUGF0aE1vZGVsUXVlcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9pbXBsL0pYUGF0aE1vZGVsUXVlcnlJbXBsLmphdmEKaW5kZXggZDRjNGZiYi4uYzdhODg2NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvaW1wbC9KWFBhdGhNb2RlbFF1ZXJ5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL2ltcGwvSlhQYXRoTW9kZWxRdWVyeUltcGwuamF2YQpAQCAtMTQsOSArMTQsNyBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiANCiANCkBAIC0zNiw3ICszNCw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEpYUGF0aE1vZGVsUXVlcnlJbXBsIGV4dGVuZHMgTW9kZWxRdWVyeUltcGwgaW1wbGVtZW50cyBKWFBhdGhNb2RlbFF1ZXJ5IHsNCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRRdWVyeSgpIDxlbT5RdWVyeTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL2ltcGwvSnhwYXRoRmFjdG9yeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL2ltcGwvSnhwYXRoRmFjdG9yeUltcGwuamF2YQppbmRleCBkNGQ2MGQ0Li4xMmNkYWY5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9pbXBsL0p4cGF0aEZhY3RvcnlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvaW1wbC9KeHBhdGhGYWN0b3J5SW1wbC5qYXZhCkBAIC0yNSw3ICsyNSw5IEBACiAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+RmFjdG9yeTwvYj4uDQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKeHBhdGhGYWN0b3J5SW1wbCBleHRlbmRzIEVGYWN0b3J5SW1wbCBpbXBsZW1lbnRzIEp4cGF0aEZhY3Rvcnkgew0KIAkvKioNCiAJICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBmYWN0b3J5IGltcGxlbWVudGF0aW9uLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL2ltcGwvSnhwYXRoUGFja2FnZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL2ltcGwvSnhwYXRoUGFja2FnZUltcGwuamF2YQppbmRleCA0MmUxMDRmLi5kMGNmZDZmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9pbXBsL0p4cGF0aFBhY2thZ2VJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvaW1wbC9KeHBhdGhQYWNrYWdlSW1wbC5qYXZhCkBAIC0xNiwxMSArMTYsOCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQXR0cmlidXRlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVBhY2thZ2U7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVQYWNrYWdlSW1wbDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuUXVlcnlQYWNrYWdlOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguSlhQYXRoTW9kZWxRdWVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLkp4cGF0aEZhY3Rvcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC5KeHBhdGhQYWNrYWdlOw0KQEAgLTMwLDcgKzI3LDkgQEAKICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5QYWNrYWdlPC9iPi4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEp4cGF0aFBhY2thZ2VJbXBsIGV4dGVuZHMgRVBhY2thZ2VJbXBsIGltcGxlbWVudHMgSnhwYXRoUGFja2FnZSB7DQogCS8qKg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3F1ZXJ5L0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvcXVlcnkvQWN0aXZhdG9yLmphdmEKaW5kZXggMGI4ZDdkYS4uMzNjNjdmYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvcXVlcnkvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvcXVlcnkvQWN0aXZhdG9yLmphdmEKQEAgLTE1LDcgKzE1LDkgQEAKIA0KIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBQbHVnaW4gew0KIA0KIAkvLyBUaGUgcGx1Zy1pbiBJRA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3F1ZXJ5L0pYUGF0aE1vZGVsUXVlcnlBZGFwdGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9xdWVyeS9KWFBhdGhNb2RlbFF1ZXJ5QWRhcHRlci5qYXZhCmluZGV4IDQwMzg2OGUuLjA5OTVmY2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3F1ZXJ5L0pYUGF0aE1vZGVsUXVlcnlBZGFwdGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvcXVlcnkvSlhQYXRoTW9kZWxRdWVyeUFkYXB0ZXIuamF2YQpAQCAtMTksNiArMTksMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguSlhQYXRoTW9kZWxRdWVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucnVudGltZS5Nb2RlbFF1ZXJ5UGFyYW1ldGVyVmFsdWU7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEpYUGF0aE1vZGVsUXVlcnlBZGFwdGVyIGV4dGVuZHMgQWJzdHJhY3RNb2RlbFF1ZXJ5IHsNCiANCiAJcHVibGljIEpYUGF0aE1vZGVsUXVlcnlBZGFwdGVyKGZpbmFsIEpYUGF0aE1vZGVsUXVlcnkgbW9kZWxRdWVyeSkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3F1ZXJ5L0pYUGF0aE1vZGVsUXVlcnlGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC9xdWVyeS9KWFBhdGhNb2RlbFF1ZXJ5RmFjdG9yeS5qYXZhCmluZGV4IDlhODQ1ZWQuLmM5NmQxYTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3F1ZXJ5L0pYUGF0aE1vZGVsUXVlcnlGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvcXVlcnkvSlhQYXRoTW9kZWxRdWVyeUZhY3RvcnkuamF2YQpAQCAtMjEsNiArMjEsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguSnhwYXRoUGFja2FnZTsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZTsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSlhQYXRoTW9kZWxRdWVyeUZhY3RvcnkgaW1wbGVtZW50cyBJTW9kZWxRdWVyeUZhY3Rvcnkgew0KIA0KIAlwdWJsaWMgQWJzdHJhY3RNb2RlbFF1ZXJ5IGNyZWF0ZShmaW5hbCBNb2RlbFF1ZXJ5IG1vZGVsUXVlcnksDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvdXRpbC9KeHBhdGhBZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvdXRpbC9KeHBhdGhBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IGExMzQ5ZmEuLmJjZDUyODYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3V0aWwvSnhwYXRoQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC91dGlsL0p4cGF0aEFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTE5LDggKzE5LDYgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuTW9kZWxRdWVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLio7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC5KWFBhdGhNb2RlbFF1ZXJ5Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguSnhwYXRoUGFja2FnZTsNCiANCiAvKioNCiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTI5LDcgKzI3LDkgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLkp4cGF0aFBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEp4cGF0aEFkYXB0ZXJGYWN0b3J5IGV4dGVuZHMgQWRhcHRlckZhY3RvcnlJbXBsIHsNCiAJLyoqDQogCSAqIFRoZSBjYWNoZWQgbW9kZWwgcGFja2FnZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC91dGlsL0p4cGF0aFN3aXRjaC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9qeHBhdGgvdXRpbC9KeHBhdGhTd2l0Y2guamF2YQppbmRleCA2ODdmOTcwLi5lYWMwNDgwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGgvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2p4cGF0aC91dGlsL0p4cGF0aFN3aXRjaC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvanhwYXRoL3V0aWwvSnhwYXRoU3dpdGNoLmphdmEKQEAgLTE5LDggKzE5LDYgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuTW9kZWxRdWVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLio7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lmp4cGF0aC5KWFBhdGhNb2RlbFF1ZXJ5Ow0KLWltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5qeHBhdGguSnhwYXRoUGFja2FnZTsNCiANCiAvKioNCiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KQEAgLTM0LDcgKzMyLDkgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuanhwYXRoLkp4cGF0aFBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEp4cGF0aFN3aXRjaDxUPiB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIG1vZGVsIHBhY2thZ2UNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDJmYjc4M2EuLmYwMmY5ZTggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCAzNmY3OWNhLi44M2U2YTMxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEzLDcgKzEzLDcgQEAKIGNhdGVnb3J5Lm5hbWUgPSBNb0Rpc2NvDQogY2F0YWxvZ1ZpZXcubmFtZSA9IFF1ZXJ5IFNldHMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIFF1ZXJ5IFVzZXIgSW50ZXJmYWNlIChJbmN1YmF0aW9uKQ0KK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBRdWVyeSBVc2VyIEludGVyZmFjZSAoRGVwcmVjYXRlZCwgaGFzIHRvIGJlIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCkgKEluY3ViYXRpb24pDQogcXVlcnlFeGVjdXRpb25WaWV3Lm5hbWUgPSBRdWVyeSBFeGVjdXRpb24NCiANCiBleHRlbnNpb24tcG9pbnQubmFtZSA9IERpc3BsYXkgdGhlIHJlc3VsdHMgb2YgYSBxdWVyeSBleGVjdXRpb24NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvQWN0aXZhdG9yLmphdmEKaW5kZXggYWQxZTcxYS4uODlhZWRmMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9BY3RpdmF0b3IuamF2YQpAQCAtMTUsNyArMTUsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KIA0KIAkvLyBUaGUgcGx1Zy1pbiBJRA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9JbWFnZVByb3ZpZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvSW1hZ2VQcm92aWRlci5qYXZhCmluZGV4IDgzNmFmMWUuLmY3ZDY1NWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9JbWFnZVByb3ZpZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL0ltYWdlUHJvdmlkZXIuamF2YQpAQCAtMTgsOCArMTgsOSBAQAogDQogLyoqDQogICogQGF1dGhvciBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpDQotICogDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIEltYWdlUHJvdmlkZXIgew0KIAkvLwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTU9ERUxfUVVFUllfU0VUID0gImljb25zL21vZGVsUXVlcnlTZXQucG5nIjsgLy8kTk9OLU5MUy0xJA0KIAkvLwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgTU9ERUxfUVVFUlkgPSAiaWNvbnMvbW9kZWxRdWVyeS5wbmciOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvTWVzc2FnZXMuamF2YQppbmRleCAxMTdlMzk4Li5mNzk5OGEwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvTWVzc2FnZXMuamF2YQpAQCAtMTUsOCArMTUsOSBAQAogDQogLyoqDQogICogQGF1dGhvciBnZHVwZQ0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgQ29udGV4dFBhbmVNZW51TWFuYWdlcl9SZW1vdmU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2FjdGlvbnMvQ3JlYXRlUXVlcnlTZXRBY3Rpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9hY3Rpb25zL0NyZWF0ZVF1ZXJ5U2V0QWN0aW9uLmphdmEKaW5kZXggZDJjYWM5NS4uYWIxODFhZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2FjdGlvbnMvQ3JlYXRlUXVlcnlTZXRBY3Rpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvYWN0aW9ucy9DcmVhdGVRdWVyeVNldEFjdGlvbi5qYXZhCkBAIC0xOCw2ICsxOCwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLklXb3JrYmVuY2g7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLlBsYXRmb3JtVUk7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIENyZWF0ZVF1ZXJ5U2V0QWN0aW9uIGV4dGVuZHMgQWN0aW9uIHsNCiANCiAJcHVibGljIENyZWF0ZVF1ZXJ5U2V0QWN0aW9uKCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9jb250cm9scy9RdWVyeUZpbHRlcmVkVHJlZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2NvbnRyb2xzL1F1ZXJ5RmlsdGVyZWRUcmVlLmphdmEKaW5kZXggNzU0MmFhNy4uYmFkNzQzNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2NvbnRyb2xzL1F1ZXJ5RmlsdGVyZWRUcmVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2NvbnRyb2xzL1F1ZXJ5RmlsdGVyZWRUcmVlLmphdmEKQEAgLTM2LDcgKzM2LDkgQEAKIC8qKg0KICAqIEEgY29udHJvbCB0aGF0IGRpc3BsYXlzIGEgdHJlZSBvZiBxdWVyaWVzIGluIHRoZWlyIHF1ZXJ5IHNldHMsIHdpdGggYSBmaWx0ZXINCiAgKiB0ZXh0IGZpZWxkLg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBRdWVyeUZpbHRlcmVkVHJlZSBleHRlbmRzIEZpbHRlcmVkVHJlZSB7DQogDQogCS8qKg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9kaWFsb2dzL1F1ZXJ5U2VsZWN0aW9uRGlhbG9nLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZGlhbG9ncy9RdWVyeVNlbGVjdGlvbkRpYWxvZy5qYXZhCmluZGV4IDYzZTU2MWEuLjE0ZWQ4MTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9kaWFsb2dzL1F1ZXJ5U2VsZWN0aW9uRGlhbG9nLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2RpYWxvZ3MvUXVlcnlTZWxlY3Rpb25EaWFsb2cuamF2YQpAQCAtNTQsNyArNTQsMTEgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5NZW51Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5TaGVsbDsNCiANCi0vKiogQSBkaWFsb2cgdG8gc2VsZWN0IGEge0BsaW5rIE1vZGVsUXVlcnl9ICovDQorLyoqDQorICogQSBkaWFsb2cgdG8gc2VsZWN0IGEge0BsaW5rIE1vZGVsUXVlcnl9DQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5U2VsZWN0aW9uRGlhbG9nIGV4dGVuZHMgRGlhbG9nIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgaW50IElOSVRJQUxfV0lEVEggPSA0MDA7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2V4Y2VwdGlvbnMvQ2xhc3NBbHJlYWR5RXhpc3RzRXhjZXB0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXhjZXB0aW9ucy9DbGFzc0FscmVhZHlFeGlzdHNFeGNlcHRpb24uamF2YQppbmRleCBhOGRkMjA2Li43MWMxODZiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXhjZXB0aW9ucy9DbGFzc0FscmVhZHlFeGlzdHNFeGNlcHRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXhjZXB0aW9ucy9DbGFzc0FscmVhZHlFeGlzdHNFeGNlcHRpb24uamF2YQpAQCAtMTAsNiArMTAsMTAgQEAKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkuZXhjZXB0aW9uczsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ2xhc3NBbHJlYWR5RXhpc3RzRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gLTczNTI5MTYyNzI0NDE1NzkwNzRMOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9leGNlcHRpb25zL1Jlc291cmNlVVJJRXhwZWN0ZWRFeGNlcHRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9leGNlcHRpb25zL1Jlc291cmNlVVJJRXhwZWN0ZWRFeGNlcHRpb24uamF2YQppbmRleCA2NGI2NTljLi4yYTQzMWYyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXhjZXB0aW9ucy9SZXNvdXJjZVVSSUV4cGVjdGVkRXhjZXB0aW9uLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2V4Y2VwdGlvbnMvUmVzb3VyY2VVUklFeHBlY3RlZEV4Y2VwdGlvbi5qYXZhCkBAIC0xMCw2ICsxMCwxMCBAQAogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS5leGNlcHRpb25zOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBSZXNvdXJjZVVSSUV4cGVjdGVkRXhjZXB0aW9uIGV4dGVuZHMgRXhjZXB0aW9uIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgbG9uZyBzZXJpYWxWZXJzaW9uVUlEID0gNjg5MTU4NTY5OTk0OTA3NzMwNUw7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2V4dGVuc2lvbnMvSVF1ZXJ5QXR0cmlidXRlc1dpemFyZFBhZ2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9leHRlbnNpb25zL0lRdWVyeUF0dHJpYnV0ZXNXaXphcmRQYWdlLmphdmEKaW5kZXggOTZhOTM5OS4uODAyNTcwMCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2V4dGVuc2lvbnMvSVF1ZXJ5QXR0cmlidXRlc1dpemFyZFBhZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXh0ZW5zaW9ucy9JUXVlcnlBdHRyaWJ1dGVzV2l6YXJkUGFnZS5qYXZhCkBAIC0xNCw2ICsxNCwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlTZXQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLndpemFyZC5JV2l6YXJkUGFnZTsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIElRdWVyeUF0dHJpYnV0ZXNXaXphcmRQYWdlIGV4dGVuZHMgSVdpemFyZFBhZ2Ugew0KIA0KIAkvKioNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXh0ZW5zaW9ucy9JUXVlcnlGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZXh0ZW5zaW9ucy9JUXVlcnlGYWN0b3J5LmphdmEKaW5kZXggZjkxNzVhNi4uZmUyZTZkYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2V4dGVuc2lvbnMvSVF1ZXJ5RmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9leHRlbnNpb25zL0lRdWVyeUZhY3RvcnkuamF2YQpAQCAtMTIsNiArMTIsMTAgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5Nb2RlbFF1ZXJ5Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgSVF1ZXJ5RmFjdG9yeSB7DQogCS8qKg0KIAkgKiBDcmVhdGUgYW4gaW5zdGFuY2Ugb2YgYSBtb2RlbCBxdWVyeSBvZiB0aGUgdHlwZSBjb3JyZXNwb25kaW5nIHRvIHRoZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9maWx0ZXJzL1F1ZXJ5UmV0dXJuVHlwZUZpbHRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2ZpbHRlcnMvUXVlcnlSZXR1cm5UeXBlRmlsdGVyLmphdmEKaW5kZXggYTcxYTYxOS4uYjk5ODBjZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2ZpbHRlcnMvUXVlcnlSZXR1cm5UeXBlRmlsdGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2ZpbHRlcnMvUXVlcnlSZXR1cm5UeXBlRmlsdGVyLmphdmEKQEAgLTE3LDYgKzE3LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uudmlld2Vycy5WaWV3ZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuVmlld2VyRmlsdGVyOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBRdWVyeVJldHVyblR5cGVGaWx0ZXIgZXh0ZW5kcyBWaWV3ZXJGaWx0ZXIgew0KIA0KIAlwcml2YXRlIGZpbmFsIExpc3Q8Q2xhc3M8Pz4+IGV4cGVjdGVkUmV0dXJuVHlwZXM7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2ZpbHRlcnMvUXVlcnlTY29wZUZpbHRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2ZpbHRlcnMvUXVlcnlTY29wZUZpbHRlci5qYXZhCmluZGV4IGZjZDM1ZDguLmY3YTI5MDAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9maWx0ZXJzL1F1ZXJ5U2NvcGVGaWx0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvZmlsdGVycy9RdWVyeVNjb3BlRmlsdGVyLmphdmEKQEAgLTE3LDYgKzE3LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uudmlld2Vycy5WaWV3ZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuVmlld2VyRmlsdGVyOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBRdWVyeVNjb3BlRmlsdGVyIGV4dGVuZHMgVmlld2VyRmlsdGVyIHsNCiANCiAJcHJpdmF0ZSBmaW5hbCBFQ2xhc3MgZXhwZWN0ZWRTY29wZTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvaGFuZGxlcnMvQ3JlYXRlSmF2YVF1ZXJ5Q2xhc3NIYW5kbGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvaGFuZGxlcnMvQ3JlYXRlSmF2YVF1ZXJ5Q2xhc3NIYW5kbGVyLmphdmEKaW5kZXggMDIwYjk0Ny4uYWMwOTY1OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2hhbmRsZXJzL0NyZWF0ZUphdmFRdWVyeUNsYXNzSGFuZGxlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9oYW5kbGVycy9DcmVhdGVKYXZhUXVlcnlDbGFzc0hhbmRsZXIuamF2YQpAQCAtMzksNiArMzksMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS51aS5JV29ya2JlbmNoV2luZG93Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS51aS5oYW5kbGVycy5IYW5kbGVyVXRpbDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ3JlYXRlSmF2YVF1ZXJ5Q2xhc3NIYW5kbGVyIGV4dGVuZHMgQWJzdHJhY3RIYW5kbGVyIHsNCiANCiAJcHVibGljIENyZWF0ZUphdmFRdWVyeUNsYXNzSGFuZGxlcigpIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvaGFuZGxlcnMvQ3JlYXRlUXVlcnlIYW5kbGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvaGFuZGxlcnMvQ3JlYXRlUXVlcnlIYW5kbGVyLmphdmEKaW5kZXggMjE3NGQ2Ni4uMzc3NDBkMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2hhbmRsZXJzL0NyZWF0ZVF1ZXJ5SGFuZGxlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9oYW5kbGVycy9DcmVhdGVRdWVyeUhhbmRsZXIuamF2YQpAQCAtMjgsNiArMjgsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS51aS5JV29ya2JlbmNoUGFydDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UudWkuaGFuZGxlcnMuSGFuZGxlclV0aWw7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIENyZWF0ZVF1ZXJ5SGFuZGxlciBleHRlbmRzIEFic3RyYWN0SGFuZGxlciB7DQogDQogCXB1YmxpYyBDcmVhdGVRdWVyeUhhbmRsZXIoKSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2hhbmRsZXJzL0V4ZWN1dGVRdWVyeUhhbmRsZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS9oYW5kbGVycy9FeGVjdXRlUXVlcnlIYW5kbGVyLmphdmEKaW5kZXggYTZhYzYxNy4uNTE1MmM4NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL2hhbmRsZXJzL0V4ZWN1dGVRdWVyeUhhbmRsZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvaGFuZGxlcnMvRXhlY3V0ZVF1ZXJ5SGFuZGxlci5qYXZhCkBAIC0zNSw3ICszNSw5IEBACiAvKioNCiAgKiBPcGVucyB0aGUgIlF1ZXJ5IEV4ZWN1dGlvbiIgdmlldywgYW5kIHNldHMgaXRzIGNvbnRleHQgdG8gdGhlIGxpc3Qgb2YNCiAgKiBjdXJyZW50bHkgc2VsZWN0ZWQge0BsaW5rIEVPYmplY3R9cy4NCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRXhlY3V0ZVF1ZXJ5SGFuZGxlciBleHRlbmRzIEFic3RyYWN0SGFuZGxlciB7DQogDQogCXB1YmxpYyBFeGVjdXRlUXVlcnlIYW5kbGVyKCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9Nb2RlbFF1ZXJ5Vmlldy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL01vZGVsUXVlcnlWaWV3LmphdmEKaW5kZXggY2I5MTBjOS4uYjBkZDk0ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL01vZGVsUXVlcnlWaWV3LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL01vZGVsUXVlcnlWaWV3LmphdmEKQEAgLTQxLDcgKzQxLDkgQEAKIC8qKg0KICAqIEFuIEVjbGlwc2UgdmlldyB0aGF0IGRpc3BsYXlzIGEgbGlzdCBvZiBhdmFpbGFibGUgTW9EaXNjbyBxdWVyeSBzZXRzLg0KICAqIENsaWNraW5nIG9uIGEgcXVlcnkgc2V0IG9wZW5zIGl0IGluIHRoZSBxdWVyeSBzZXQgZWRpdG9yLg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2RlbFF1ZXJ5VmlldyBleHRlbmRzIEFic3RyYWN0VHJlZVZpZXcgaW1wbGVtZW50cyBNb2Rpc2NvQ2F0YWxvZ0NoYW5nZUxpc3RlbmVyIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIE5BTUVfQ09MVU1OID0gIk1vZGVsUXVlcnlWaWV3X05hbWVDb2x1bW4iOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL1F1ZXJ5UmVzdWx0RGlzcGxheWVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vUXVlcnlSZXN1bHREaXNwbGF5ZXIuamF2YQppbmRleCBlZjNkMTVlLi45NGVlNzk5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vUXVlcnlSZXN1bHREaXNwbGF5ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vUXVlcnlSZXN1bHREaXNwbGF5ZXIuamF2YQpAQCAtMTcsNyArMTcsOSBAQAogLyoqDQogICogSW1wbGVtZW50ZWQgYnkgYSB2aWV3IG9yIGVkaXRvciB0aGF0IHdhbnRzIHRvIGJlIHVzZWQgdG8gZGlzcGxheSB0aGUgcmVzdWx0cw0KICAqIG9mIGEgbW9kZWwgcXVlcnkuDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBRdWVyeVJlc3VsdERpc3BsYXllciB7DQogCXZvaWQgZGlzcGxheVF1ZXJ5UmVzdWx0KGZpbmFsIExpc3Q8TW9kZWxRdWVyeVJlc3VsdD4gcmVzdWx0KTsNCiB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL0NvbnRleHRQYW5lTWVudU1hbmFnZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9Db250ZXh0UGFuZU1lbnVNYW5hZ2VyLmphdmEKaW5kZXggNTQ5N2JhNi4uNzIxZDc3MSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL0NvbnRleHRQYW5lTWVudU1hbmFnZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vaW50ZXJuYWwvQ29udGV4dFBhbmVNZW51TWFuYWdlci5qYXZhCkBAIC0yNCw2ICsyNCwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5ldmVudHMuS2V5QWRhcHRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmV2ZW50cy5LZXlFdmVudDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBAU3VwcHJlc3NXYXJuaW5ncygic3ludGhldGljLWFjY2VzcyIpDQogcHVibGljIGNsYXNzIENvbnRleHRQYW5lTWVudU1hbmFnZXIgZXh0ZW5kcyBNZW51TWFuYWdlciBpbXBsZW1lbnRzIElNZW51TGlzdGVuZXIgew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9Ecm9wQWRhcHRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL0Ryb3BBZGFwdGVyLmphdmEKaW5kZXggZDc1ZjE3ZS4uNzQyY2U4NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL0Ryb3BBZGFwdGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL0Ryb3BBZGFwdGVyLmphdmEKQEAgLTI2LDcgKzI2LDkgQEAKICAqIEltcGxlbWVudHMgYSB7QGxpbmsgRHJvcFRhcmdldExpc3RlbmVyfSB0aGF0IGFjY2VwdHMge0BsaW5rIEVPYmplY3R9cw0KICAqIHRyYW5zZmVycmVkIGxvY2FsbHkgKGkuZS4gdGhyb3VnaCB7QGxpbmsgTG9jYWxUcmFuc2Zlcn0pLCBhbmQgY2FsbHMgdGhlIGdpdmVuDQogICoge0BsaW5rIERyb3BBY3Rpb259IHdpdGggdGhlIGRyb3BwZWQge0BsaW5rIEVPYmplY3R9cy4NCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRHJvcEFkYXB0ZXIgaW1wbGVtZW50cyBEcm9wVGFyZ2V0TGlzdGVuZXIgew0KIA0KIAlwcml2YXRlIGZpbmFsIERyb3BBY3Rpb24gZHJvcEFjdGlvbjsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vaW50ZXJuYWwvRWRpdGFibGVDb250ZXh0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vaW50ZXJuYWwvRWRpdGFibGVDb250ZXh0LmphdmEKaW5kZXggNzJkNjU1YS4uMGY1NTJlOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL0VkaXRhYmxlQ29udGV4dC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9FZGl0YWJsZUNvbnRleHQuamF2YQpAQCAtMTIsNyArMTIsMTEgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCiANCi0vKiogQW4gaW50ZXJmYWNlIHRoYXQgc3VwcG9ydHMgZWRpdGluZyB0aGUgcXVlcnkgY29udGV4dCAqLw0KKy8qKg0KKyAqIEFuIGludGVyZmFjZSB0aGF0IHN1cHBvcnRzIGVkaXRpbmcgdGhlIHF1ZXJ5IGNvbnRleHQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEVkaXRhYmxlQ29udGV4dCB7DQogCXZvaWQgYWRkKEVPYmplY3QgZU9iamVjdCk7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL1F1ZXJ5RXhlY3V0aW9uVmlldy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL1F1ZXJ5RXhlY3V0aW9uVmlldy5qYXZhCmluZGV4IDA3ZDkzY2QuLjM1NzE1MmQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9RdWVyeUV4ZWN1dGlvblZpZXcuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vaW50ZXJuYWwvUXVlcnlFeGVjdXRpb25WaWV3LmphdmEKQEAgLTk0LDYgKzk0LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UudWkuSVdvcmtiZW5jaEFjdGlvbkNvbnN0YW50czsNCiBpbXBvcnQgb3JnLmVjbGlwc2UudWkucGFydC5WaWV3UGFydDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBAU3VwcHJlc3NXYXJuaW5ncygic3ludGhldGljLWFjY2VzcyIpDQogcHVibGljIGNsYXNzIFF1ZXJ5RXhlY3V0aW9uVmlldyBleHRlbmRzIFZpZXdQYXJ0IHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vaW50ZXJuYWwvUXVlcnlSZXN1bHREaXNwbGF5ZXJzUmVnaXN0cnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9RdWVyeVJlc3VsdERpc3BsYXllcnNSZWdpc3RyeS5qYXZhCmluZGV4IDBmZjZmMjguLjJjZTIxODIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9RdWVyeVJlc3VsdERpc3BsYXllcnNSZWdpc3RyeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9RdWVyeVJlc3VsdERpc3BsYXllcnNSZWdpc3RyeS5qYXZhCkBAIC0yNiw3ICsyNiw5IEBACiAvKioNCiAgKiBUaGUgc2luZ2xldG9uIHJlZ2lzdHJ5IG9mIHtAbGluayBRdWVyeVJlc3VsdERpc3BsYXllcn1zLCB3aGljaCBpbml0aWFsaXplcw0KICAqIHRoZSByZWdpc3RyeSBieSByZWFkaW5nIGV4dGVuc2lvbnMgd2hlbiBmaXJzdCBhY2Nlc3NlZC4NCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUXVlcnlSZXN1bHREaXNwbGF5ZXJzUmVnaXN0cnkgZXh0ZW5kcyBBYnN0cmFjdFJlZ2lzdHJ5IHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVYVEVOU0lPTl9QT0lOVF9OQU1FU1BBQ0UgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkiOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL1F1ZXJ5VG9vbHRpcC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3ZpZXdzL3F1ZXJ5RXhlY3V0aW9uL2ludGVybmFsL1F1ZXJ5VG9vbHRpcC5qYXZhCmluZGV4IGQ3NmIzYWUuLjYyNTY3MjkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS92aWV3cy9xdWVyeUV4ZWN1dGlvbi9pbnRlcm5hbC9RdWVyeVRvb2x0aXAuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvdmlld3MvcXVlcnlFeGVjdXRpb24vaW50ZXJuYWwvUXVlcnlUb29sdGlwLmphdmEKQEAgLTM1LDcgKzM1LDkgQEAKICAqIEFkZCBhIHRvb2x0aXAgdG8gdGhlIHRyZWUsIHRoYXQgYXBwZWFycyB3aGVuIHRoZSBtb3VzZSBob3ZlcnMgb3ZlciBhDQogICoge0BsaW5rIE1vZGVsUXVlcnl9LCB0byBkaXNwbGF5IGluZm9ybWF0aW9uIGFib3V0IHRoYXQgcXVlcnkgKG5hbWUsIHJldHVybg0KICAqIHR5cGUsIGRlc2NyaXB0aW9uLCAuLi4pDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFF1ZXJ5VG9vbHRpcCBleHRlbmRzIFRvb2x0aXAgew0KIA0KIAlwdWJsaWMgUXVlcnlUb29sdGlwKCkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS93aXphcmRzL0NyZWF0ZVF1ZXJ5V2l6YXJkLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9DcmVhdGVRdWVyeVdpemFyZC5qYXZhCmluZGV4IGI2OTI4ZDUuLmUzMzE5YWMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS93aXphcmRzL0NyZWF0ZVF1ZXJ5V2l6YXJkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3dpemFyZHMvQ3JlYXRlUXVlcnlXaXphcmQuamF2YQpAQCAtMzYsNiArMzYsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS53aXphcmQuSVdpemFyZFBhZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLndpemFyZC5XaXphcmQ7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIENyZWF0ZVF1ZXJ5V2l6YXJkIGV4dGVuZHMgV2l6YXJkIHsNCiANCiAJLyoqDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3dpemFyZHMvQ3JlYXRlUXVlcnlXaXphcmRQYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9DcmVhdGVRdWVyeVdpemFyZFBhZ2UuamF2YQppbmRleCA1NjgxY2EzLi4xZTZjZjY0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9DcmVhdGVRdWVyeVdpemFyZFBhZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9DcmVhdGVRdWVyeVdpemFyZFBhZ2UuamF2YQpAQCAtNDQsNiArNDQsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5UZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS51aS5kaWFsb2dzLkZpbHRlcmVkTGlzdDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBAU3VwcHJlc3NXYXJuaW5ncygic3ludGhldGljLWFjY2VzcyIpDQogcHVibGljIGNsYXNzIENyZWF0ZVF1ZXJ5V2l6YXJkUGFnZSBleHRlbmRzIFdpemFyZFBhZ2Ugew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS93aXphcmRzL05ld0NsYXNzQ3JlYXRpb25XaXphcmQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS93aXphcmRzL05ld0NsYXNzQ3JlYXRpb25XaXphcmQuamF2YQppbmRleCBhZGY5MTM1Li5jYzA5Mjc2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9OZXdDbGFzc0NyZWF0aW9uV2l6YXJkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3dpemFyZHMvTmV3Q2xhc3NDcmVhdGlvbldpemFyZC5qYXZhCkBAIC0yNyw2ICsyNywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmpkdC5jb3JlLkphdmFNb2RlbEV4Y2VwdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uud2l6YXJkLldpemFyZDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTmV3Q2xhc3NDcmVhdGlvbldpemFyZCBleHRlbmRzIFdpemFyZCB7DQogDQogCXByaXZhdGUgZmluYWwgSmF2YU1vZGVsUXVlcnkgcXVlcnk7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3dpemFyZHMvTmV3Q2xhc3NXaXphcmRQYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9OZXdDbGFzc1dpemFyZFBhZ2UuamF2YQppbmRleCA2MGIyYmJhLi5lZWMzYTI5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9OZXdDbGFzc1dpemFyZFBhZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9OZXdDbGFzc1dpemFyZFBhZ2UuamF2YQpAQCAtMTcsMTAgKzE3LDEzIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklTdGF0dXM7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLmRpYWxvZ3MuRGlhbG9nOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLklTdHJ1Y3R1cmVkU2VsZWN0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5JSmF2YUVsZW1lbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpkdC51aS53aXphcmRzLk5ld1R5cGVXaXphcmRQYWdlOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBOZXdDbGFzc1dpemFyZFBhZ2UgZXh0ZW5kcyBOZXdUeXBlV2l6YXJkUGFnZSB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBQQUdFX05BTUUgPSAiTmV3Q2xhc3NXaXphcmRQYWdlIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS93aXphcmRzL05ld1F1ZXJ5Q2xhc3NXaXphcmRQYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS51aS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvdWkvd2l6YXJkcy9OZXdRdWVyeUNsYXNzV2l6YXJkUGFnZS5qYXZhCmluZGV4IDk1MzIzZTcuLjZkODQzMzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS91aS93aXphcmRzL05ld1F1ZXJ5Q2xhc3NXaXphcmRQYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkudWkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3VpL3dpemFyZHMvTmV3UXVlcnlDbGFzc1dpemFyZFBhZ2UuamF2YQpAQCAtNjgsNiArNjgsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS51aS5QbGF0Zm9ybVVJOw0KIGltcG9ydCBvcmcuZWNsaXBzZS51aS5pZGUuSURFOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBOZXdRdWVyeUNsYXNzV2l6YXJkUGFnZSBleHRlbmRzIE5ld0NsYXNzV2l6YXJkUGFnZSBpbXBsZW1lbnRzDQogCQlJUXVlcnlBdHRyaWJ1dGVzV2l6YXJkUGFnZSB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5NjE2ZmM3Li4zMGQ3YTc0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeTtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3BsdWdpbi5wcm9wZXJ0aWVzCmluZGV4IDdhNDIwYjguLjdkYWU1NDcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3BsdWdpbi5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC04LDYgKzgsNiBAQAogIyBDb250cmlidXRvcnM6DQogIyAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLXBsdWdpbk5hbWUgPSBNb0Rpc2NvIFF1ZXJ5IE1vZGVsIChJbmN1YmF0aW9uKQ0KK3BsdWdpbk5hbWUgPSBNb0Rpc2NvIFF1ZXJ5IE1vZGVsIChEZXByZWNhdGVkLCBoYXMgdG8gYmUgcmVwbGFjZWQgYnkgRU1GIEZhY2V0KSAoSW5jdWJhdGlvbikNCiBwcm92aWRlck5hbWUgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiBjb250ZW50LXR5cGUubmFtZSA9IFF1ZXJ5U2V0DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L0phdmFNb2RlbFF1ZXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvSmF2YU1vZGVsUXVlcnkuamF2YQppbmRleCAwZmJhNjliLi5iZjY5N2QwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvSmF2YU1vZGVsUXVlcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvSmF2YU1vZGVsUXVlcnkuamF2YQpAQCAtMzQsNyArMzQsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5RdWVyeVBhY2thZ2UjZ2V0SmF2YU1vZGVsUXVlcnkoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEphdmFNb2RlbFF1ZXJ5IGV4dGVuZHMgTW9kZWxRdWVyeSB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5JbXBsZW1lbnRhdGlvbiBDbGFzcyBOYW1lPC9iPjwvZW0+Jw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01lc3NhZ2VzLmphdmEKaW5kZXggOWY0ZWExZC4uYWUyOWQyMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01lc3NhZ2VzLmphdmEKQEAgLTE0LDggKzE0LDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgZ2R1cGUNCi0gKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgUmV0dXJuVHlwZVZhbGlkYXRpb25fMDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvTW9kZWxRdWVyeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01vZGVsUXVlcnkuamF2YQppbmRleCA5MGQ1ZmU4Li45OTNjMzY0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvTW9kZWxRdWVyeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9Nb2RlbFF1ZXJ5LmphdmEKQEAgLTQ2LDcgKzQ2LDkgQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuUXVlcnlQYWNrYWdlI2dldE1vZGVsUXVlcnkoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNb2RlbFF1ZXJ5IGV4dGVuZHMgRU9iamVjdCB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01vZGVsUXVlcnlQYXJhbWV0ZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9Nb2RlbFF1ZXJ5UGFyYW1ldGVyLmphdmEKaW5kZXggMzdkMTZiNi4uNmZjZTI3MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01vZGVsUXVlcnlQYXJhbWV0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvTW9kZWxRdWVyeVBhcmFtZXRlci5qYXZhCkBAIC0zOSw3ICszOSw5IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZSNnZXRNb2RlbFF1ZXJ5UGFyYW1ldGVyKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNb2RlbFF1ZXJ5UGFyYW1ldGVyIGV4dGVuZHMgRU9iamVjdCB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5OYW1lPC9iPjwvZW0+JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01vZGVsUXVlcnlTZXQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9Nb2RlbFF1ZXJ5U2V0LmphdmEKaW5kZXggZThiOWExNC4uMGRmNTIxYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L01vZGVsUXVlcnlTZXQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvTW9kZWxRdWVyeVNldC5qYXZhCkBAIC00MSw3ICs0MSw5IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZSNnZXRNb2RlbFF1ZXJ5U2V0KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNb2RlbFF1ZXJ5U2V0IGV4dGVuZHMgRU9iamVjdCB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5Bc3NvY2lhdGVkIE1ldGFtb2RlbHM8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9PQ0xNb2RlbFF1ZXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvT0NMTW9kZWxRdWVyeS5qYXZhCmluZGV4IDY3YWVjYTUuLmI2OWQ3NmEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9PQ0xNb2RlbFF1ZXJ5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L09DTE1vZGVsUXVlcnkuamF2YQpAQCAtMzAsNyArMzAsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5RdWVyeVBhY2thZ2UjZ2V0T0NMTW9kZWxRdWVyeSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgT0NMTW9kZWxRdWVyeSBleHRlbmRzIE1vZGVsUXVlcnkgew0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+UXVlcnk8L2I+PC9lbT4nIGF0dHJpYnV0ZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvUXVlcnlGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvUXVlcnlGYWN0b3J5LmphdmEKaW5kZXggNTQ4OTQ3NC4uNDU0NTRlNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L1F1ZXJ5RmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9RdWVyeUZhY3RvcnkuamF2YQpAQCAtMjMsNyArMjMsOSBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5RdWVyeVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBRdWVyeUZhY3RvcnkgZXh0ZW5kcyBFRmFjdG9yeSB7DQogCS8qKg0KIAkgKiBUaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBmYWN0b3J5Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9RdWVyeVBhY2thZ2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9RdWVyeVBhY2thZ2UuamF2YQppbmRleCAxZDk5ZjMzLi4zMDE1NmQ4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvUXVlcnlQYWNrYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L1F1ZXJ5UGFja2FnZS5qYXZhCkBAIC0zMyw3ICszMyw5IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5RmFjdG9yeQ0KICAqIEBtb2RlbCBraW5kPSJwYWNrYWdlIg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFF1ZXJ5UGFja2FnZSBleHRlbmRzIEVQYWNrYWdlIHsNCiAJLyoqDQogCSAqIFRoZSBwYWNrYWdlIG5hbWUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvSmF2YU1vZGVsUXVlcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9KYXZhTW9kZWxRdWVyeUltcGwuamF2YQppbmRleCAyNzc0OWNhLi41N2E1ZDU2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9KYXZhTW9kZWxRdWVyeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9KYXZhTW9kZWxRdWVyeUltcGwuamF2YQpAQCAtMTUsMTEgKzE1LDggQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuSmF2YU1vZGVsUXVlcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZTsNCiANCkBAIC0zNSw3ICszMiw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEphdmFNb2RlbFF1ZXJ5SW1wbCBleHRlbmRzIE1vZGVsUXVlcnlJbXBsIGltcGxlbWVudHMgSmF2YU1vZGVsUXVlcnkgew0KIAkvKioNCiAJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldEltcGxlbWVudGF0aW9uQ2xhc3NOYW1lKCkgPGVtPkltcGxlbWVudGF0aW9uIENsYXNzIE5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9Nb2RlbFF1ZXJ5SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvTW9kZWxRdWVyeUltcGwuamF2YQppbmRleCBjMzY1ODUwLi4wNGZmZjcxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9Nb2RlbFF1ZXJ5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL01vZGVsUXVlcnlJbXBsLmphdmEKQEAgLTUzLDcgKzUzLDkgQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgTW9kZWxRdWVyeUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIE1vZGVsUXVlcnkgew0KIAkvKioNCiAJICogVGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd7QGxpbmsgI2dldE5hbWUoKSA8ZW0+TmFtZTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL01vZGVsUXVlcnlQYXJhbWV0ZXJJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9Nb2RlbFF1ZXJ5UGFyYW1ldGVySW1wbC5qYXZhCmluZGV4IGRjZTg1ZjUuLjE3Nzg3NzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL01vZGVsUXVlcnlQYXJhbWV0ZXJJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvTW9kZWxRdWVyeVBhcmFtZXRlckltcGwuamF2YQpAQCAtMTUsMTQgKzE1LDExIEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzc2lmaWVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlQYXJhbWV0ZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZTsNCiANCkBAIC00MSw3ICszOCw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1vZGVsUXVlcnlQYXJhbWV0ZXJJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBNb2RlbFF1ZXJ5UGFyYW1ldGVyIHsNCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXROYW1lKCkgPGVtPk5hbWU8L2VtPn0nIGF0dHJpYnV0ZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9Nb2RlbFF1ZXJ5U2V0SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvTW9kZWxRdWVyeVNldEltcGwuamF2YQppbmRleCA0ZmVlYWM3Li41ZmU0N2ZmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9Nb2RlbFF1ZXJ5U2V0SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL01vZGVsUXVlcnlTZXRJbXBsLmphdmEKQEAgLTQ3LDcgKzQ3LDkgQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeVNldEltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIE1vZGVsUXVlcnlTZXQgew0KIAkvKioNCiAJICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0QXNzb2NpYXRlZE1ldGFtb2RlbHMoKSA8ZW0+QXNzb2NpYXRlZCBNZXRhbW9kZWxzPC9lbT59JyByZWZlcmVuY2UgbGlzdC4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9PQ0xNb2RlbFF1ZXJ5SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvT0NMTW9kZWxRdWVyeUltcGwuamF2YQppbmRleCA2MDc2NTk2Li43NWQyN2ZlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9PQ0xNb2RlbFF1ZXJ5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL09DTE1vZGVsUXVlcnlJbXBsLmphdmEKQEAgLTE1LDExICsxNSw4IEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk9DTE1vZGVsUXVlcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LlF1ZXJ5UGFja2FnZTsNCiANCkBAIC0zNSw3ICszMiw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE9DTE1vZGVsUXVlcnlJbXBsIGV4dGVuZHMgTW9kZWxRdWVyeUltcGwgaW1wbGVtZW50cyBPQ0xNb2RlbFF1ZXJ5IHsNCiAJLyoqDQogCSAqIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRRdWVyeSgpIDxlbT5RdWVyeTwvZW0+fScgYXR0cmlidXRlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL1F1ZXJ5RmFjdG9yeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL1F1ZXJ5RmFjdG9yeUltcGwuamF2YQppbmRleCBlOTk3MzE5Li41NjE5NTM2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9RdWVyeUZhY3RvcnlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvUXVlcnlGYWN0b3J5SW1wbC5qYXZhCkBAIC0yNiw3ICsyNiw5IEBACiAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+RmFjdG9yeTwvYj4uDQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBRdWVyeUZhY3RvcnlJbXBsIGV4dGVuZHMgRUZhY3RvcnlJbXBsIGltcGxlbWVudHMgUXVlcnlGYWN0b3J5IHsNCiAJLyoqDQogCSAqIENyZWF0ZXMgdGhlIGRlZmF1bHQgZmFjdG9yeSBpbXBsZW1lbnRhdGlvbi4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9RdWVyeVBhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvaW1wbC9RdWVyeVBhY2thZ2VJbXBsLmphdmEKaW5kZXggOWE5YmJkYS4uYjA1ODlhMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L2ltcGwvUXVlcnlQYWNrYWdlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9pbXBsL1F1ZXJ5UGFja2FnZUltcGwuamF2YQpAQCAtMzYsNyArMzYsOSBAQAogICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPlBhY2thZ2U8L2I+Lg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUXVlcnlQYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIFF1ZXJ5UGFja2FnZSB7DQogCS8qKg0KIAkgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9wbHVnaW4vUXVlcnlQbHVnaW4uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9wbHVnaW4vUXVlcnlQbHVnaW4uamF2YQppbmRleCBlY2I4YzJjLi5iODgwYzA2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcGx1Z2luL1F1ZXJ5UGx1Z2luLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3BsdWdpbi9RdWVyeVBsdWdpbi5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUXVlcnlQbHVnaW4gZXh0ZW5kcyBQbHVnaW4gew0KIA0KIAkvLyBUaGUgcGx1Zy1pbiBJRA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL01vZGVsUXVlcnlDb250ZXh0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9Nb2RlbFF1ZXJ5Q29udGV4dC5qYXZhCmluZGV4IDlhMTFhNjYuLjdhNmI1YmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL01vZGVsUXVlcnlDb250ZXh0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvTW9kZWxRdWVyeUNvbnRleHQuamF2YQpAQCAtMTUsOSArMTUsNyBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7DQogDQogLyoqDQpAQCAtMzYsNyArMzQsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlI2dldE1vZGVsUXVlcnlDb250ZXh0KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNb2RlbFF1ZXJ5Q29udGV4dCBleHRlbmRzIEVPYmplY3Qgew0KIAkvKioNCiAJICogUmV0dXJucyB0aGUgdmFsdWUgb2YgdGhlICc8ZW0+PGI+U2VsZWN0ZWQgTW9kZWwgRWxlbWVudHM8L2I+PC9lbT4nIHJlZmVyZW5jZSBsaXN0Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL01vZGVsUXVlcnlQYXJhbWV0ZXJWYWx1ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvTW9kZWxRdWVyeVBhcmFtZXRlclZhbHVlLmphdmEKaW5kZXggNmNjNDk5Yi4uMzY5NjA3NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvTW9kZWxRdWVyeVBhcmFtZXRlclZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvTW9kZWxRdWVyeVBhcmFtZXRlclZhbHVlLmphdmEKQEAgLTE1LDcgKzE1LDYgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucnVudGltZTsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5Lk1vZGVsUXVlcnlQYXJhbWV0ZXI7DQogDQogLyoqDQpAQCAtMzQsNyArMzMsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlI2dldE1vZGVsUXVlcnlQYXJhbWV0ZXJWYWx1ZSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgTW9kZWxRdWVyeVBhcmFtZXRlclZhbHVlIGV4dGVuZHMgRU9iamVjdCB7DQogCS8qKg0KIAkgKiBSZXR1cm5zIHRoZSB2YWx1ZSBvZiB0aGUgJzxlbT48Yj5QYXJhbWV0ZXI8L2I+PC9lbT4nIHJlZmVyZW5jZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9Nb2RlbFF1ZXJ5UmVzdWx0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9Nb2RlbFF1ZXJ5UmVzdWx0LmphdmEKaW5kZXggZTk5ZjdiYS4uMjE3M2JmYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvTW9kZWxRdWVyeVJlc3VsdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL01vZGVsUXVlcnlSZXN1bHQuamF2YQpAQCAtMzMsNyArMzMsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlI2dldE1vZGVsUXVlcnlSZXN1bHQoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIE1vZGVsUXVlcnlSZXN1bHQgZXh0ZW5kcyBFT2JqZWN0IHsNCiAJLyoqDQogCSAqIFJldHVybnMgdGhlIHZhbHVlIG9mIHRoZSAnPGVtPjxiPlNvdXJjZTwvYj48L2VtPicgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL1J1bnRpbWVGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9SdW50aW1lRmFjdG9yeS5qYXZhCmluZGV4IDI1Yzg3MjguLmEzYTgxZDkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL1J1bnRpbWVGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvUnVudGltZUZhY3RvcnkuamF2YQpAQCAtMjMsNyArMjMsOSBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgUnVudGltZUZhY3RvcnkgZXh0ZW5kcyBFRmFjdG9yeSB7DQogCS8qKg0KIAkgKiBUaGUgc2luZ2xldG9uIGluc3RhbmNlIG9mIHRoZSBmYWN0b3J5Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL1J1bnRpbWVQYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9SdW50aW1lUGFja2FnZS5qYXZhCmluZGV4IGRjMWQ2MGYuLmZmOTc5NDkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL1J1bnRpbWVQYWNrYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvUnVudGltZVBhY2thZ2UuamF2YQpAQCAtMzQsNyArMzQsOSBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVGYWN0b3J5DQogICogQG1vZGVsIGtpbmQ9InBhY2thZ2UiDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgUnVudGltZVBhY2thZ2UgZXh0ZW5kcyBFUGFja2FnZSB7DQogCS8qKg0KIAkgKiBUaGUgcGFja2FnZSBuYW1lLg0KQEAgLTMzNyw3ICszMzksOSBAQAogCSAqIDwvdWw+DQogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQorCSAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IEVNRiBGYWNldCwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA1NzgNCiAJICovDQorCUBEZXByZWNhdGVkDQogCWludGVyZmFjZSBMaXRlcmFscyB7DQogCQkvKioNCiAJCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLmltcGwuTW9kZWxRdWVyeUNvbnRleHRJbXBsIDxlbT5Nb2RlbCBRdWVyeSBDb250ZXh0PC9lbT59JyBjbGFzcy4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9pbXBsL01vZGVsUXVlcnlDb250ZXh0SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9Nb2RlbFF1ZXJ5Q29udGV4dEltcGwuamF2YQppbmRleCBlMDEyZTU2Li4wYWVjMTNkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9pbXBsL01vZGVsUXVlcnlDb250ZXh0SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvTW9kZWxRdWVyeUNvbnRleHRJbXBsLmphdmEKQEAgLTE3LDE3ICsxNywxMiBAQAogaW1wb3J0IGphdmEudXRpbC5Db2xsZWN0aW9uOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FT2JqZWN0SW1wbDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUudXRpbC5FRGF0YVR5cGVVbmlxdWVFTGlzdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuRU9iamVjdFJlc29sdmluZ0VMaXN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLk1vZGVsUXVlcnlDb250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIA0KQEAgLTQ0LDcgKzM5LDkgQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeUNvbnRleHRJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBNb2RlbFF1ZXJ5Q29udGV4dCB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRTZWxlY3RlZE1vZGVsRWxlbWVudHMoKSA8ZW0+U2VsZWN0ZWQgTW9kZWwgRWxlbWVudHM8L2VtPn0nIHJlZmVyZW5jZSBsaXN0Lg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvTW9kZWxRdWVyeVBhcmFtZXRlclZhbHVlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9Nb2RlbFF1ZXJ5UGFyYW1ldGVyVmFsdWVJbXBsLmphdmEKaW5kZXggZjdhMTU0MC4uOTAzMjExMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9Nb2RlbFF1ZXJ5UGFyYW1ldGVyVmFsdWVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9Nb2RlbFF1ZXJ5UGFyYW1ldGVyVmFsdWVJbXBsLmphdmEKQEAgLTE1LDE1ICsxNSwxMSBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5Nb2RlbFF1ZXJ5UGFyYW1ldGVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLk1vZGVsUXVlcnlQYXJhbWV0ZXJWYWx1ZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucnVudGltZS5SdW50aW1lUGFja2FnZTsNCiANCkBAIC00MCw3ICszNiw5IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1vZGVsUXVlcnlQYXJhbWV0ZXJWYWx1ZUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIE1vZGVsUXVlcnlQYXJhbWV0ZXJWYWx1ZSB7DQogCS8qKg0KIAkgKiBUaGUgY2FjaGVkIHZhbHVlIG9mIHRoZSAne0BsaW5rICNnZXRQYXJhbWV0ZXIoKSA8ZW0+UGFyYW1ldGVyPC9lbT59JyByZWZlcmVuY2UuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9Nb2RlbFF1ZXJ5UmVzdWx0SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9Nb2RlbFF1ZXJ5UmVzdWx0SW1wbC5qYXZhCmluZGV4IGMxNGNiMjQuLjQ5YzI3ZTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvTW9kZWxRdWVyeVJlc3VsdEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9pbXBsL01vZGVsUXVlcnlSZXN1bHRJbXBsLmphdmEKQEAgLTE1LDE0ICsxNSwxMSBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5JbnRlcm5hbEVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FT2JqZWN0SW1wbDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucnVudGltZS5Nb2RlbFF1ZXJ5UmVzdWx0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIA0KQEAgLTQwLDcgKzM3LDkgQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxRdWVyeVJlc3VsdEltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIE1vZGVsUXVlcnlSZXN1bHQgew0KIAkvKioNCiAJICogVGhlIGNhY2hlZCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0U291cmNlKCkgPGVtPlNvdXJjZTwvZW0+fScgcmVmZXJlbmNlLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvUnVudGltZUZhY3RvcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9pbXBsL1J1bnRpbWVGYWN0b3J5SW1wbC5qYXZhCmluZGV4IDliNGFiZTMuLmY2MDA1ZGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvUnVudGltZUZhY3RvcnlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9SdW50aW1lRmFjdG9yeUltcGwuamF2YQpAQCAtMjcsNyArMjcsOSBAQAogICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPkZhY3Rvcnk8L2I+Lg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUnVudGltZUZhY3RvcnlJbXBsIGV4dGVuZHMgRUZhY3RvcnlJbXBsIGltcGxlbWVudHMgUnVudGltZUZhY3Rvcnkgew0KIAkvKioNCiAJICogQ3JlYXRlcyB0aGUgZGVmYXVsdCBmYWN0b3J5IGltcGxlbWVudGF0aW9uLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvUnVudGltZVBhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS9pbXBsL1J1bnRpbWVQYWNrYWdlSW1wbC5qYXZhCmluZGV4IDRmOGRlOTAuLmFmNGZiZjkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL2ltcGwvUnVudGltZVBhY2thZ2VJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvaW1wbC9SdW50aW1lUGFja2FnZUltcGwuamF2YQpAQCAtMzQsNyArMzQsOSBAQAogICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPlBhY2thZ2U8L2I+Lg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUnVudGltZVBhY2thZ2VJbXBsIGV4dGVuZHMgRVBhY2thZ2VJbXBsIGltcGxlbWVudHMgUnVudGltZVBhY2thZ2Ugew0KIAkvKioNCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS91dGlsL1J1bnRpbWVBZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3J1bnRpbWUvdXRpbC9SdW50aW1lQWRhcHRlckZhY3RvcnkuamF2YQppbmRleCAzOGRlOWU5Li4xYWZlZDY1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS91dGlsL1J1bnRpbWVBZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL3V0aWwvUnVudGltZUFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTE2LDExICsxNiw4IEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuQWRhcHRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpZXI7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5LmltcGwuQWRhcHRlckZhY3RvcnlJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucnVudGltZS4qOw0KIA0KIC8qKg0KQEAgLTMwLDcgKzI3LDkgQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkucnVudGltZS5SdW50aW1lUGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBFTUYgRmFjZXQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNTc4DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUnVudGltZUFkYXB0ZXJGYWN0b3J5IGV4dGVuZHMgQWRhcHRlckZhY3RvcnlJbXBsIHsNCiAJLyoqDQogCSAqIFRoZSBjYWNoZWQgbW9kZWwgcGFja2FnZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vaW5mcmEvcXVlcnkvcnVudGltZS91dGlsL1J1bnRpbWVTd2l0Y2guamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL3V0aWwvUnVudGltZVN3aXRjaC5qYXZhCmluZGV4IDY0ZWE4YWIuLmY5NTYwNmYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL3V0aWwvUnVudGltZVN3aXRjaC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9pbmZyYS9xdWVyeS9ydW50aW1lL3V0aWwvUnVudGltZVN3aXRjaC5qYXZhCkBAIC0xOCw3ICsxOCw2IEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnJ1bnRpbWUuKjsNCiANCiAvKioNCkBAIC0zMyw3ICszMiw5IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgRU1GIEZhY2V0LCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDU3OA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFJ1bnRpbWVTd2l0Y2g8VD4gew0KIAkvKioNCiAJICogVGhlIGNhY2hlZCBtb2RlbCBwYWNrYWdlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBiNmU0MGI2Li4yMTUxMzY0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAKICAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24vT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCBhMzIyNGMyLi5mZDI2YWNhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDYgKzEwLDYgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbg0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gSmF2YSBCcm93c2VyIFN0YW5kYXJkIEN1c3RvbWl6YXRpb24gKEluY3ViYXRpb24pDQotd2l6YXJkLm5hbWUgPSBKYXZhIEJyb3dzZXIgQ3VzdG9taXphdGlvbg0KLWNhdGVnb3J5Lm5hbWUgPSBNb0Rpc2NvIEV4YW1wbGVzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEphdmEgQnJvd3NlciBTdGFuZGFyZCBDdXN0b21pemF0aW9uIChEZXByZWNhdGVkKSAoSW5jdWJhdGlvbikNCit3aXphcmQubmFtZSA9IEphdmEgQnJvd3NlciBDdXN0b21pemF0aW9uIChEZXByZWNhdGVkKQ0KK2NhdGVnb3J5Lm5hbWUgPSBNb0Rpc2NvIEV4YW1wbGVzIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQppbmRleCBmMTA1ZDM1Li4wMThkZGU2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9icm93c2VyL2N1c3RvbWl6YXRpb24vaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYnJvd3Nlci9jdXN0b21pemF0aW9uL2ludGVybmFsL0FjdGl2YXRvci5qYXZhCkBAIC0xMyw2ICsxMywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLnBsdWdpbi5BYnN0cmFjdFVJUGx1Z2luOw0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDk3MA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KIA0KIAlwcml2YXRlIHN0YXRpYyBBY3RpdmF0b3IgcGx1Z2luOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi9pbnRlcm5hbC9FeGFtcGxlV2l6YXJkLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9icm93c2VyL2N1c3RvbWl6YXRpb24vaW50ZXJuYWwvRXhhbXBsZVdpemFyZC5qYXZhCmluZGV4IDYyMjg4YmUuLjU1NjBkZGUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi9pbnRlcm5hbC9FeGFtcGxlV2l6YXJkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYnJvd3Nlci9jdXN0b21pemF0aW9uL2ludGVybmFsL0V4YW1wbGVXaXphcmQuamF2YQpAQCAtMTksNiArMTksMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS5sb2dnaW5nLk1vRGlzY29Mb2dnZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi51aS5pbnRlcm5hbC53aXphcmRzLkFic3RyYWN0RXhhbXBsZVdpemFyZDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDk3MA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEV4YW1wbGVXaXphcmQgZXh0ZW5kcyBBYnN0cmFjdEV4YW1wbGVXaXphcmQgew0KIAlAT3ZlcnJpZGUNCiAJcHJvdGVjdGVkIFBsdWdpbiBnZXRBY3RpdmF0b3IoKSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBlODYxM2Q2Li5lZmE0OGEyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNkbztzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNsYXNzaWNlb2JqZWN0L01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jbGFzc2ljZW9iamVjdC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA0OWViNzdkLi5kZmY5MGUyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNsYXNzaWNlb2JqZWN0L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuY2xhc3NpY2VvYmplY3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5jbGFzc2ljZW9iamVjdDtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhOWZjYTBkLi5kMTAyYTQwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDM2MTIwMzkuLjE4NmYzYjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDQgKzEwLDQgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIERpc2NvdmVyZXIgQmVuY2htYXJrIFRlc3RzIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIERpc2NvdmVyZXIgQmVuY2htYXJrIFRlc3RzIChEZXByZWNhdGVkKSAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3Rlc3RzL0phdmFTY2FsYWJpbGl0eVRlc3QuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVzdHMvSmF2YVNjYWxhYmlsaXR5VGVzdC5qYXZhCmluZGV4IGU0ZTVhOGUuLjBiZGFjNzIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVzdHMvSmF2YVNjYWxhYmlsaXR5VGVzdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVzdHMvSmF2YVNjYWxhYmlsaXR5VGVzdC5qYXZhCkBAIC00MSw2ICs0MSwxMSBAQAogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCwNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSmF2YVNjYWxhYmlsaXR5VGVzdCB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBFWFBFQ1RFRF9NRU1fSU5DUl9NQVhJTVVNID0gNzA7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay8ucHJvamVjdCBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvLnByb2plY3QKaW5kZXggMzYxZDM1MS4uZjlkNDcyZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay8ucHJvamVjdAorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLy5wcm9qZWN0CkBAIC0yNiwxNiArMjYsNiBAQAogCQkJPC9hcmd1bWVudHM+DQogCQk8L2J1aWxkQ29tbWFuZD4NCiAJCTxidWlsZENvbW1hbmQ+DQotCQkJPG5hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyPC9uYW1lPg0KLQkJCTx0cmlnZ2Vycz5hdXRvLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCi0JCQk8YXJndW1lbnRzPg0KLQkJCQk8ZGljdGlvbmFyeT4NCi0JCQkJCTxrZXk+TGF1bmNoQ29uZmlnSGFuZGxlPC9rZXk+DQotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9lbXRsQ29weS5sYXVuY2g8L3ZhbHVlPg0KLQkJCQk8L2RpY3Rpb25hcnk+DQotCQkJPC9hcmd1bWVudHM+DQotCQk8L2J1aWxkQ29tbWFuZD4NCi0JCTxidWlsZENvbW1hbmQ+DQogCQkJPG5hbWU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVCdWlsZGVyPC9uYW1lPg0KIAkJCTxhcmd1bWVudHM+DQogCQkJPC9hcmd1bWVudHM+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYmNlYzVjZS4uMmQyZWIyZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyaztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YTtidW5kbGUtdmVyc2lvbj0iMC43LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDc0ZWRhNTAuLmQ5OTlhYzcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDE4ICsxMCwxOCBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KIA0KICNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsNCi1kaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gQmVuY2htYXJrDQotZGlzY292ZXJlci5uYW1lLjAgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gSW5jcmVtZW50YWwgWE1JICsgVHJhY2UNCi1kaXNjb3ZlcmVyLm5hbWUuMSA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBJbmNyZW1lbnRhbCBYTUkNCi1kaXNjb3ZlcmVyLm5hbWUuMiA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBDRE8gKE5vdCBpbmNsdWRlIHNlcnZlciBsYXVuY2gpDQotZGlzY292ZXJlci5uYW1lLjMgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gQ0RPICsgTm9Vc2FnZXMgKE5vdCBpbmNsdWRlIHNlcnZlciBsYXVuY2gpDQotZGlzY292ZXJlci5uYW1lLjQgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gTm8gVXNhZ2VzDQotZGlzY292ZXJlci5uYW1lLjUgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gTWluaW1hbCBFT2JqZWN0DQotZGlzY292ZXJlci5uYW1lLjYgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gSW5jcmVtZW50YWwgRU1GIHZzIENsYXNzaWNhbCBFTUYNCitkaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gQmVuY2htYXJrIChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS4wID0gRGlzY292ZXIgSmF2YSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdCAtIEluY3JlbWVudGFsIFhNSSArIFRyYWNlIChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS4xID0gRGlzY292ZXIgSmF2YSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdCAtIEluY3JlbWVudGFsIFhNSSAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuMiA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBDRE8gKE5vdCBpbmNsdWRlIHNlcnZlciBsYXVuY2gpIChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS4zID0gRGlzY292ZXIgSmF2YSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdCAtIENETyArIE5vVXNhZ2VzIChOb3QgaW5jbHVkZSBzZXJ2ZXIgbGF1bmNoKSAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuNCA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBObyBVc2FnZXMgKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5uYW1lLjUgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gTWluaW1hbCBFT2JqZWN0IChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS42ID0gRGlzY292ZXIgSmF2YSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdCAtIEluY3JlbWVudGFsIEVNRiB2cyBDbGFzc2ljYWwgRU1GIChEZXByZWNhdGVkKQ0KIGV4dGVuc2lvbi5uYW1lID0gRGVyYnlDRE9TZXJ2ZXJOb0F1ZGl0cw0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCi1CdW5kbGUtTmFtZSA9IE1vRGlzY28gSmF2YSBEaXNjb3ZlcmVyIEJlbmNobWFyayAoSW5jdWJhdGlvbikNCi1kaXNjb3ZlcmVyLm5hbWUuNyA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBDRE8gKyBUcmFjZSAoTm90IGluY2x1ZGUgc2VydmVyIGxhdW5jaCkNCi1kaXNjb3ZlcmVyLm5hbWUuOCA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBDbGFzc2ljYWwgRU1GDQotZGlzY292ZXJlci5uYW1lLjkgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gSW5jcmVtZW50YWwgQ2xhc3NpY2FsIEVNRg0KLWRpc2NvdmVyZXIubmFtZS4xMCA9IEdlbmVyYXRlIGJlbmNobWFyY2sgcmVwb3J0IGZyb20gYmVuY2htYXJrIGRhdGEgcHJvamVjdApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIERpc2NvdmVyZXIgQmVuY2htYXJrIChEZXByZWNhdGVkKSAoSW5jdWJhdGlvbikNCitkaXNjb3ZlcmVyLm5hbWUuNyA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBDRE8gKyBUcmFjZSAoTm90IGluY2x1ZGUgc2VydmVyIGxhdW5jaCkgKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5uYW1lLjggPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gQ2xhc3NpY2FsIEVNRiAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuOSA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBJbmNyZW1lbnRhbCBDbGFzc2ljYWwgRU1GIChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS4xMCA9IEdlbmVyYXRlIGJlbmNobWFyY2sgcmVwb3J0IGZyb20gYmVuY2htYXJrIGRhdGEgcHJvamVjdCAoRGVwcmVjYXRlZCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL2VtdGxDb3B5LmJ1aWxkLnhtbCBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvZW10bENvcHkuYnVpbGQueG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZmJkMWRlLi4wMDAwMDAwCi0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvZW10bENvcHkuYnVpbGQueG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjMgKzAsMCBAQAotPCEtLQ0KLUNvcHlyaWdodCAoYykgMjAwOSBNaWEtU29mdHdhcmUuDQotQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KLWFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KLXdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQotaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCi0NCi1Db250cmlidXRvcnM6DQotICAgIEdyZWdvaXJlIERVUEUgKE1pYS1Tb2Z0d2FyZSkNCi0tLT4NCi0NCi08cHJvamVjdCBuYW1lPSJlbXRsQ29weSIgZGVmYXVsdD0iZW10bENvcHkiPg0KLQk8cHJvcGVydHkgbmFtZT0iaHRtbFJlcG9ydC5lbXRsLmRpciIgdmFsdWU9Im9yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVtcGxhdGUvaHRtbCI+PC9wcm9wZXJ0eT4NCi0JPHByb3BlcnR5IG5hbWU9Imh0bWxSZXBvcnQuZW10bCIgdmFsdWU9IiR7aHRtbFJlcG9ydC5lbXRsLmRpcn0vaHRtbFJlcG9ydC5lbXRsIj48L3Byb3BlcnR5Pg0KLQk8dGFyZ2V0IG5hbWU9ImVtdGxDb3B5Ij4NCi0JCTxjb3B5IGZpbGU9IiR7YmFzZWRpcn0vYmluLyR7aHRtbFJlcG9ydC5lbXRsfSIgDQotCQkJdG9maWxlPSIke2Jhc2VkaXJ9L2VtdGwvJHtodG1sUmVwb3J0LmVtdGx9Ij48L2NvcHk+DQotCTwvdGFyZ2V0Pg0KLQk8dGFyZ2V0IG5hbWU9ImVtdGxDb3B5QmFjayI+DQotCQk8Y29weSBmaWxlPSJlbXRsLyR7aHRtbFJlcG9ydC5lbXRsfSIgDQotCQkJdG9maWxlPSJiaW4vJHtodG1sUmVwb3J0LmVtdGx9Ij48L2NvcHk+DQotCTwvdGFyZ2V0Pg0KLTwvcHJvamVjdD4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3BvbS54c2wgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3BvbS54c2wKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTQyZDIwZAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvcG9tLnhzbApAQCAtMCwwICsxLDEyNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8IS0tIA0KK0NvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBNaWEtU29mdHdhcmUuDQorQWxsIHJpZ2h0cyByZXNlcnZlZC4NCitUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciANCit0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgDQorYW5kIGlzIGF2YWlsYWJsZSBhdCBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KK0NvbnRyaWJ1dG9yczoNCisgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQxMzc0OSAtIE1pc3NpbmcgR2VuZXJhdGVKYXZhLmVtdGwgZmlsZSBpbiBtb2Rpc2NvIGphdmEgZ2VuZXJhdG9yIHBsdWdpbg0KKyAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDY4NjIwIC0gW1VuaXQgVGVzdCBGYWlsdXJlXSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMuSmF2YURpc2NvdmVyZXJCZW5jaG1hcmtUZXN0LnRlc3QwMDENCistLT4NCis8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj0iMS4wIg0KKwl4bWxuczp4c2w9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybSIgeG1sbnM6ZXhzbD0iaHR0cDovL2V4c2x0Lm9yZy9jb21tb24iDQorCWV4dGVuc2lvbi1lbGVtZW50LXByZWZpeGVzPSJleHNsIiB4bWxuczptMj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIg0KKwl4bWxucz0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIj4NCisJPHhzbDpvdXRwdXQgaW5kZW50PSJ5ZXMiIC8+DQorDQorCTx4c2w6dGVtcGxhdGUgbWF0Y2g9Ii8iPg0KKwkJDQorCQk8cHJvamVjdA0KKwkJCXhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL21hdmVuLmFwYWNoZS5vcmcvUE9NLzQuMC4wIGh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL3hzZC9tYXZlbi00LjAuMC54c2QiDQorCQkJeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCINCisJCQl4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIj4NCisJCQk8eHNsOmFwcGx5LXRlbXBsYXRlcyBzZWxlY3Q9Ii8vbTI6cHJvamVjdC8qW25hbWUoKSE9J2J1aWxkJ10iIC8+DQorCQkJPHByb3BlcnRpZXM+DQorCQkJCTxlY2xpcHNlLXNpdGU+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3JlbGVhc2VzL2luZGlnbzwvZWNsaXBzZS1zaXRlPg0KKwkJCQk8cGxhdGZvcm0tdmVyc2lvbj5bMy43LDMuOCk8L3BsYXRmb3JtLXZlcnNpb24+DQorCQkJPC9wcm9wZXJ0aWVzPg0KKwkJCTxyZXBvc2l0b3JpZXM+DQorCQkJCTxyZXBvc2l0b3J5Pg0KKwkJCQkJPGlkPkVjbGlwc2UgLSBBY2NlbGVvIFNuYXBzaG90czwvaWQ+DQorCQkJCQk8dXJsPmh0dHBzOi8vcmVwby5lY2xpcHNlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9hY2NlbGVvLXNuYXBzaG90czwvdXJsPg0KKwkJCQk8L3JlcG9zaXRvcnk+DQorCQkJCTxyZXBvc2l0b3J5Pg0KKwkJCQkJPGlkPkVjbGlwc2UgLSBBY2NlbGVvIFJlbGVhc2U8L2lkPg0KKwkJCQkJPHVybD5odHRwczovL3JlcG8uZWNsaXBzZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvYWNjZWxlby1yZWxlYXNlczwvdXJsPg0KKwkJCQk8L3JlcG9zaXRvcnk+DQorCQkJPC9yZXBvc2l0b3JpZXM+DQorCQkNCisJCQk8cGx1Z2luUmVwb3NpdG9yaWVzPg0KKwkJCQk8cGx1Z2luUmVwb3NpdG9yeT4NCisJCQkJCTxpZD5FY2xpcHNlIC0gQWNjZWxlbyBTbmFwc2hvdHM8L2lkPg0KKwkJCQkJPHVybD5odHRwczovL3JlcG8uZWNsaXBzZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvYWNjZWxlby1zbmFwc2hvdHM8L3VybD4NCisJCQkJPC9wbHVnaW5SZXBvc2l0b3J5Pg0KKwkJCQk8cGx1Z2luUmVwb3NpdG9yeT4NCisJCQkJCTxpZD5FY2xpcHNlIC0gQWNjZWxlbyBSZWxlYXNlPC9pZD4NCisJCQkJCTx1cmw+aHR0cHM6Ly9yZXBvLmVjbGlwc2Uub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL2FjY2VsZW8tcmVsZWFzZXM8L3VybD4NCisJCQkJPC9wbHVnaW5SZXBvc2l0b3J5Pg0KKwkJCTwvcGx1Z2luUmVwb3NpdG9yaWVzPg0KKw0KKwkJCTxkZXBlbmRlbmNpZXM+DQorCQkJCTxkZXBlbmRlbmN5Pg0KKwkJCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UuYWNjZWxlbzwvZ3JvdXBJZD4NCisJCQkJCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFjY2VsZW8ubWF2ZW48L2FydGlmYWN0SWQ+DQorCQkJCQk8dmVyc2lvbj4zLjUuMC1TTkFQU0hPVDwvdmVyc2lvbj4NCisJCQkJPC9kZXBlbmRlbmN5Pg0KKwkJCQk8ZGVwZW5kZW5jeT4NCisJCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLmFjY2VsZW88L2dyb3VwSWQ+DQorCQkJCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hY2NlbGVvLmVuZ2luZTwvYXJ0aWZhY3RJZD4NCisJCQkJCTx2ZXJzaW9uPjMuNS4wLVNOQVBTSE9UPC92ZXJzaW9uPg0KKwkJCQk8L2RlcGVuZGVuY3k+DQorCQkJCTxkZXBlbmRlbmN5Pg0KKwkJCQkJPGdyb3VwSWQ+b3JnLnNsZjRqPC9ncm91cElkPg0KKwkJCQkJPGFydGlmYWN0SWQ+c2xmNGotc2ltcGxlPC9hcnRpZmFjdElkPg0KKwkJCQkJPHZlcnNpb24+MS42LjQ8L3ZlcnNpb24+DQorCQkJCTwvZGVwZW5kZW5jeT4NCisJCQk8L2RlcGVuZGVuY2llcz4NCisJCQkNCisJCQk8YnVpbGQ+DQorCQkJCTxwbHVnaW5zPg0KKwkJCQkJPHhzbDpjb3B5LW9mIHNlbGVjdD0iLy9tMjpwcm9qZWN0L2J1aWxkL3BsdWdpbnMvKiIvPg0KKwkJCQkJPHBsdWdpbj4NCisJCQkJCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hY2NlbGVvPC9ncm91cElkPg0KKwkJCQkJCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFjY2VsZW8ubWF2ZW48L2FydGlmYWN0SWQ+DQorCQkJCQkJPHZlcnNpb24+My41LjAtU05BUFNIT1Q8L3ZlcnNpb24+DQorCQkJCQkJPGV4ZWN1dGlvbnM+DQorCQkJCQkJCTxleGVjdXRpb24+DQorCQkJCQkJCQk8Z29hbHM+DQorCQkJCQkJCQkJPGdvYWw+YWNjZWxlby1jb21waWxlPC9nb2FsPg0KKwkJCQkJCQkJPC9nb2Fscz4NCisJCQkJCQkJCTxwaGFzZT5jb21waWxlPC9waGFzZT4NCisJCQkJCQkJPC9leGVjdXRpb24+DQorCQkJCQkJPC9leGVjdXRpb25zPg0KKwkJCQkJCTxjb25maWd1cmF0aW9uPg0KKwkJCQkJCQk8dXNlQmluYXJ5UmVzb3VyY2VzPmZhbHNlPC91c2VCaW5hcnlSZXNvdXJjZXM+DQorCQkJCQkJCTx1c2VQbGF0Zm9ybVJlc291cmNlUGF0aD50cnVlPC91c2VQbGF0Zm9ybVJlc291cmNlUGF0aD4NCisJCQkJCQkJPGFjY2VsZW9Qcm9qZWN0Pg0KKwkJCQkJCQkJPHJvb3Q+JHtiYXNlZGlyfTwvcm9vdD4NCisJCQkJCQkJCTxlbnRyaWVzPg0KKwkJCQkJCQkJCTxlbnRyeT4NCisJCQkJCQkJCQkJPGlucHV0PnNyYy88L2lucHV0Pg0KKwkJCQkJCQkJCQk8b3V0cHV0Pl9fdGFyZ2V0X18vY2xhc3Nlczwvb3V0cHV0Pg0KKwkJCQkJCQkJCTwvZW50cnk+DQorCQkJCQkJCQk8L2VudHJpZXM+DQorCQkJCQkJCQk8amFycz4NCisJCQkJCQkJCQk8amFyPnAyLmVjbGlwc2UtcGx1Z2luOm9yZy5lY2xpcHNlLmVtZi5lY29yZTwvamFyPg0KKwkJCQkJCQkJCTxqYXI+b3JnLmVjbGlwc2UubWR0Om9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay5qYXZhQmVuY2htYXJrPC9qYXI+DQorCQkJCQkJCQkJPGphcj5vcmcuZWNsaXBzZS5tZHQ6b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrPC9qYXI+DQorCQkJCQkJCQk8L2phcnM+DQorCQkJCQkJCTwvYWNjZWxlb1Byb2plY3Q+DQorCQkJCQkJCTxwYWNrYWdlc1RvUmVnaXN0ZXI+DQorCQkJCQkJCQk8cGFja2FnZVRvUmVnaXN0ZXI+b3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVjb3JlUGFja2FnZTwvcGFja2FnZVRvUmVnaXN0ZXI+DQorCQkJCQkJCQk8cGFja2FnZVRvUmVnaXN0ZXI+b3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmphdmFCZW5jaG1hcmsuSmF2YUJlbmNobWFya1BhY2thZ2U8L3BhY2thZ2VUb1JlZ2lzdGVyPg0KKwkJCQkJCQkJPHBhY2thZ2VUb1JlZ2lzdGVyPm9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5CZW5jaG1hcmtQYWNrYWdlPC9wYWNrYWdlVG9SZWdpc3Rlcj4NCisJCQkJCQkJPC9wYWNrYWdlc1RvUmVnaXN0ZXI+DQorCQkJCQkJCTx1cmlIYW5kbGVyPm9yZy5lY2xpcHNlLmFjY2VsZW8ubWF2ZW4uQWNjZWxlb1VSSUhhbmRsZXI8L3VyaUhhbmRsZXI+DQorCQkJCQkJPC9jb25maWd1cmF0aW9uPg0KKwkJCQkJPC9wbHVnaW4+DQorCQkJCQk8cGx1Z2luPg0KKwkJCQkJCTxncm91cElkPm9yZy5hcGFjaGUubWF2ZW4ucGx1Z2luczwvZ3JvdXBJZD4NCisJCQkJCQk8YXJ0aWZhY3RJZD5tYXZlbi1yZXNvdXJjZXMtcGx1Z2luPC9hcnRpZmFjdElkPg0KKwkJCQkJCTx2ZXJzaW9uPjIuNC4xPC92ZXJzaW9uPg0KKwkJCQkJCTxjb25maWd1cmF0aW9uPg0KKwkJCQkJCQk8ZW5jb2Rpbmc+VVRGLTg8L2VuY29kaW5nPg0KKwkJCQkJCTwvY29uZmlndXJhdGlvbj4NCisJCQkJCTwvcGx1Z2luPg0KKwkJCQk8L3BsdWdpbnM+DQorCQkJCTx4c2w6Y29weS1vZiBzZWxlY3Q9Ii8vbTI6cHJvamVjdC9idWlsZC8qW25hbWUoKSE9J3BsdWdpbnMnXSIvPg0KKwkJCTwvYnVpbGQ+DQorCQk8L3Byb2plY3Q+DQorCTwveHNsOnRlbXBsYXRlPg0KKw0KKwk8eHNsOnRlbXBsYXRlIG1hdGNoPSJtMjoqfEAqIj4NCisJCTx4c2w6Y29weS1vZiBzZWxlY3Q9Ii4iIC8+DQorCTwveHNsOnRlbXBsYXRlPg0KKw0KKzwveHNsOnN0eWxlc2hlZXQ+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9BYnN0cmFjdFJ1bkJlbmNobWFyay5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9BYnN0cmFjdFJ1bkJlbmNobWFyay5qYXZhCmluZGV4IGI5ZTA3NDkuLmU5MmYzNTggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvQWJzdHJhY3RSdW5CZW5jaG1hcmsuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL0Fic3RyYWN0UnVuQmVuY2htYXJrLmphdmEKQEAgLTUyLDcgKzUyLDggQEAKIGltcG9ydCBjb20uaWJtLmljdS50ZXh0LlNpbXBsZURhdGVGb3JtYXQ7DQogDQogLyoqDQotICogQGRlcHJlY2F0ZWQgdXNlIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyayBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0UnVuQmVuY2htYXJrIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvQWN0aXZhdG9yLmphdmEKaW5kZXggNTViOGU1ZS4uOGVmMDVkZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL0FjdGl2YXRvci5qYXZhCkBAIC0xNyw3ICsxNyw4IEBACiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsgY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9NZXNzYWdlcy5qYXZhCmluZGV4IGRjNTZjMzIuLjQ3NmY1NjIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL01lc3NhZ2VzLmphdmEKQEAgLTE3LDcgKzE3LDggQEAKICAqIEBhdXRob3IgZ2R1cGUNCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsgY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvUmVwb3J0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL1JlcG9ydC5qYXZhCmluZGV4IGRhM2VmZGIuLjM4NmE2NWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvUmVwb3J0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9SZXBvcnQuamF2YQpAQCAtODIsNyArODIsOCBAQAogICogQGF1dGhvciBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyayBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFJlcG9ydCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9SdW5CZW5jaG1hcmsuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvUnVuQmVuY2htYXJrLmphdmEKaW5kZXggNzNkZmRiNS4uYmE1YzU2MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9SdW5CZW5jaG1hcmsuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL1J1bkJlbmNobWFyay5qYXZhCkBAIC0zNiw3ICszNiw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLk11bHRpUHJvamVjdEJlbmNobWFyazsNCiANCiAvKioNCi0gKiBAZGVwcmVjYXRlZCB1c2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsgY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUnVuQmVuY2htYXJrIGV4dGVuZHMgQWJzdHJhY3RSdW5CZW5jaG1hcmsgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvUnVuQmVuY2htYXJrSW5jVnNDbGFzc2ljYWwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvUnVuQmVuY2htYXJrSW5jVnNDbGFzc2ljYWwuamF2YQppbmRleCA2YWEyZjI0Li5mZTBiOWNhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL1J1bkJlbmNobWFya0luY1ZzQ2xhc3NpY2FsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9SdW5CZW5jaG1hcmtJbmNWc0NsYXNzaWNhbC5qYXZhCkBAIC0yMCw3ICsyMCw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuamR0LmNvcmUuSUphdmFQcm9qZWN0Ow0KIA0KIC8qKg0KLSAqIEBkZXByZWNhdGVkIHVzZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsgY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyayBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBSdW5CZW5jaG1hcmtJbmNWc0NsYXNzaWNhbCBleHRlbmRzIEFic3RyYWN0UnVuQmVuY2htYXJrIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2FjdGlvbnMvR2VuZXJhdGVSZXBvcnRBY3Rpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvYWN0aW9ucy9HZW5lcmF0ZVJlcG9ydEFjdGlvbi5qYXZhCmluZGV4IDc2MjQ2YzYuLjY4YWYxN2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvYWN0aW9ucy9HZW5lcmF0ZVJlcG9ydEFjdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvYWN0aW9ucy9HZW5lcmF0ZVJlcG9ydEFjdGlvbi5qYXZhCkBAIC0yOSw2ICsyOSwxMSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsuUmVwb3J0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmVtZnN0YXQuU3RhdGlzdGljczsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQsDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEdlbmVyYXRlUmVwb3J0QWN0aW9uIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQogDQogCUBEZXByZWNhdGVkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay9jZG8vc2VydmVyL0gyQ0RPU2VydmVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2Nkby9zZXJ2ZXIvSDJDRE9TZXJ2ZXIuamF2YQppbmRleCA1OWI4MDQzLi5lM2ZhMTkxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2Nkby9zZXJ2ZXIvSDJDRE9TZXJ2ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2Nkby9zZXJ2ZXIvSDJDRE9TZXJ2ZXIuamF2YQpAQCAtMzEsNiArMzEsMTEgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5uZXQ0ai5kYi5JREJBZGFwdGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5uZXQ0ai5kYi5oMi5IMkFkYXB0ZXI7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkLA0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBIMkNET1NlcnZlciBleHRlbmRzIEFic3RyYWN0Q0RPU2VydmVyIHsNCiANCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay90ZW1wbGF0ZS9odG1sL0h0bWxSZXBvcnQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVtcGxhdGUvaHRtbC9IdG1sUmVwb3J0LmphdmEKaW5kZXggMzY0MTYyOC4uNDIzMWI4MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay90ZW1wbGF0ZS9odG1sL0h0bWxSZXBvcnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3RlbXBsYXRlL2h0bWwvSHRtbFJlcG9ydC5qYXZhCkBAIC0yOCw3ICsyOCwxMCBAQAogICogRW50cnkgcG9pbnQgb2YgdGhlICdIdG1sUmVwb3J0JyBnZW5lcmF0aW9uIG1vZHVsZS4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQsDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEh0bWxSZXBvcnQgZXh0ZW5kcyBBYnN0cmFjdEFjY2VsZW9HZW5lcmF0b3Igew0KIAkvKioNCiAJICogVGhlIG5hbWUgb2YgdGhlIG1vZHVsZS4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAzNzM2YzExLi5kODM3MGMwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyO2J1bmRsZS12ZXJzaW9uPSIwLjUuMSIsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggYzJhNDE0MS4uMDllMGZmNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTAsNCArMTAsNCBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEphdmEgQ0RPIERpc2NvdmVyZXIgdGVzdHMgKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEphdmEgQ0RPIERpc2NvdmVyZXIgdGVzdHMgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGVjMTlmMDYuLjE5NjQxMjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlcjtidW5kbGUtdmVyc2lvbj0iMC41LjEiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDJkMDJiNTUuLmVhMzUzM2EgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8vT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDQgKzEwLDQgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBDRE8gSmF2YSBEaXNjb3ZlcmVyIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBDRE8gSmF2YSBEaXNjb3ZlcmVyIChEZXByZWNhdGVkKSAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNTIzZWQ3MC4uZWIxY2Q4NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMuQWN0aXZhdG9yDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlciwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IGVmOTZkYmMuLjNmZWIwN2EgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xMSw3ICsxMSw3IEBACiANCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEphdmEgRGlzY292ZXJlciBUZXN0cyAgKEluY3ViYXRpb24pDQotZGlzY292ZXJlci50cmFjZSA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBUcmFjZQ0KLWRpc2NvdmVyZXIuc2ltcGxlU3RhdCA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgLSBTaW1wbGUgc3RhdA0KLWRpc2NvdmVyZXIubW9kZWxFbGVtZW50U3RhdHMgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gTW9kZWwgZWxlbWVudCBzdGF0cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIERpc2NvdmVyZXIgVGVzdHMgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KK2Rpc2NvdmVyZXIudHJhY2UgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gVHJhY2UgKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5zaW1wbGVTdGF0ID0gRGlzY292ZXIgSmF2YSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdCAtIFNpbXBsZSBzdGF0IChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubW9kZWxFbGVtZW50U3RhdHMgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0IC0gTW9kZWwgZWxlbWVudCBzdGF0cyAoRGVwcmVjYXRlZCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNTk0OTJhZi4uMGU3YzcwMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMyw3ICszLDcgQEAKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXI7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUNCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggMDliY2RhOC4uZDRmYjNjNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTExLDExICsxMSwxMSBAQAogDQogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIERpc2NvdmVyZXIgKEluY3ViYXRpb24pDQotZGlzY292ZXJlci5qYXZhUHJvamVjdDJLRE0gPSBEaXNjb3ZlciBLRE0gY29kZSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdC4uLg0KLWRpc2NvdmVyZXIuamF2YVByb2plY3QyTW9kZWwgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0Li4uDQotZGlzY292ZXJlci5jbGFzc0ZpbGUyTW9kZWwgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gQ2xhc3MgZmlsZQ0KLWRpc2NvdmVyZXIubGlicmFyeTJNb2RlbCA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBMaWJyYXJ5DQotZGlzY292ZXJlci5tb2RlbDJLRE0gPSBEaXNjb3ZlciBLRE0gY29kZSBtb2RlbCBmcm9tIEphdmEgbW9kZWwNCi1kaXNjb3ZlcmVyLm5hbWUgPSBCcm93c2UgY29ycmVzcG9uZGluZyBqYXZhIGNvZGUNCi1kaXNjb3ZlcmVyLm5hbWUuMCA9IEJyb3dzZSBjb3JyZXNwb25kaW5nIGphdmEgbW9kZWwgZWxlbWVudApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIERpc2NvdmVyZXIgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KK2Rpc2NvdmVyZXIuamF2YVByb2plY3QyS0RNID0gRGlzY292ZXIgS0RNIGNvZGUgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QuLi4gKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5qYXZhUHJvamVjdDJNb2RlbCA9IERpc2NvdmVyIEphdmEgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QuLi4gKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5jbGFzc0ZpbGUyTW9kZWwgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gQ2xhc3MgZmlsZSAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLmxpYnJhcnkyTW9kZWwgPSBEaXNjb3ZlciBKYXZhIG1vZGVsIGZyb20gTGlicmFyeSAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm1vZGVsMktETSA9IERpc2NvdmVyIEtETSBjb2RlIG1vZGVsIGZyb20gSmF2YSBtb2RlbCAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUgPSBCcm93c2UgY29ycmVzcG9uZGluZyBqYXZhIGNvZGUgKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5uYW1lLjAgPSBCcm93c2UgY29ycmVzcG9uZGluZyBqYXZhIG1vZGVsIGVsZW1lbnQgKERlcHJlY2F0ZWQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL0lNb2RlbFJlYWRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL0lNb2RlbFJlYWRlci5qYXZhCmluZGV4IDJlZWY3ZGMuLmQ3NTlkNjkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9JTW9kZWxSZWFkZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvSU1vZGVsUmVhZGVyLmphdmEKQEAgLTE3LDcgKzE3LDcgQEAKICAqIFRoZSBpbnRlcmZhY2UgZm9yIHJlYWRlcnMgd2hpY2ggYnVpbGQgSmF2YSBtb2RlbHMuDQogICogPHA+DQogICogQSBtb2RlbCByZWFkZXIgcmVhZHMgYSBzb3VyY2UgKGEgSmF2YSBwcm9qZWN0IGZvciBleGFtcGxlKSBhbmQgZmlsbCBhIGdpdmVuDQotICoge0BsaW5rIE1vZGVsfSBvYmplY3QuIA0KKyAqIHtAbGluayBNb2RlbH0gb2JqZWN0Lg0KICAqIDwvcD4NCiAgKiA8cD4NCiAgKiBDb25jcmV0ZSBtb2RlbCByZWFkZXJzIHNob3VsZCBpbmRpY2F0ZSB3aGljaCBzb3VyY2UgdHlwZSB0aGV5IGNhbiBoYW5kbGUuDQpAQCAtMzQsNyArMzQsOSBAQAogICogQ2xpZW50cyBzaG91bGRuJ3QgbWFrZSBtb2RpZmljYXRpb25zIG9uIHRoZSByZXN1bHRpbmcge0Bjb2RlIE1vZGVsfS4NCiAgKiA8L3A+DQogICogDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIElNb2RlbFJlYWRlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL0phdmFBY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9KYXZhQWN0aXZhdG9yLmphdmEKaW5kZXggYjBkZmQzZi4uNzQxNzJiMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL0phdmFBY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvSmF2YUFjdGl2YXRvci5qYXZhCkBAIC0yMiw3ICsyMiw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKYXZhQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvTWVzc2FnZXMuamF2YQppbmRleCAwZDAwMmQ3Li45MTlkNmYxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvTWVzc2FnZXMuamF2YQpAQCAtMTMsNyArMTMsMTEgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KLS8qKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSAqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm1lc3NhZ2VzIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Jyb3dzZUphdmFDb2RlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9Ccm93c2VKYXZhQ29kZS5qYXZhCmluZGV4IDZmNTNiZTQuLjhjZGMyYTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Jyb3dzZUphdmFDb2RlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvQnJvd3NlSmF2YUNvZGUuamF2YQpAQCAtNDYsNyArNDYsOSBAQAogDQogLyoqDQogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCcm93c2VKYXZhQ29kZSBleHRlbmRzIEFic3RyYWN0RGlzY292ZXJlckltcGwgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Jyb3dzZUphdmFNb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvQnJvd3NlSmF2YU1vZGVsLmphdmEKaW5kZXggM2EyZGE5OS4uN2U4YTZiZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvQnJvd3NlSmF2YU1vZGVsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvQnJvd3NlSmF2YU1vZGVsLmphdmEKQEAgLTQ1LDcgKzQ1LDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQnJvd3NlSmF2YU1vZGVsIGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGVmYXVsdERpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0RlZmF1bHREaXNjb3ZlcmVyLmphdmEKaW5kZXggOTE5MDg5ZC4uOTU5NjA1YyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGVmYXVsdERpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EZWZhdWx0RGlzY292ZXJlci5qYXZhCkBAIC00OSw3ICs0OSw5IEBACiANCiAvKioNCiAgKiBBIGRlZmF1bHQgaW1wbGVtZW50YXRpb24gb2YgYSBkaXNjb3ZlcmVyIHN1aXRhYmxlIGZvciBzdWJjbGFzc2luZy4NCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZWZhdWx0RGlzY292ZXJlciBleHRlbmRzIEFic3RyYWN0UmVnaW9uRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJKYXZhTW9kZWxGcm9tQ2xhc3NGaWxlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlckphdmFNb2RlbEZyb21DbGFzc0ZpbGUuamF2YQppbmRleCA2MzJkZTFjLi41YjUyM2Q0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlckphdmFNb2RlbEZyb21DbGFzc0ZpbGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlckphdmFNb2RlbEZyb21DbGFzc0ZpbGUuamF2YQpAQCAtMzksNyArMzksOSBAQAogDQogLyoqDQogICogQWN0aW9uIHRvIGRpc2NvdmVyIGEgSmF2YSBtb2RlbCBmcm9tIGEgYSBKYXZhIHByb2plY3QuDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJKYXZhTW9kZWxGcm9tQ2xhc3NGaWxlIGV4dGVuZHMgRGVmYXVsdERpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVySmF2YU1vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlckphdmFNb2RlbEZyb21KYXZhUHJvamVjdC5qYXZhCmluZGV4IGVkZjcwOTkuLmRkMWNmZjIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVySmF2YU1vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJKYXZhTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQpAQCAtNjUsNyArNjUsOSBAQAogLyoqDQogICogQWN0aW9uIHRvIGRpc2NvdmVyIGEgSmF2YSBtb2RlbCBmcm9tIGEgSmF2YSBwcm9qZWN0IGFuZCBvcHRpb25hbGx5IGl0cw0KICAqIGxpYnJhcmllcy4NCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3ZlckphdmFNb2RlbEZyb21KYXZhUHJvamVjdCBleHRlbmRzIERlZmF1bHREaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlckphdmFNb2RlbEZyb21MaWJyYXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlckphdmFNb2RlbEZyb21MaWJyYXJ5LmphdmEKaW5kZXggNTk0OTQyNi4uZjIxN2EzMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJKYXZhTW9kZWxGcm9tTGlicmFyeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVySmF2YU1vZGVsRnJvbUxpYnJhcnkuamF2YQpAQCAtNDIsNyArNDIsOSBAQAogICogQWN0aW9uIHRvIGRpc2NvdmVyIGEgSmF2YSBtb2RlbCBmcm9tIGEgbGlicmFyeSBvZiBhIEphdmEgcHJvamVjdC4NCiAgKiANCiAgKiBAc2VlIElQYWNrYWdlRnJhZ21lbnRSb290DQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJKYXZhTW9kZWxGcm9tTGlicmFyeSBleHRlbmRzIERlZmF1bHREaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlcktkbU1vZGVsRnJvbUphdmFNb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJLZG1Nb2RlbEZyb21KYXZhTW9kZWwuamF2YQppbmRleCA2YmNkZDRhLi44YzZmOTYyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlcktkbU1vZGVsRnJvbUphdmFNb2RlbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVyS2RtTW9kZWxGcm9tSmF2YU1vZGVsLmphdmEKQEAgLTMxLDcgKzMxLDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci5EaXNjb3ZlcnlQYXJhbWV0ZXJJbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLkphdmFBY3RpdmF0b3I7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuTWVzc2FnZXM7DQotLyoqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpICovDQorLyoqIA0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjggDQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJLZG1Nb2RlbEZyb21KYXZhTW9kZWwgZXh0ZW5kcyBEZWZhdWx0RGlzY292ZXJlciB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJLZG1Nb2RlbEZyb21KYXZhUHJvamVjdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJLZG1Nb2RlbEZyb21KYXZhUHJvamVjdC5qYXZhCmluZGV4IDAyM2QyMDEuLjdkMTJmYTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVyS2RtTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlcktkbU1vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEKQEAgLTMyLDcgKzMyLDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5NZXNzYWdlczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamR0LmNvcmUuSUphdmFQcm9qZWN0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5KYXZhQ29yZTsNCi0vKiogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3ZlcktkbU1vZGVsRnJvbUphdmFQcm9qZWN0IGV4dGVuZHMgRGVmYXVsdERpc2NvdmVyZXIgew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVyeVBhcmFtZXRlcnNCZWFuLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9EaXNjb3ZlcnlQYXJhbWV0ZXJzQmVhbi5qYXZhCmluZGV4IDk5MTQ0ZTcuLmU1ZTAyNzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL0Rpc2NvdmVyeVBhcmFtZXRlcnNCZWFuLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvRGlzY292ZXJ5UGFyYW1ldGVyc0JlYW4uamF2YQpAQCAtMjMsNyArMjMsOSBAQAogDQogLyoqDQogICogVGhpcyBKYXZhIGJlYW4gc3RvcmVzIHNvbWUgZW50cmllcyBvZiBhZHZhbmNlZCBKYXZhIGRpc2NvdmVyaW5nLg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyeVBhcmFtZXRlcnNCZWFuIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9UcmFuc2Zvcm1hdGlvbnNFeHBvcnRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvVHJhbnNmb3JtYXRpb25zRXhwb3J0ZXIuamF2YQppbmRleCAyOTIwN2Y1Li43YWU2NmU4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9UcmFuc2Zvcm1hdGlvbnNFeHBvcnRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL1RyYW5zZm9ybWF0aW9uc0V4cG9ydGVyLmphdmEKQEAgLTM4LDcgKzM4LDkgQEAKIA0KIC8qKg0KICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVHJhbnNmb3JtYXRpb25zRXhwb3J0ZXIgZXh0ZW5kcyBBYnN0cmFjdERpc2NvdmVyZXJJbXBsIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9UcmFuc2xhdGVKYXZhTW9kZWxUb0tkbS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvVHJhbnNsYXRlSmF2YU1vZGVsVG9LZG0uamF2YQppbmRleCA5MDNiZmRiLi5mNjNmNGZiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy9UcmFuc2xhdGVKYXZhTW9kZWxUb0tkbS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL1RyYW5zbGF0ZUphdmFNb2RlbFRvS2RtLmphdmEKQEAgLTIxLDcgKzIxLDExIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5pbnRlcm5hbC5jb3JlLkF0bExhdW5jaEhlbHBlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5pbnRlcm5hbC5jb3JlLkF0bExhdW5jaEhlbHBlci5Nb2RlbEluZm87DQogaW1wb3J0IG9yZy5lY2xpcHNlLm0ybS5hdGwuY29tbW9uLkFUTExvZ2dlcjsNCi0vKiogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkgKi8NCisvKioNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVHJhbnNsYXRlSmF2YU1vZGVsVG9LZG0gew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL3VpL0phdmFXaXphcmQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL3VpL0phdmFXaXphcmQuamF2YQppbmRleCA2NzRhNTk3Li41Yzg1MjVjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy91aS9KYXZhV2l6YXJkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvdWkvSmF2YVdpemFyZC5qYXZhCkBAIC0yMCw3ICsyMCw5IEBACiANCiAvKioNCiAgKiBUaGUgSmF2YSBkaXNjb3ZlcmVyIHdpemFyZC4NCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqICAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKYXZhV2l6YXJkIGV4dGVuZHMgV2l6YXJkIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy91aS9KYXZhV2l6YXJkRmlyc3RQYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvYWN0aW9ucy91aS9KYXZhV2l6YXJkRmlyc3RQYWdlLmphdmEKaW5kZXggZGNkMmRhOS4uNzk2ODFjMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2FjdGlvbnMvdWkvSmF2YVdpemFyZEZpcnN0UGFnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9hY3Rpb25zL3VpL0phdmFXaXphcmRGaXJzdFBhZ2UuamF2YQpAQCAtNTksNyArNTksOSBAQAogDQogLyoqDQogICogVGhlIHBhZ2Ugb2YgdGhlIEphdmEgV2l6YXJkLg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEphdmFXaXphcmRGaXJzdFBhZ2UgZXh0ZW5kcyBXaXphcmRQYWdlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW50ZXJuYWwvY29yZS9BdGxMYXVuY2hIZWxwZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pbnRlcm5hbC9jb3JlL0F0bExhdW5jaEhlbHBlci5qYXZhCmluZGV4IDcxNzQ1ZWMuLjQ0ZTUyNzEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pbnRlcm5hbC9jb3JlL0F0bExhdW5jaEhlbHBlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pbnRlcm5hbC9jb3JlL0F0bExhdW5jaEhlbHBlci5qYXZhCkBAIC0zNCw3ICszNCw5IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIGdiYXJiaWVyDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQXRsTGF1bmNoSGVscGVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW50ZXJuYWwvY29yZS9KYXZhSmR0QnJpZGdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW50ZXJuYWwvY29yZS9KYXZhSmR0QnJpZGdlLmphdmEKaW5kZXggMTE3YWQ5ZC4uN2NjMDdkNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2ludGVybmFsL2NvcmUvSmF2YUpkdEJyaWRnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pbnRlcm5hbC9jb3JlL0phdmFKZHRCcmlkZ2UuamF2YQpAQCAtNDIsNyArNDIsOSBAQAogDQogLyoqDQogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKYXZhSmR0QnJpZGdlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9Db21tZW50c01hbmFnZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0NvbW1lbnRzTWFuYWdlci5qYXZhCmluZGV4IDkxYTgzODEuLmVlOGNjYWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0NvbW1lbnRzTWFuYWdlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0NvbW1lbnRzTWFuYWdlci5qYXZhCkBAIC0zNSw3ICszNSw5IEBACiAvKioNCiAgKiBUaGUgYWltIG9mIHRoaXMgY2xhc3MgaXMgdG8gbGluayBjb21tZW50cyB0byB0aGUgcmVsYXRlZCBub2Rlcy4gSkRUIGRvZXMgbm90DQogICogYXR0YWNoIGNvbW1lbnRzIChsaW5lIGFuZCBibG9jayBjb21tZW50cykgdG8gbW9kZWwgbm9kZXMuDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgQ29tbWVudHNNYW5hZ2VyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9KRFRWaXNpdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9KRFRWaXNpdG9yLmphdmEKaW5kZXggYmQ0YWVlMC4uYTUyYWY3ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvSkRUVmlzaXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0pEVFZpc2l0b3IuamF2YQpAQCAtNTUsNyArNTUsOSBAQAogICogDQogICogQHNlZSBNb2RlbA0KICAqIEBzZWUgQVNUVmlzaXRvcg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEpEVFZpc2l0b3IgZXh0ZW5kcyBBU1RWaXNpdG9yIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9KRFRWaXNpdG9yVXRpbHMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0pEVFZpc2l0b3JVdGlscy5qYXZhCmluZGV4IGJkY2ZlMGUuLmExZjA1ODcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0pEVFZpc2l0b3JVdGlscy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0pEVFZpc2l0b3JVdGlscy5qYXZhCkBAIC01Myw3ICs1MywxMSBAQAogDQogLyoqDQogICogVGhlIGNsYXNzIHByb3ZpZGVzIHRvb2xzIGZvciB0aGUgSkRUVmlzaXRvci4NCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjggKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgSkRUVmlzaXRvclV0aWxzIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9KYXZhUmVhZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9KYXZhUmVhZGVyLmphdmEKaW5kZXggNDM5OTg2Ny4uNGI3ZmY3OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvSmF2YVJlYWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL0phdmFSZWFkZXIuamF2YQpAQCAtNzMsNyArNzMsOSBAQAogICogDQogICogQHNlZSBMaWJyYXJ5UmVhZGVyDQogICogQHNlZSBBU1RQYXJzZXINCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKYXZhUmVhZGVyIGltcGxlbWVudHMgSU1vZGVsUmVhZGVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9NZXRob2RSZWRlZmluaXRpb25NYW5hZ2VyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9NZXRob2RSZWRlZmluaXRpb25NYW5hZ2VyLmphdmEKaW5kZXggZTE3ZjM2ZC4uZGExMjE0OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvTWV0aG9kUmVkZWZpbml0aW9uTWFuYWdlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL01ldGhvZFJlZGVmaW5pdGlvbk1hbmFnZXIuamF2YQpAQCAtMzIsNyArMzIsOSBAQAogLyoqDQogICogVGhlIGFpbSBvZiB0aGlzIGNsYXNzIGlzIHRvIGJpbmQgbWV0aG9kIHdpdGggdGhlIG1ldGhvZCBvdmVycmlkZW4gb2YgYSBzdXBlcg0KICAqIGNsYXNzIGlmIGFueQ0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIE1ldGhvZFJlZGVmaW5pdGlvbk1hbmFnZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmlqZWN0aXZlTWFwLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0JpamVjdGl2ZU1hcC5qYXZhCmluZGV4IGQ3ZGY3NjkuLjZmNWM2NTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmlqZWN0aXZlTWFwLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9CaWplY3RpdmVNYXAuamF2YQpAQCAtMjIsNyArMjIsOSBAQAogDQogLyoqDQogICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGEgcGFyYW1ldGVyaXplZCBiaWplY3RpdmUgbWFwDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQmlqZWN0aXZlTWFwPEtleSwgVmFsdWU+IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0JpbmRpbmcuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmluZGluZy5qYXZhCmluZGV4IDlhODVmMjAuLjJiNGU0ODcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmluZGluZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmluZGluZy5qYXZhCkBAIC0yNyw3ICsyNyw5IEBACiAgKiA8L3A+DQogICogDQogICogQHNlZSBJQmluZGluZw0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEJpbmRpbmcgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmluZGluZ01hbmFnZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQmluZGluZ01hbmFnZXIuamF2YQppbmRleCA5ZGEwZmM5Li4yMWE4ZWQ5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0JpbmRpbmdNYW5hZ2VyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9CaW5kaW5nTWFuYWdlci5qYXZhCkBAIC02NSw3ICs2NSw5IEBACiAgKiANCiAgKiBAc2VlICNyZXNvbHZlQmluZGluZ3MoTW9kZWwpDQogICogQHNlZSBQZW5kaW5nRWxlbWVudCNhZmZlY3RUYXJnZXQoQVNUTm9kZSkNCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCaW5kaW5nTWFuYWdlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9DbGFzc0JpbmRpbmcuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvQ2xhc3NCaW5kaW5nLmphdmEKaW5kZXggYWY1MDg5Yy4uMzYyMWNhYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9DbGFzc0JpbmRpbmcuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0NsYXNzQmluZGluZy5qYXZhCkBAIC0yNSw3ICsyNSw5IEBACiAgKiB7QGNvZGUgQmluZGluZ30gcmVwcmVzZW50aW5nIGEgdHlwZSAoQ2xhc3MsIEludGVyZmFjZSwgQW5ub3RhdGlvbiwgb3IgRW51bSkuDQogICogDQogICogQHNlZSBJVHlwZUJpbmRpbmcNCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBDbGFzc0JpbmRpbmcgZXh0ZW5kcyBCaW5kaW5nIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0ZlYXR1cmVCaW5kaW5nLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0ZlYXR1cmVCaW5kaW5nLmphdmEKaW5kZXggMjQ0OTFiNi4uNzhhZjQ3MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9GZWF0dXJlQmluZGluZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvRmVhdHVyZUJpbmRpbmcuamF2YQpAQCAtMTgsNyArMTgsOSBAQAogDQogLyoqDQogICogPGNvZGU+QmluZGluZzwvY29kZT4gcmVwcmVzZW50aW5nIGEgZmVhdHVyZWQgSmF2YSBlbnRpdHkuDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgRmVhdHVyZUJpbmRpbmcgZXh0ZW5kcyBCaW5kaW5nIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0ZpZWxkQmluZGluZy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9GaWVsZEJpbmRpbmcuamF2YQppbmRleCA2ZTc5MWM2Li41NjRiNWQ4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0ZpZWxkQmluZGluZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvRmllbGRCaW5kaW5nLmphdmEKQEAgLTIyLDcgKzIyLDkgQEAKICAqIDxjb2RlPkJpbmRpbmc8L2NvZGU+IHJlcHJlc2VudGluZyBhIGZpZWxkLg0KICAqIA0KICAqIEBzZWUgSVZhcmlhYmxlQmluZGluZw0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEZpZWxkQmluZGluZyBleHRlbmRzIEZlYXR1cmVCaW5kaW5nIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0lCaW5kaW5nRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9JQmluZGluZ0ZhY3RvcnkuamF2YQppbmRleCA1YTMzYTM4Li5iNGNhZjk1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0lCaW5kaW5nRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvSUJpbmRpbmdGYWN0b3J5LmphdmEKQEAgLTI5LDcgKzI5LDkgQEAKICAqIEEgRmFjdG9yeSB3aGljaCBjcmVhdGVzIE1vRGlzY28ge0BsaW5rIEJpbmRpbmd9cyBmcm9tIEpEVCBub2Rlcy4NCiAgKiANCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmpkdC5jb3JlLmRvbS5BU1ROb2RlDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIElCaW5kaW5nRmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9KRFREZWxlZ2F0ZUJpbmRpbmdGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0pEVERlbGVnYXRlQmluZGluZ0ZhY3RvcnkuamF2YQppbmRleCAwZjhlNzNmLi5kZWVkN2M3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0pEVERlbGVnYXRlQmluZGluZ0ZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL0pEVERlbGVnYXRlQmluZGluZ0ZhY3RvcnkuamF2YQpAQCAtMzksNyArMzksOSBAQAogICogDQogICogQHNlZSBJQmluZGluZw0KICAqIEBzZWUgQVNUUGFyc2VyI3NldFJlc29sdmVCaW5kaW5ncyhib29sZWFuKQ0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIEpEVERlbGVnYXRlQmluZGluZ0ZhY3RvcnkgaW1wbGVtZW50cyBJQmluZGluZ0ZhY3Rvcnkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvTWV0aG9kQmluZGluZy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9NZXRob2RCaW5kaW5nLmphdmEKaW5kZXggNzQ5ZTgyMC4uMGJjNWFlNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9NZXRob2RCaW5kaW5nLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9NZXRob2RCaW5kaW5nLmphdmEKQEAgLTI1LDcgKzI1LDkgQEAKICAqIDxjb2RlPkJpbmRpbmc8L2NvZGU+IHJlcHJlc2VudGluZyBhIEphdmEgbWV0aG9kLg0KICAqIA0KICAqIEBzZWUgSU1ldGhvZEJpbmRpbmcNCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXRob2RCaW5kaW5nIGV4dGVuZHMgRmVhdHVyZUJpbmRpbmcgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvUGFja2FnZUJpbmRpbmcuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvUGFja2FnZUJpbmRpbmcuamF2YQppbmRleCBjOTQ5MDA2Li5jNjQ3YWMyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL1BhY2thZ2VCaW5kaW5nLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9QYWNrYWdlQmluZGluZy5qYXZhCkBAIC0yMiw3ICsyMiw5IEBACiAgKiB7QGNvZGUgQmluZGluZ30gcmVwcmVzZW50aW5nIGEgSmF2YSBwYWNrYWdlLg0KICAqIA0KICAqIEBzZWUgSVBhY2thZ2VCaW5kaW5nDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUGFja2FnZUJpbmRpbmcgZXh0ZW5kcyBCaW5kaW5nIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL1BlbmRpbmdFbGVtZW50LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL1BlbmRpbmdFbGVtZW50LmphdmEKaW5kZXggNWE1OWY4Yy4uYjI1ZDRmYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9QZW5kaW5nRWxlbWVudC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvUGVuZGluZ0VsZW1lbnQuamF2YQpAQCAtNTcsNyArNTcsOSBAQAogICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIHRoZSBtZXRhLWNsYXNzIHtAY29kZSBBU1ROb2RlfSBidXQgaXMgPGI+bm90PC9iPiBtb2RlbGVkIGluIHRoZSBKYXZhIG1ldGEtbW9kZWwuDQogICogSXQgaXMgYSB0cmljayB0byBlYXNlIHRoZSB1c2FnZSBvZiB0aGlzIGNsYXNzIGluIHRoZSB7QGNvZGUgSkRUVmlzaXRvcn0uDQogICogPC9wPg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFBlbmRpbmdFbGVtZW50IGltcGxlbWVudHMgQVNUTm9kZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9WYXJpYWJsZUJpbmRpbmcuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9qYXZhL2JpbmRpbmcvVmFyaWFibGVCaW5kaW5nLmphdmEKaW5kZXggODVmNTI1NS4uOGZiYjQxZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2phdmEvYmluZGluZy9WYXJpYWJsZUJpbmRpbmcuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vamF2YS9iaW5kaW5nL1ZhcmlhYmxlQmluZGluZy5qYXZhCkBAIC0yMiw3ICsyMiw5IEBACiAgKiB7QGNvZGUgQmluZGluZ30gcmVwcmVzZW50aW5nIGEgbG9jYWwgdmFyaWFibGUuDQogICogDQogICogQHNlZSBJVmFyaWFibGVCaW5kaW5nDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCkNCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieQ0KKyAqICAgICAgICAgICAgICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzI4DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVmFyaWFibGVCaW5kaW5nIGV4dGVuZHMgQmluZGluZyB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2xpYnJhcnkvQ2xhc3NGaWxlUGFyc2VyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9DbGFzc0ZpbGVQYXJzZXIuamF2YQppbmRleCBhOTljYTcxLi4xZDk5NDk2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9DbGFzc0ZpbGVQYXJzZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9DbGFzc0ZpbGVQYXJzZXIuamF2YQpAQCAtNzgsNyArNzgsOSBAQAogICogb2Yge0BsaW5rIElDbGFzc0ZpbGUgY2xhc3MgZmlsZXN9Lg0KICAqIA0KICAqIEBzZWUgTW9kZWwNCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBDbGFzc0ZpbGVQYXJzZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L0NsYXNzRmlsZVBhcnNlclV0aWxzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9DbGFzc0ZpbGVQYXJzZXJVdGlscy5qYXZhCmluZGV4IDdhMTkwYTQuLjllM2ZhN2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L0NsYXNzRmlsZVBhcnNlclV0aWxzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2xpYnJhcnkvQ2xhc3NGaWxlUGFyc2VyVXRpbHMuamF2YQpAQCAtMjUsNyArMjUsOSBAQAogDQogLyoqDQogICogVGhlIGNsYXNzIHByb3ZpZGVzIHRvb2xzIGZvciB0aGUgQ2xhc3NGaWxlUGFyc2VyLg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIENsYXNzRmlsZVBhcnNlclV0aWxzIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9MaWJyYXJ5UmVhZGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9MaWJyYXJ5UmVhZGVyLmphdmEKaW5kZXggYmZlNzdhZi4uNjAwYTRiMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2xpYnJhcnkvTGlicmFyeVJlYWRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L0xpYnJhcnlSZWFkZXIuamF2YQpAQCAtNjQsNyArNjQsOSBAQAogICogY3JlYXRpb24gb2YgdGhlIG1vZGVsIGZyb20gdGhlIHNvdXJjZXMsIHJlbHlpbmcgb24gYSB7QGNvZGUgSmF2YVJlYWRlcn0uDQogICogPC9wPg0KICAqIEBzZWUgSmF2YVJlYWRlcg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIExpYnJhcnlSZWFkZXIgaW1wbGVtZW50cyBJTW9kZWxSZWFkZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L1R5cGVGaW5kZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L1R5cGVGaW5kZXIuamF2YQppbmRleCAwMGRmN2YwLi5kYTJhZjQwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9UeXBlRmluZGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2lvL2xpYnJhcnkvVHlwZUZpbmRlci5qYXZhCkBAIC0yMyw3ICsyMyw5IEBACiAvKioNCiAgKiBDbGFzcyB3aGljaCBhY3QgYXMgYSBjYWNoZSB0byBmYXN0ZXIgdGhlIHJlc29sdXRpb24gb2YgYSB7QGxpbmsgSVR5cGV9IGZyb20gYQ0KICAqIGRvdCBiYXNlZCBxdWFsaWZpZWQgbmFtZSBpbiB0aGUgY29udGV4dCBvZiBhIEphdmEgcHJvamVjdC4NCi0gKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KQ0KKyAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5DQorICogICAgICAgICAgICAgIm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyIiAod2l0aG91dCB0aGUgImdtdCIgcGFydCksDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MjgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUeXBlRmluZGVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvaW8vbGlicmFyeS9iaW5kaW5nL0phdmFNb2RlbERlbGVnYXRlQmluZGluZ0ZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L2JpbmRpbmcvSmF2YU1vZGVsRGVsZWdhdGVCaW5kaW5nRmFjdG9yeS5qYXZhCmluZGV4IDNlNDc0ZGUuLmUyYWUxYTIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L2JpbmRpbmcvSmF2YU1vZGVsRGVsZWdhdGVCaW5kaW5nRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9pby9saWJyYXJ5L2JpbmRpbmcvSmF2YU1vZGVsRGVsZWdhdGVCaW5kaW5nRmFjdG9yeS5qYXZhCkBAIC0zOCw3ICszOCw5IEBACiANCiAvKioNCiAgKiBBIGZhY3Rvcnkgd2hpY2ggdXNlcyB0aGUgSmF2YSBNb2RlbCBBUEkgdG8gYnVpbGQgTW9EaXNjbyB7QGxpbmsgQmluZGluZ31zLg0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlciIgKHdpdGhvdXQgdGhlICJnbXQiIHBhcnQpDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkNCisgKiAgICAgICAgICAgICAib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIiICh3aXRob3V0IHRoZSAiZ210IiBwYXJ0KSwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDcyOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIEphdmFNb2RlbERlbGVnYXRlQmluZGluZ0ZhY3Rvcnkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi8ucHJvamVjdCBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi8ucHJvamVjdAppbmRleCBiYjA0NmVmLi44ZDM0MjUzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vLnByb2plY3QKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLy5wcm9qZWN0CkBAIC0zMCwzMiArMzAsNiBAQAogCQkJPGFyZ3VtZW50cz4NCiAJCQk8L2FyZ3VtZW50cz4NCiAJCTwvYnVpbGRDb21tYW5kPg0KLQkJPGJ1aWxkQ29tbWFuZD4NCi0JCQk8bmFtZT5vcmcuZWNsaXBzZS5idWNrbWluc3Rlci5hbnQuQW50QnVpbGRlcjwvbmFtZT4NCi0JCQk8dHJpZ2dlcnM+YXV0byxmdWxsLGluY3JlbWVudGFsLDwvdHJpZ2dlcnM+DQotCQkJPGFyZ3VtZW50cz4NCi0JCQkJPGRpY3Rpb25hcnk+DQotCQkJCQk8a2V5PnNjcmlwdC5maWxlPC9rZXk+DQotCQkJCQk8dmFsdWU+ZW10bENvcHkuYnVpbGQueG1sPC92YWx1ZT4NCi0JCQkJPC9kaWN0aW9uYXJ5Pg0KLQkJCQk8ZGljdGlvbmFyeT4NCi0JCQkJCTxrZXk+YXV0by5raW5kLnRhcmdldDwva2V5Pg0KLQkJCQkJPHZhbHVlPmVtdGxDb3B5QmFjazwvdmFsdWU+DQotCQkJCTwvZGljdGlvbmFyeT4NCi0JCQkJPGRpY3Rpb25hcnk+DQotCQkJCQk8a2V5PmluY3JlbWVudGFsLmtpbmQudGFyZ2V0PC9rZXk+DQotCQkJCQk8dmFsdWU+ZW10bENvcHlCYWNrPC92YWx1ZT4NCi0JCQkJPC9kaWN0aW9uYXJ5Pg0KLQkJCQk8ZGljdGlvbmFyeT4NCi0JCQkJCTxrZXk+ZnVsbC5raW5kLnRhcmdldDwva2V5Pg0KLQkJCQkJPHZhbHVlPmVtdGxDb3B5QmFjazwvdmFsdWU+DQotCQkJCTwvZGljdGlvbmFyeT4NCi0JCQkJPGRpY3Rpb25hcnk+DQotCQkJCQk8a2V5PmJ1aWxkLnJlc3VsdC5mb2xkZXI8L2tleT4NCi0JCQkJCTx2YWx1ZT4uPC92YWx1ZT4NCi0JCQkJPC9kaWN0aW9uYXJ5Pg0KLQkJCTwvYXJndW1lbnRzPg0KLQkJPC9idWlsZENvbW1hbmQ+DQogCTwvYnVpbGRTcGVjPg0KIAk8bmF0dXJlcz4NCiAJCTxuYXR1cmU+b3JnLmVjbGlwc2UuYWNjZWxlby5pZGUudWkuYWNjZWxlb05hdHVyZTwvbmF0dXJlPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA0OWVlZTg3Li44YWViMzY2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb247c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi5BY3RpdmF0b3INCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCA3Y2ZmZTYwLi4zMWE2YWE2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTIsNCArMTIsNCBAQAogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIEJ1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIENvZGUgR2VuZXJhdG9yIChJbmN1YmF0aW9uKQ0KLWRpc2NvdmVyZXIubmFtZSA9IEdlbmVyYXRlIEphdmEgY29kZSBmcm9tIEphdmEgTW9kZWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaXNjb3ZlcmVyLm5hbWUgPSBHZW5lcmF0ZSBKYXZhIGNvZGUgZnJvbSBKYXZhIE1vZGVsIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi9wb20ueHNsIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3BvbS54c2wKaW5kZXggN2RjMTdmOS4uZjQ3YzViYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3BvbS54c2wKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3BvbS54c2wKQEAgLTEsMTEgKzEsMTIgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQotPCEtLSBDb3B5cmlnaHQgKGMpIDIwMTIgTWlhLVNvZnR3YXJlLiAtLT4NCis8IS0tIENvcHlyaWdodCAoYykgMjAxMiwgMjAxNSBNaWEtU29mdHdhcmUuIC0tPg0KIDwhLS0gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+DQogPCEtLSBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciANCiAJdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIA0KIAlhbmQgaXMgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIC0tPg0KIDwhLS0gQ29udHJpYnV0b3JzOiAtLT4NCiA8IS0tIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0MTM3NDkgLSBNaXNzaW5nIEdlbmVyYXRlSmF2YS5lbXRsIGZpbGUgaW4gbW9kaXNjbyBqYXZhIGdlbmVyYXRvciBwbHVnaW4gLS0+DQorPCEtLSBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDY4Njg1IC0gW1VuaXQgVGVzdCBGYWlsdXJlXSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi50ZXN0cy5UZXN0R2xvYmFsMDAxLnRlc3QwMDEgIC0tPg0KIDx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPSIxLjAiDQogCXhtbG5zOnhzbD0iaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtIiB4bWxuczpleHNsPSJodHRwOi8vZXhzbHQub3JnL2NvbW1vbiINCiAJZXh0ZW5zaW9uLWVsZW1lbnQtcHJlZml4ZXM9ImV4c2wiIHhtbG5zOm0yPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiDQpAQCAtMjUsNTMgKzI2LDM2IEBACiAJCQk8L3Byb3BlcnRpZXM+DQogCQkJPHJlcG9zaXRvcmllcz4NCiAJCQkJPHJlcG9zaXRvcnk+DQotCQkJCQk8aWQ+ZWNsaXBzZS1wbGF0Zm9ybTwvaWQ+DQotCQkJCQk8bGF5b3V0PnAyPC9sYXlvdXQ+DQotCQkJCQk8dXJsPiR7ZWNsaXBzZS1zaXRlfTwvdXJsPg0KKwkJCQkJPGlkPkVjbGlwc2UgLSBBY2NlbGVvIFNuYXBzaG90czwvaWQ+DQorCQkJCQk8dXJsPmh0dHBzOi8vcmVwby5lY2xpcHNlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9hY2NlbGVvLXNuYXBzaG90czwvdXJsPg0KIAkJCQk8L3JlcG9zaXRvcnk+DQogCQkJCTxyZXBvc2l0b3J5Pg0KLQkJCQkJPGlkPkluZGlnbyBSZWxlYXNlPC9pZD4NCi0JCQkJCTx1cmw+aHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9lY2xpcHNlL2FjY2VsZW8vbWFzdGVyL21hdmVuL3JlcG9zaXRvcnkvcmVsZWFzZXMvaW5kaWdvPC91cmw+DQotCQkJCTwvcmVwb3NpdG9yeT4NCi0JCQkJPHJlcG9zaXRvcnk+DQotCQkJCQk8aWQ+SnVubyBSZWxlYXNlPC9pZD4NCi0JCQkJCTx1cmw+aHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9lY2xpcHNlL2FjY2VsZW8vbWFzdGVyL21hdmVuL3JlcG9zaXRvcnkvcmVsZWFzZXMvanVubzwvdXJsPg0KLQkJCQk8L3JlcG9zaXRvcnk+DQotCQkJCTxyZXBvc2l0b3J5Pg0KLQkJCQkJPGlkPlNuYXBzaG90czwvaWQ+DQotCQkJCQk8dXJsPmh0dHBzOi8vcmF3LmdpdGh1Yi5jb20vZWNsaXBzZS9hY2NlbGVvL21hc3Rlci9tYXZlbi9yZXBvc2l0b3J5L3NuYXBzaG90czwvdXJsPg0KKwkJCQkJPGlkPkVjbGlwc2UgLSBBY2NlbGVvIFJlbGVhc2U8L2lkPg0KKwkJCQkJPHVybD5odHRwczovL3JlcG8uZWNsaXBzZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvYWNjZWxlby1yZWxlYXNlczwvdXJsPg0KIAkJCQk8L3JlcG9zaXRvcnk+DQogCQkJPC9yZXBvc2l0b3JpZXM+DQotCQkJDQorCQkNCiAJCQk8cGx1Z2luUmVwb3NpdG9yaWVzPg0KIAkJCQk8cGx1Z2luUmVwb3NpdG9yeT4NCi0JCQkJCTxpZD5jb2RlaGF1cy5zbmFwc2hvdHM8L2lkPg0KLQkJCQkJPHVybD5odHRwOi8vc25hcHNob3RzLnJlcG9zaXRvcnkuY29kZWhhdXMub3JnLzwvdXJsPg0KKwkJCQkJPGlkPkVjbGlwc2UgLSBBY2NlbGVvIFNuYXBzaG90czwvaWQ+DQorCQkJCQk8dXJsPmh0dHBzOi8vcmVwby5lY2xpcHNlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9hY2NlbGVvLXNuYXBzaG90czwvdXJsPg0KIAkJCQk8L3BsdWdpblJlcG9zaXRvcnk+DQogCQkJCTxwbHVnaW5SZXBvc2l0b3J5Pg0KLQkJCQkJPGlkPkluZGlnbyBSZWxlYXNlPC9pZD4NCi0JCQkJCTx1cmw+aHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9lY2xpcHNlL2FjY2VsZW8vbWFzdGVyL21hdmVuL3JlcG9zaXRvcnkvcmVsZWFzZXMvaW5kaWdvPC91cmw+DQotCQkJCTwvcGx1Z2luUmVwb3NpdG9yeT4NCi0JCQkJPHBsdWdpblJlcG9zaXRvcnk+DQotCQkJCQk8aWQ+SnVubyBSZWxlYXNlPC9pZD4NCi0JCQkJCTx1cmw+aHR0cHM6Ly9yYXcuZ2l0aHViLmNvbS9lY2xpcHNlL2FjY2VsZW8vbWFzdGVyL21hdmVuL3JlcG9zaXRvcnkvcmVsZWFzZXMvanVubzwvdXJsPg0KLQkJCQk8L3BsdWdpblJlcG9zaXRvcnk+DQotCQkJCTxwbHVnaW5SZXBvc2l0b3J5Pg0KLQkJCQkJPGlkPlNuYXBzaG90czwvaWQ+DQotCQkJCQk8dXJsPmh0dHBzOi8vcmF3LmdpdGh1Yi5jb20vZWNsaXBzZS9hY2NlbGVvL21hc3Rlci9tYXZlbi9yZXBvc2l0b3J5L3NuYXBzaG90czwvdXJsPg0KKwkJCQkJPGlkPkVjbGlwc2UgLSBBY2NlbGVvIFJlbGVhc2U8L2lkPg0KKwkJCQkJPHVybD5odHRwczovL3JlcG8uZWNsaXBzZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvYWNjZWxlby1yZWxlYXNlczwvdXJsPg0KIAkJCQk8L3BsdWdpblJlcG9zaXRvcnk+DQogCQkJPC9wbHVnaW5SZXBvc2l0b3JpZXM+DQotCQkJDQorDQogCQkJPGRlcGVuZGVuY2llcz4NCiAJCQkJPGRlcGVuZGVuY3k+DQogCQkJCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hY2NlbGVvPC9ncm91cElkPg0KLQkJCQkJPGFydGlmYWN0SWQ+bWF2ZW48L2FydGlmYWN0SWQ+DQotCQkJCQk8dmVyc2lvbj4zLjIuMTwvdmVyc2lvbj4NCisJCQkJCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFjY2VsZW8ubWF2ZW48L2FydGlmYWN0SWQ+DQorCQkJCQk8dmVyc2lvbj4zLjUuMC1TTkFQU0hPVDwvdmVyc2lvbj4NCiAJCQkJPC9kZXBlbmRlbmN5Pg0KIAkJCQk8ZGVwZW5kZW5jeT4NCiAJCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLmFjY2VsZW88L2dyb3VwSWQ+DQotCQkJCQk8YXJ0aWZhY3RJZD5lbmdpbmU8L2FydGlmYWN0SWQ+DQotCQkJCQk8dmVyc2lvbj4zLjIuMTwvdmVyc2lvbj4NCisJCQkJCTxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLmFjY2VsZW8uZW5naW5lPC9hcnRpZmFjdElkPg0KKwkJCQkJPHZlcnNpb24+My41LjAtU05BUFNIT1Q8L3ZlcnNpb24+DQogCQkJCTwvZGVwZW5kZW5jeT4NCiAJCQkJPGRlcGVuZGVuY3k+DQogCQkJCQk8Z3JvdXBJZD5vcmcuc2xmNGo8L2dyb3VwSWQ+DQpAQCAtODUsOCArNjksOCBAQAogCQkJCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIvL20yOnByb2plY3QvYnVpbGQvcGx1Z2lucy8qIi8+DQogCQkJCQk8cGx1Z2luPg0KIAkJCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLmFjY2VsZW88L2dyb3VwSWQ+DQotCQkJCQkJPGFydGlmYWN0SWQ+bWF2ZW48L2FydGlmYWN0SWQ+DQotCQkJCQkJPHZlcnNpb24+My4yLjE8L3ZlcnNpb24+DQorCQkJCQkJPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UuYWNjZWxlby5tYXZlbjwvYXJ0aWZhY3RJZD4NCisJCQkJCQk8dmVyc2lvbj4zLjUuMC1TTkFQU0hPVDwvdmVyc2lvbj4NCiAJCQkJCQk8ZXhlY3V0aW9ucz4NCiAJCQkJCQkJPGV4ZWN1dGlvbj4NCiAJCQkJCQkJCTxnb2Fscz4NCkBAIC0xMDYsOCArOTAsMTMgQEAKIAkJCQkJCQkJCQk8b3V0cHV0Pl9fdGFyZ2V0X18vY2xhc3Nlczwvb3V0cHV0Pg0KIAkJCQkJCQkJCTwvZW50cnk+DQogCQkJCQkJCQk8L2VudHJpZXM+DQorCQkJCQkJCQk8amFycz4NCisJCQkJCQkJCQk8amFyPnAyLmVjbGlwc2UtcGx1Z2luOm9yZy5lY2xpcHNlLmVtZi5lY29yZTwvamFyPgorCQkJCQkJCQkJPGphcj5vcmcuZWNsaXBzZS5tZHQ6b3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YTwvamFyPg0KKwkJCQkJCQkJPC9qYXJzPg0KIAkJCQkJCQk8L2FjY2VsZW9Qcm9qZWN0Pg0KIAkJCQkJCQk8cGFja2FnZXNUb1JlZ2lzdGVyPg0KKwkJCQkJCQkJPHBhY2thZ2VUb1JlZ2lzdGVyPm9yZy5lY2xpcHNlLmVtZi5lY29yZS5FY29yZVBhY2thZ2U8L3BhY2thZ2VUb1JlZ2lzdGVyPg0KIAkJCQkJCQkJPHBhY2thZ2VUb1JlZ2lzdGVyPm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZW1mLkphdmFQYWNrYWdlPC9wYWNrYWdlVG9SZWdpc3Rlcj4NCiAJCQkJCQkJPC9wYWNrYWdlc1RvUmVnaXN0ZXI+DQogCQkJCQkJCTx1cmlIYW5kbGVyPm9yZy5lY2xpcHNlLmFjY2VsZW8ubWF2ZW4uQWNjZWxlb1VSSUhhbmRsZXI8L3VyaUhhbmRsZXI+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2dlbmVyYXRpb24vYWN0aW9ucy9HZW5lcmF0ZUphdmFNb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2dlbmVyYXRpb24vYWN0aW9ucy9HZW5lcmF0ZUphdmFNb2RlbC5qYXZhCmluZGV4IDRkYmE0ZGEuLmQ1MTVmNWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9nZW5lcmF0aW9uL2FjdGlvbnMvR2VuZXJhdGVKYXZhTW9kZWwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZ2VuZXJhdGlvbi9hY3Rpb25zL0dlbmVyYXRlSmF2YU1vZGVsLmphdmEKQEAgLTMzLDYgKzMzLDEyIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLkFjdGl2YXRvcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLmZpbGVzLkdlbmVyYXRlSmF2YTsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBUaGlzIGNsYXNzIGltcGxlbWVudHMgYSBkZXByZWNhdGVkIGludGVyZmFjZS4gSXQgbXVzdCByZS13cml0dGVuDQorICogICAgICAgICAgICAgdXNpbmcgdGhlIG5ldyBkaXNjb3ZlcmVyIGZyYW1ld29yay4gY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDg5Ng0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEdlbmVyYXRlSmF2YU1vZGVsIGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbCB7DQogDQogCXByaXZhdGUgZmluYWwgRGlzY292ZXJ5UGFyYW1ldGVyIGdlbmVyYXRpb25UYXJnZXRGb2xkZXI7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2dlbmVyYXRpb24vZmlsZXMvR2VuZXJhdGVKYXZhLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZ2VuZXJhdGlvbi9maWxlcy9HZW5lcmF0ZUphdmEuamF2YQppbmRleCA1MzkxYmYzLi4zY2RlMmE3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZ2VuZXJhdGlvbi9maWxlcy9HZW5lcmF0ZUphdmEuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZ2VuZXJhdGlvbi9maWxlcy9HZW5lcmF0ZUphdmEuamF2YQpAQCAtMzE5LDEwICszMTksMTAgQEAKICAgICAgKiAKICAgICAgKiBAcGFyYW0gcHJvcGVydGllc0ZpbGUKICAgICAgKiAgICAgICAgICAgIFRoZSBwcm9wZXJ0aWVzIGZpbGUgdG8gYWRkLgotICAgICAqIEBnZW5lcmF0ZWQKKyAgICAgKiBAZ2VuZXJhdGVkIE5PVAogICAgICAqIEBzaW5jZSAzLjEKLSAgICAgKi8KLSAgICBAT3ZlcnJpZGUKKyAgICAgKi8NCisJLy9AT3ZlcnJpZGUgZ2R1cGU+IENvbW1lbnRlZCB0byBiZSBhYmxlIHRvIGJ1aWxkIGFnaW5zdCBIZWxpb3MKICAgICBwdWJsaWMgdm9pZCBhZGRQcm9wZXJ0aWVzRmlsZShTdHJpbmcgcHJvcGVydGllc0ZpbGUpIHsKICAgICAgICAgdGhpcy5wcm9wZXJ0aWVzRmlsZXMuYWRkKHByb3BlcnRpZXNGaWxlKTsKICAgICB9DQpAQCAtNDExLDQgKzQxMSwxMyBAQAogICAgICAgICAvLyByZXNvdXJjZVNldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dChVTUxSZXNvdXJjZS5GSUxFX0VYVEVOU0lPTiwgVU1MUmVzb3VyY2UuRmFjdG9yeS5JTlNUQU5DRSk7CiAgICAgfQ0KIAkNCisJLyoqDQorCSAqIEBnZW5lcmF0ZWQgTk9UDQorCSAqLw0KKwlAT3ZlcnJpZGUNCisJcHJvdGVjdGVkIFVSSSBjcmVhdGVUZW1wbGF0ZVVSSShmaW5hbCBTdHJpbmcgZW50cnkpIHsNCisJCXJldHVybiBVUkkuY3JlYXRlVVJJKGVudHJ5KTsNCisJfQ0KKw0KKwkNCiB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2dlbmVyYXRpb24vZmlsZXMvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vamF2YS9nZW5lcmF0aW9uL2ZpbGVzL01lc3NhZ2VzLmphdmEKaW5kZXggNmRmZjBiYS4uOTM4ZTZmOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9qYXZhL2dlbmVyYXRpb24vZmlsZXMvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmdlbmVyYXRpb24vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2phdmEvZ2VuZXJhdGlvbi9maWxlcy9NZXNzYWdlcy5qYXZhCkBAIC0xMiw2ICsxMiwxMSBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzAxDQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLmZpbGVzLm1lc3NhZ2VzIjsgLy8kTk9OLU5MUy0xJA0KIAlwdWJsaWMgc3RhdGljIFN0cmluZyBHZW5lcmF0ZUphdmFfMDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDUwYWZkNmMuLjRiY2E3Y2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlcGx1Z2luTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMuY2RvO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDU2ZTBjOWEuLjllZjNlZmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEubm91c2FnZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5ub3VzYWdlcy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLm5vdXNhZ2VzO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEucXVlcmllcy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEucXVlcmllcy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5OGQ1ZGViLi40M2YzYWNkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLnF1ZXJpZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5xdWVyaWVzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5xdWVyaWVzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMzAxNmNkYS4uMTMyYmM3NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uYnJvd3Nlci5leHRlbnNpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uYnJvd3Nlci5leHRlbnNpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZmM0NmVjOC4uMDkwYmUwNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLmJyb3dzZXIuZXh0ZW5zaW9uL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5icm93c2VyLmV4dGVuc2lvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5icm93c2VyLmV4dGVuc2lvbjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLmJyb3dzZXIuZXh0ZW5zaW9uLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAyNTdjOGQ5Li4yMTM5YzQ4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlcGx1Z2luTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlcjtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyLnBsdWdpbi5BY3RpdmF0b3INCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9wbHVnaW4ucHJvcGVydGllcwppbmRleCAzZjVjODczLi5jNTY4MWJkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC05LDcgKzksNyBAQAogIyAgICBHYWJyaWVsIEJhcmJpZXIgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogIyBOTFNfTUVTU0FHRUZPUk1BVF9WQVINCi1wbHVnaW5OYW1lPU1vRGlzY28gS0RNIFNvdXJjZSBEaXNjb3ZlcmVyIChJbmN1YmF0aW9uKQ0KK3BsdWdpbk5hbWU9TW9EaXNjbyBLRE0gU291cmNlIERpc2NvdmVyZXIgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZT1FY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiANCiBjb250ZW50LXR5cGUubmFtZSA9IFRleHQgRmlsZSAoTW9kaXNjbykNCkBAIC01Nyw0ICs1Nyw0IEBACiBjb250ZW50LXR5cGUubmFtZS40MSA9IEJ1aWxkIFByb3BlcnRpZXMgRmlsZQ0KIGNvbnRlbnQtdHlwZS5uYW1lLjQyID0gQW50IEJ1aWxkZmlsZQ0KIGNvbnRlbnQtdHlwZS5uYW1lLjQzID0gSW1hZ2UgRmlsZQ0KLWRpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIEtETSBTb3VyY2UgTW9kZWwgZnJvbSBDb250YWluZXIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBLRE0gU291cmNlIE1vZGVsIGZyb20gQ29udGFpbmVyIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL0tETVNvdXJjZURpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL0tETVNvdXJjZURpc2NvdmVyZXIuamF2YQppbmRleCAxZTQ4MzQxLi4zMDM3NGI1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9LRE1Tb3VyY2VEaXNjb3ZlcmVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vc291cmNlL2Rpc2NvdmVyZXIvS0RNU291cmNlRGlzY292ZXJlci5qYXZhCkBAIC0zNCw3ICszNCw4IEBACiAgKiBTb21lIHNlcnZpY2VzIGZvciBidWlsZGluZyBhIGJhc2ljIGZpbGUgc3lzdGVtIHJlcHJlc2VudGF0aW9uLCBiYXNlZCBvbiBTb3VyY2Ugc3ViIHBhY2thZ2UgZnJvbQ0KICAqIEtETSBtZXRhbW9kZWwuDQogICogDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXINCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlciwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDcyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEtETVNvdXJjZURpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9NZXNzYWdlcy5qYXZhCmluZGV4IGMzNjM1MWYuLjZhMGE0OTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vc291cmNlL2Rpc2NvdmVyZXIvTWVzc2FnZXMuamF2YQpAQCAtMTQsNyArMTQsOCBAQAogDQogLyoqDQogICogQGF1dGhvciBnZHVwZQ0KLSAqIEBkZXByZWNhdGVkIHRoZSB3aG9sZSBwbHVnLWluIGlzIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyDQorICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIsDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDcyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVyU291cmNlTW9kZWxGcm9tQ29udGFpbmVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVyU291cmNlTW9kZWxGcm9tQ29udGFpbmVyLmphdmEKaW5kZXggYTZhOGQ0YS4uYmMxODZlMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vc291cmNlL2Rpc2NvdmVyZXIvYWN0aW9ucy9EaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUNvbnRhaW5lci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJTb3VyY2VNb2RlbEZyb21Db250YWluZXIuamF2YQpAQCAtNDIsNyArNDIsOCBAQAogLyoqDQogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiBAZGVwcmVjYXRlZCBVc2UgaW5zdGVhZCBEaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUphdmFFbGVtZW50IG9yIERpc2NvdmVyU291cmNlTW9kZWxGcm9tUmVzb3VyY2UgaW4NCi0gKiAgICAgICAgICAgICBwbHVnLWluIG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyLg0KKyAqICAgICAgICAgICAgIHBsdWctaW4gb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIsDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDcyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyU291cmNlTW9kZWxGcm9tQ29udGFpbmVyIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vc291cmNlL2Rpc2NvdmVyZXIvYWN0aW9ucy9EaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVyU291cmNlTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQppbmRleCBmNjliMjNmLi4wZjdlMzk0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVyU291cmNlTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVyU291cmNlTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQpAQCAtNDQsNyArNDQsOCBAQAogLyoqDQogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiBAZGVwcmVjYXRlZCBVc2UgaW5zdGVhZCBEaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUphdmFFbGVtZW50IG9yIERpc2NvdmVyU291cmNlTW9kZWxGcm9tUmVzb3VyY2UgaW4NCi0gKiAgICAgICAgICAgICBwbHVnLWluIG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyLg0KKyAqICAgICAgICAgICAgIHBsdWctaW4gb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIsDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDcyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyU291cmNlTW9kZWxGcm9tSmF2YVByb2plY3QgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9tZXNzYWdlcy5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vc291cmNlL2Rpc2NvdmVyZXIvbWVzc2FnZXMucHJvcGVydGllcwppbmRleCA3NTBhOWM1Li4xNmU2YzZlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9tZXNzYWdlcy5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL21lc3NhZ2VzLnByb3BlcnRpZXMKQEAgLTgsNSArOCw1IEBACiAjIENvbnRyaWJ1dG9yczoNCiAjICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCi1EaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUNvbnRhaW5lcl8wPURpc2NvdmVyIEtETSBzb3VyY2UgbW9kZWwgZnJvbSBjb250YWluZXINCi1EaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUphdmFQcm9qZWN0XzQ9RGlzY292ZXIgS0RNIHNvdXJjZSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdA0KK0Rpc2NvdmVyU291cmNlTW9kZWxGcm9tQ29udGFpbmVyXzA9RGlzY292ZXIgS0RNIHNvdXJjZSBtb2RlbCBmcm9tIGNvbnRhaW5lciAoRGVwcmVjYXRlZCkNCitEaXNjb3ZlclNvdXJjZU1vZGVsRnJvbUphdmFQcm9qZWN0XzQ9RGlzY292ZXIgS0RNIHNvdXJjZSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdCAoRGVwcmVjYXRlZCkNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9wbHVnaW4vQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS9zb3VyY2UvZGlzY292ZXJlci9wbHVnaW4vQWN0aXZhdG9yLmphdmEKaW5kZXggNmM0OTYxMy4uNWRlZjgzMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vc291cmNlL2Rpc2NvdmVyZXIvcGx1Z2luL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3NvdXJjZS9kaXNjb3ZlcmVyL3BsdWdpbi9BY3RpdmF0b3IuamF2YQpAQCAtMTcsNyArMTcsOCBAQAogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQogICogDQotICogQGRlcHJlY2F0ZWQgdGhlIHdob2xlIHBsdWctaW4gaXMgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXINCisgKiBAZGVwcmVjYXRlZCB0aGUgd2hvbGUgcGx1Zy1pbiBpcyByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlciwNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NzI3DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2YTQ2Yjg2Li5lYjE4NGRiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAogIG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggOGRjNTI1NS4uZDY2MTFjOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xLDMgKzEsMyBAQAogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEtETXRvVU1MMiBDb252ZXJ0ZXIgVGVzdHMgKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEtETXRvVU1MMiBDb252ZXJ0ZXIgVGVzdHMgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci90ZXN0cy9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci90ZXN0cy9BY3RpdmF0b3IuamF2YQppbmRleCA3NmU3MmZlLi44NDY5OWNlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0FjdGl2YXRvci5qYXZhCkBAIC0xOSw3ICsxOSw4IEBACiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4MjcNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEKaW5kZXggZDc5NDE0YS4uYjVkOTQ0OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQpAQCAtMTcsNyArMTcsOCBAQAogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlLlN1aXRlQ2xhc3NlczsNCiANCiAvKioNCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDgyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogQFJ1bldpdGgoU3VpdGUuY2xhc3MpDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0F0bFByb2plY3RGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvQXRsUHJvamVjdEZhY3RvcnkuamF2YQppbmRleCBiMGM3MWJkLi4yMjllMWEyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvQXRsUHJvamVjdEZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvQXRsUHJvamVjdEZhY3RvcnkuamF2YQpAQCAtMzAsNyArMzAsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4MjcNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBdGxQcm9qZWN0RmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0hvdFRyYW5zZm9ybWF0aW9uVGVzdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0hvdFRyYW5zZm9ybWF0aW9uVGVzdC5qYXZhCmluZGV4IDQ1MjdmYTUuLmM5NTM0YzYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci90ZXN0cy9Ib3RUcmFuc2Zvcm1hdGlvblRlc3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvSG90VHJhbnNmb3JtYXRpb25UZXN0LmphdmEKQEAgLTM3LDcgKzM3LDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgSG90VHJhbnNmb3JtYXRpb25UZXN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvS2RtVG9VbWwyQ29udmVydGVyVGVzdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0tkbVRvVW1sMkNvbnZlcnRlclRlc3QuamF2YQppbmRleCBiODFjMjkwLi5hNmZmNmEwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvS2RtVG9VbWwyQ29udmVydGVyVGVzdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci90ZXN0cy9LZG1Ub1VtbDJDb252ZXJ0ZXJUZXN0LmphdmEKQEAgLTM2LDcgKzM2LDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgS2RtVG9VbWwyQ29udmVydGVyVGVzdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0tkbVRvVW1sMldpdGhUcmFjZXNDb252ZXJ0ZXJUZXN0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvS2RtVG9VbWwyV2l0aFRyYWNlc0NvbnZlcnRlclRlc3QuamF2YQppbmRleCA2MzIzMmY2Li5kNzM5YmU1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvS2RtVG9VbWwyV2l0aFRyYWNlc0NvbnZlcnRlclRlc3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvS2RtVG9VbWwyV2l0aFRyYWNlc0NvbnZlcnRlclRlc3QuamF2YQpAQCAtMzQsNyArMzQsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKg0KICAqDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgS2RtVG9VbWwyV2l0aFRyYWNlc0NvbnZlcnRlclRlc3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOTA2YmE0Yy4uYTUzMDAwZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci5LZG1Ub1VtbDJBY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKIEJ1bmRsZS1DbGFzc1BhdGg6IC4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3BsdWdpbi5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggZjlhMzZiNy4uZTYyZTQ5ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvcGx1Z2luLnByb3BlcnRpZXMKQEAgLTksMTEgKzksMTEgQEAKICMgICAgR2FicmllbCBCYXJiaWVyIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICMgTkxTX01FU1NBR0VGT1JNQVRfVkFSDQotcGx1Z2luTmFtZT1Nb0Rpc2NvIEtETSB0byBVTUwyIGNvbnZlcnNpb24gKEluY3ViYXRpb24pDQorcGx1Z2luTmFtZT1Nb0Rpc2NvIEtETSB0byBVTUwyIGNvbnZlcnNpb24gKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZT1FY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiANCi1tZW51LmxhYmVsID0gTW9EaXNjbyBNb2RlbHBsZXggS25vd2xlZGdlIERpc2NvdmVyeQ0KLW1lbnUubGFiZWwuMCA9IEludGVybWVkaWF0ZSBtb2RlbHMNCi1hY3Rpb24ubGFiZWwgPSBFeHBvcnQgS0RNIHRvIFVNTDIgdHJhbnNmb3JtYXRpb24NCi1hY3Rpb24ubGFiZWwuMCA9IENvbnZlcnQgdG8gVU1MMiBNb2RlbCB3aXRoIGN1c3RvbSB0cmFuc2Zvcm1hdGlvbg0KLWRpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIFVNTCBtb2RlbCBmcm9tIEtETSBtb2RlbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK21lbnUubGFiZWwgPSBNb0Rpc2NvIE1vZGVscGxleCBLbm93bGVkZ2UgRGlzY292ZXJ5IChEZXByZWNhdGVkKQ0KK21lbnUubGFiZWwuMCA9IEludGVybWVkaWF0ZSBtb2RlbHMgKERlcHJlY2F0ZWQpDQorYWN0aW9uLmxhYmVsID0gRXhwb3J0IEtETSB0byBVTUwyIHRyYW5zZm9ybWF0aW9uIChEZXByZWNhdGVkKQ0KK2FjdGlvbi5sYWJlbC4wID0gQ29udmVydCB0byBVTUwyIE1vZGVsIHdpdGggY3VzdG9tIHRyYW5zZm9ybWF0aW9uIChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIFVNTCBtb2RlbCBmcm9tIEtETSBtb2RlbCAoRGVwcmVjYXRlZCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvS2RtVG9VbWwyQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvS2RtVG9VbWwyQWN0aXZhdG9yLmphdmEKaW5kZXggN2Y4NTI4OS4uOTViY2MwZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL0tkbVRvVW1sMkFjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9LZG1Ub1VtbDJBY3RpdmF0b3IuamF2YQpAQCAtMTgsNyArMTgsOCBAQAogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0Ow0KIA0KIC8qKg0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDgyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEtkbVRvVW1sMkFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9LZG1Ub1VtbENvbnZlcnRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL0tkbVRvVW1sQ29udmVydGVyLmphdmEKaW5kZXggMTg4MDQ0NS4uZWIzNjQ1ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL0tkbVRvVW1sQ29udmVydGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL0tkbVRvVW1sQ29udmVydGVyLmphdmEKQEAgLTI3LDcgKzI3LDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEtkbVRvVW1sQ29udmVydGVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvYWN0aW9ucy9EaXNjb3ZlclVtbE1vZGVsRnJvbUtkbU1vZGVsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvYWN0aW9ucy9EaXNjb3ZlclVtbE1vZGVsRnJvbUtkbU1vZGVsLmphdmEKaW5kZXggNzczZTg1Yi4uYTI2YmNmNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL2FjdGlvbnMvRGlzY292ZXJVbWxNb2RlbEZyb21LZG1Nb2RlbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9hY3Rpb25zL0Rpc2NvdmVyVW1sTW9kZWxGcm9tS2RtTW9kZWwuamF2YQpAQCAtNDIsNyArNDIsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4MjcNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3ZlclVtbE1vZGVsRnJvbUtkbU1vZGVsIGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbCBpbXBsZW1lbnRzIERpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9pbXBsL0F0bExhdW5jaEhlbHBlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL2ltcGwvQXRsTGF1bmNoSGVscGVyLmphdmEKaW5kZXggYzhhOGRiMy4uYmRjNmRmOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL2ltcGwvQXRsTGF1bmNoSGVscGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL2ltcGwvQXRsTGF1bmNoSGVscGVyLmphdmEKQEAgLTM3LDcgKzM3LDggQEAKICAqIEBhdXRob3IgZ2JhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDgyNw0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEF0bExhdW5jaEhlbHBlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL2ltcGwvS2RtdG9VbWxDb252ZXJ0ZXJJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvaW1wbC9LZG10b1VtbENvbnZlcnRlckltcGwuamF2YQppbmRleCA2NTc4NjBmLi45ZWFlY2JhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvaW1wbC9LZG10b1VtbENvbnZlcnRlckltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvaW1wbC9LZG10b1VtbENvbnZlcnRlckltcGwuamF2YQpAQCAtNTksNyArNTksOCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLmlkZS5JREU7DQogDQogLyoqDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgS2RtdG9VbWxDb252ZXJ0ZXJJbXBsIGltcGxlbWVudHMgS2RtVG9VbWxDb252ZXJ0ZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9wb3B1cC9hY3Rpb25zL0NvbnZlcnQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9wb3B1cC9hY3Rpb25zL0NvbnZlcnQuamF2YQppbmRleCA2MWRlY2I4Li5kNGI2ZmM2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvcG9wdXAvYWN0aW9ucy9Db252ZXJ0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3BvcHVwL2FjdGlvbnMvQ29udmVydC5qYXZhCkBAIC00NSw2ICs0NSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLlBhcnRJbml0RXhjZXB0aW9uOwogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLmlkZS5JREU7CiAKKy8qKgorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4MjcKKyAqLworQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBDb252ZXJ0IGltcGxlbWVudHMgSU9iamVjdEFjdGlvbkRlbGVnYXRlIHsKIAogCXByaXZhdGUgZmluYWwgTG9nZ2VyIGxvZ2dlciA9IExvZ2dlci5nZXRMb2dnZXIoQVRMTG9nZ2VyLkxPR0dFUl9JRCk7CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvcG9wdXAvYWN0aW9ucy9Db252ZXJ0V2l0aEN1c3RvbVRyYW5zZm9ybWF0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvcG9wdXAvYWN0aW9ucy9Db252ZXJ0V2l0aEN1c3RvbVRyYW5zZm9ybWF0aW9uLmphdmEKaW5kZXggYThjNjE1Zi4uMDQzNWViZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3BvcHVwL2FjdGlvbnMvQ29udmVydFdpdGhDdXN0b21UcmFuc2Zvcm1hdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9wb3B1cC9hY3Rpb25zL0NvbnZlcnRXaXRoQ3VzdG9tVHJhbnNmb3JtYXRpb24uamF2YQpAQCAtNTUsNiArNTUsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS51aS5tb2RlbC5Xb3JrYmVuY2hMYWJlbFByb3ZpZGVyOwogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLk1lc3NhZ2VzOwogCisvKioKKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3CisgKi8KK0BEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgQ29udmVydFdpdGhDdXN0b21UcmFuc2Zvcm1hdGlvbiBpbXBsZW1lbnRzIElPYmplY3RBY3Rpb25EZWxlZ2F0ZSB7CiAKIAlwcml2YXRlIGZpbmFsIExvZ2dlciBsb2dnZXIgPSBMb2dnZXIuZ2V0TG9nZ2VyKEFUTExvZ2dlci5MT0dHRVJfSUQpOwpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3BvcHVwL2FjdGlvbnMvQ29udmVydFdpdGhUcmFjZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9wb3B1cC9hY3Rpb25zL0NvbnZlcnRXaXRoVHJhY2VzLmphdmEKaW5kZXggYWNhY2QwNy4uOWJiNzBiMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3BvcHVwL2FjdGlvbnMvQ29udmVydFdpdGhUcmFjZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvcG9wdXAvYWN0aW9ucy9Db252ZXJ0V2l0aFRyYWNlcy5qYXZhCkBAIC0zOSw2ICszOSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLklXb3JrYmVuY2hQYXJ0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci5NZXNzYWdlczsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDgyNw0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIENvbnZlcnRXaXRoVHJhY2VzIGltcGxlbWVudHMgSU9iamVjdEFjdGlvbkRlbGVnYXRlIHsNCiANCiAJcHJpdmF0ZSBmaW5hbCBMb2dnZXIgbG9nZ2VyID0gTG9nZ2VyLmdldExvZ2dlcihBVExMb2dnZXIuTE9HR0VSX0lEKTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvcG9wdXAvYWN0aW9ucy9FeHBvcnRUcmFuc2Zvcm1hdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3BvcHVwL2FjdGlvbnMvRXhwb3J0VHJhbnNmb3JtYXRpb24uamF2YQppbmRleCA2M2QwYjgwLi5lYWNmM2E3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvcG9wdXAvYWN0aW9ucy9FeHBvcnRUcmFuc2Zvcm1hdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci9wb3B1cC9hY3Rpb25zL0V4cG9ydFRyYW5zZm9ybWF0aW9uLmphdmEKQEAgLTI2LDYgKzI2LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UudWkuSVdvcmtiZW5jaFBhcnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLmRpYWxvZ3MuU2F2ZUFzRGlhbG9nOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODI3DQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRXhwb3J0VHJhbnNmb3JtYXRpb24gaW1wbGVtZW50cyBJT2JqZWN0QWN0aW9uRGVsZWdhdGUgew0KIA0KIAlwcml2YXRlIElQcm9qZWN0IGNvbnRhaW5pbmdQcm9qZWN0Ow0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGQ4MDAzZTkuLmE4YzY2M2UgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5rZG0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcua2RtO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5zbW0vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcuc21tL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDg3ZWY4OTYuLmZmODRmNmUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLm9tZy5zbW0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLnNtbS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5vbWcuc21tO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnRvb2wubWV0cmljc3Zpc3VhbGl6YXRpb25idWlsZGVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udG9vbC5tZXRyaWNzdmlzdWFsaXphdGlvbmJ1aWxkZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNzA1MmI2NC4uMTIxMWI2NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udG9vbC5tZXRyaWNzdmlzdWFsaXphdGlvbmJ1aWxkZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udG9vbC5tZXRyaWNzdmlzdWFsaXphdGlvbmJ1aWxkZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udG9vbC5tZXRyaWNzdmlzdWFsaXphdGlvbmJ1aWxkZXINCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDFhNDIyMTguLmZhNjgwOTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXM7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCBiOGI2MjM5Li45NmI5ZTcwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDEyICsxMCwxMiBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBNb2RlbGZpbHRlciBNZXRob2QgQ2FsbHMgRGlzY292ZXJlciAoSW5jdWJhdGlvbikNCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gTW9kZWxmaWx0ZXIgTWV0aG9kIENhbGxzIERpc2NvdmVyZXIgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIA0KLWNvbnRlbnQtdHlwZS5uYW1lID0gTW9kZWwgb2YgbWV0aG9kIGNhbGxzDQotZGlzY292ZXJlci5uYW1lID0gRGlzY292ZXIgZGVwZW5kZW5jaWVzIGZyb20gdHlwZSBkZWNsYXJhdGlvbg0KLWRpc2NvdmVyZXIubmFtZS4wID0gRGlzY292ZXIgZGVwZW5kZW5jaWVzIGZyb20gSmF2YSBtb2RlbA0KLWRpc2NvdmVyZXIubmFtZS4xID0gRGlzY292ZXIgZGVwZW5kZW5jaWVzIGZyb20gSmF2YSBwcm9qZWN0DQotZGlzY292ZXJlci5uYW1lLjIgPSBEaXNjb3ZlciBkZXBlbmRlbmNpZXMgZnJvbSBKYXZhIFR5cGUNCi1kaXNjb3ZlcmVyLm5hbWUuMyA9IERpc2NvdmVyIGRlcGVuZGVuY2llcyBmcm9tIEphdmEgUGFja2FnZQ0KLWVkaXRvci5uYW1lID0gRGVwZW5kZW5jaWVzIGFzIHByZWZ1c2UgZ3JhcGgKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitjb250ZW50LXR5cGUubmFtZSA9IE1vZGVsIG9mIG1ldGhvZCBjYWxscyAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBkZXBlbmRlbmNpZXMgZnJvbSB0eXBlIGRlY2xhcmF0aW9uIChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS4wID0gRGlzY292ZXIgZGVwZW5kZW5jaWVzIGZyb20gSmF2YSBtb2RlbCAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuMSA9IERpc2NvdmVyIGRlcGVuZGVuY2llcyBmcm9tIEphdmEgcHJvamVjdCAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuMiA9IERpc2NvdmVyIGRlcGVuZGVuY2llcyBmcm9tIEphdmEgVHlwZSAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuMyA9IERpc2NvdmVyIGRlcGVuZGVuY2llcyBmcm9tIEphdmEgUGFja2FnZSAoRGVwcmVjYXRlZCkNCitlZGl0b3IubmFtZSA9IERlcGVuZGVuY2llcyBhcyBwcmVmdXNlIGdyYXBoIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9BY3RpdmF0b3IuamF2YQppbmRleCBjOGNhYTA3Li45YWE1YmU1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL0FjdGl2YXRvci5qYXZhCkBAIC0xNiw2ICsxNiwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnVpLnBsdWdpbi5BYnN0cmFjdFVJUGx1Z2luOwogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0OwogCisvKioKKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwKKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2CisgKi8KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsKIAkvLyBUaGUgcGx1Zy1pbiBJRAogCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFBMVUdJTl9JRCA9ICJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzIjsgLy8kTk9OLU5MUy0xJApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmF2YU1vZGVsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KYXZhTW9kZWwuamF2YQppbmRleCAxZWVkNGZlLi5hNTBmMzEyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KYXZhTW9kZWwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KYXZhTW9kZWwuamF2YQpAQCAtMzksNyArMzksOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KYXZhTW9kZWwgZXh0ZW5kcyBBYnN0cmFjdERpc2NvdmVyZXJJbXBsIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmF2YVByb2plY3QuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9hY3Rpb25zL0Rpc2NvdmVyRGVwZW5kZW5jaWVzRnJvbUphdmFQcm9qZWN0LmphdmEKaW5kZXggNjI4YWFhMy4uOTRjZWRlOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmF2YVByb2plY3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KYXZhUHJvamVjdC5qYXZhCkBAIC0zOCw3ICszOCw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyRGVwZW5kZW5jaWVzRnJvbUphdmFQcm9qZWN0IGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbCBpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmR0UGFja2FnZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmR0UGFja2FnZS5qYXZhCmluZGV4IDNmMzY5ZmYuLjU3NTNmMzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9hY3Rpb25zL0Rpc2NvdmVyRGVwZW5kZW5jaWVzRnJvbUpkdFBhY2thZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KZHRQYWNrYWdlLmphdmEKQEAgLTM4LDcgKzM4LDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmR0UGFja2FnZSBleHRlbmRzIEFic3RyYWN0RGlzY292ZXJlckltcGwgaW1wbGVtZW50cw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9hY3Rpb25zL0Rpc2NvdmVyRGVwZW5kZW5jaWVzRnJvbUpkdFR5cGUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9hY3Rpb25zL0Rpc2NvdmVyRGVwZW5kZW5jaWVzRnJvbUpkdFR5cGUuamF2YQppbmRleCA1YTNmMjZjLi44MGViZGYwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21KZHRUeXBlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tSmR0VHlwZS5qYXZhCkBAIC0zOSw3ICszOSw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyRGVwZW5kZW5jaWVzRnJvbUpkdFR5cGUgZXh0ZW5kcyBBYnN0cmFjdERpc2NvdmVyZXJJbXBsIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvRGlzY292ZXJEZXBlbmRlbmNpZXNGcm9tVHlwZURlY2xhcmF0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21UeXBlRGVjbGFyYXRpb24uamF2YQppbmRleCAxYTQzMWY2Li4zYmZjYzRiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21UeXBlRGVjbGFyYXRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9EaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21UeXBlRGVjbGFyYXRpb24uamF2YQpAQCAtNDIsNyArNDIsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3ZlckRlcGVuZGVuY2llc0Zyb21UeXBlRGVjbGFyYXRpb24gZXh0ZW5kcyBBYnN0cmFjdERpc2NvdmVyZXJJbXBsIGltcGxlbWVudHMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2FjdGlvbnMvTWVzc2FnZXMuamF2YQppbmRleCBkOTNmYTI4Li40ZGQzMTMxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvYWN0aW9ucy9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9hY3Rpb25zL01lc3NhZ2VzLmphdmEKQEAgLTE3LDcgKzE3LDggQEAKICAqIEBhdXRob3IgR0JhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2VkaXRvci9EZXBlbmRlbmNpZXNFZGl0b3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvRGVwZW5kZW5jaWVzRWRpdG9yLmphdmEKaW5kZXggODY2MWJjYy4uY2Q1MmI1NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2VkaXRvci9EZXBlbmRlbmNpZXNFZGl0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvZWRpdG9yL0RlcGVuZGVuY2llc0VkaXRvci5qYXZhCkBAIC01OCw3ICs1OCw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERlcGVuZGVuY2llc0VkaXRvciBleHRlbmRzIEVkaXRvclBhcnQgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvR2V0VXNlZFBhY2thZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvZWRpdG9yL0dldFVzZWRQYWNrYWdlcy5qYXZhCmluZGV4IGQxNTJhOTIuLmMzZjQ0YWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvR2V0VXNlZFBhY2thZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2VkaXRvci9HZXRVc2VkUGFja2FnZXMuamF2YQpAQCAtMjQsNyArMjQsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBHZXRVc2VkUGFja2FnZXMgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvR2V0VXNlZFR5cGVzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvZWRpdG9yL0dldFVzZWRUeXBlcy5qYXZhCmluZGV4IDJiOTJhYjQuLmE3MWU4OTEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvR2V0VXNlZFR5cGVzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2VkaXRvci9HZXRVc2VkVHlwZXMuamF2YQpAQCAtMjQsNyArMjQsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBHZXRVc2VkVHlwZXMgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvTWVzc2FnZXMuamF2YQppbmRleCA0NTBlYWM0Li5mODM5YjhmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvZWRpdG9yL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2VkaXRvci9NZXNzYWdlcy5qYXZhCkBAIC0xNyw3ICsxNyw4IEBACiAgKiBAYXV0aG9yIEdCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvUHJlZnVzZUdyYXBoSW5wdXQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL2RlcGVuZGVuY2llcy9lZGl0b3IvUHJlZnVzZUdyYXBoSW5wdXQuamF2YQppbmRleCAwNjc0YmYxLi41YTJkODMxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9kZXBlbmRlbmNpZXMvZWRpdG9yL1ByZWZ1c2VHcmFwaElucHV0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvZGVwZW5kZW5jaWVzL2VkaXRvci9QcmVmdXNlR3JhcGhJbnB1dC5qYXZhCkBAIC0yNSw3ICsyNSw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFByZWZ1c2VHcmFwaElucHV0IGltcGxlbWVudHMgSUVkaXRvcklucHV0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBjZjdhNWQzLi43YzdmNWY3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9BY3RpdmF0b3IuamF2YQppbmRleCAyNDg1ZDcyLi42YTJjNWYyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvQWN0aXZhdG9yLmphdmEKQEAgLTE3LDcgKzE3LDggQEAKIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dDsKIAogLyoqCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQKKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwKKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2CiAgKi8KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUFic3RyYWN0TWV0aG9kRGVjbGFyYXRpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tQWJzdHJhY3RNZXRob2REZWNsYXJhdGlvbi5qYXZhCmluZGV4IDYyN2E0NjUuLmVhMzUzOTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tQWJzdHJhY3RNZXRob2REZWNsYXJhdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tQWJzdHJhY3RNZXRob2REZWNsYXJhdGlvbi5qYXZhCkBAIC00Niw3ICs0Niw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyTWV0aG9kQ2FsbHNNb2RlbEZyb21BYnN0cmFjdE1ldGhvZERlY2xhcmF0aW9uIGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tSmF2YU1vZGVsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUphdmFNb2RlbC5qYXZhCmluZGV4IDBjMjEyYTcuLjcyYmQ1MGQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tSmF2YU1vZGVsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9hY3Rpb25zL0Rpc2NvdmVyTWV0aG9kQ2FsbHNNb2RlbEZyb21KYXZhTW9kZWwuamF2YQpAQCAtNDMsNyArNDMsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tSmF2YU1vZGVsIGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbCBpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9hY3Rpb25zL0Rpc2NvdmVyTWV0aG9kQ2FsbHNNb2RlbEZyb21KYXZhT3BlcmF0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUphdmFPcGVyYXRpb24uamF2YQppbmRleCAxNTZhYjVmLi5iYzA2M2ZlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUphdmFPcGVyYXRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUphdmFPcGVyYXRpb24uamF2YQpAQCAtNDIsNyArNDIsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBEaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tSmF2YU9wZXJhdGlvbiBleHRlbmRzIEFic3RyYWN0RGlzY292ZXJlckltcGwgaW1wbGVtZW50cw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvYWN0aW9ucy9EaXNjb3Zlck1ldGhvZENhbGxzTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQppbmRleCA0MjIzMDljLi45OGIzODhjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9hY3Rpb25zL0Rpc2NvdmVyTWV0aG9kQ2FsbHNNb2RlbEZyb21KYXZhUHJvamVjdC5qYXZhCkBAIC00MSw3ICs0MSw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwgLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJNZXRob2RDYWxsc01vZGVsRnJvbUphdmFQcm9qZWN0IGV4dGVuZHMgQWJzdHJhY3REaXNjb3ZlcmVySW1wbCBpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9hY3Rpb25zL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvTWVzc2FnZXMuamF2YQppbmRleCA4NWQ4YzA3Li42N2YzZjk0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2FjdGlvbnMvTWVzc2FnZXMuamF2YQpAQCAtMTcsNyArMTcsOCBAQAogICogQGF1dGhvciBHQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2NvbnZlcnRlci9NZXRob2RDYWxsc0dyYXBoQ29udmVydGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2NvbnZlcnRlci9NZXRob2RDYWxsc0dyYXBoQ29udmVydGVyLmphdmEKaW5kZXggNWZhYjllYS4uOTcwYjI3YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9jb252ZXJ0ZXIvTWV0aG9kQ2FsbHNHcmFwaENvbnZlcnRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvY29udmVydGVyL01ldGhvZENhbGxzR3JhcGhDb252ZXJ0ZXIuamF2YQpAQCAtNTUsNyArNTUsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXRob2RDYWxsc0dyYXBoQ29udmVydGVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2NvbnZlcnRlci9NZXRob2RDYWxsc0phdmFCcmlkZ2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvY29udmVydGVyL01ldGhvZENhbGxzSmF2YUJyaWRnZS5qYXZhCmluZGV4IDczZTk0NzEuLmJkNThhMDYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvY29udmVydGVyL01ldGhvZENhbGxzSmF2YUJyaWRnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvY29udmVydGVyL01ldGhvZENhbGxzSmF2YUJyaWRnZS5qYXZhCkBAIC0yMSw3ICsyMSw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1ldGhvZENhbGxzSmF2YUJyaWRnZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9jb252ZXJ0ZXIvUHJlZnVzZUdyYXBoQ29udGFpbmVyRm9ySmF2YS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9jb252ZXJ0ZXIvUHJlZnVzZUdyYXBoQ29udGFpbmVyRm9ySmF2YS5qYXZhCmluZGV4IGVkZTU3OWIuLmJkZmFmMGYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvY29udmVydGVyL1ByZWZ1c2VHcmFwaENvbnRhaW5lckZvckphdmEuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2NvbnZlcnRlci9QcmVmdXNlR3JhcGhDb250YWluZXJGb3JKYXZhLmphdmEKQEAgLTI2LDcgKzI2LDggQEAKIGltcG9ydCBwcmVmdXNlLnZpc3VhbC5WaXN1YWxJdGVtOw0KIA0KIC8qKg0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFByZWZ1c2VHcmFwaENvbnRhaW5lckZvckphdmEgZXh0ZW5kcyBQcmVmdXNlR3JhcGhDb250YWluZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvZWRpdG9yL01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2VkaXRvci9NZXNzYWdlcy5qYXZhCmluZGV4IGI0M2FhMWMuLmM3MDAyOTIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvZWRpdG9yL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9lZGl0b3IvTWVzc2FnZXMuamF2YQpAQCAtMTcsNyArMTcsOCBAQAogICogQGF1dGhvciBHQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2VkaXRvci9NZXRob2RDYWxsc01vZGVsRWRpdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2VkaXRvci9NZXRob2RDYWxsc01vZGVsRWRpdG9yLmphdmEKaW5kZXggZGZhYzgwNS4uZTgxNDYxZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9lZGl0b3IvTWV0aG9kQ2FsbHNNb2RlbEVkaXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvZWRpdG9yL01ldGhvZENhbGxzTW9kZWxFZGl0b3IuamF2YQpAQCAtNTMsNyArNTMsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXRob2RDYWxsc01vZGVsRWRpdG9yIGV4dGVuZHMgRWRpdG9yUGFydCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9lZGl0b3IvUHJlZnVzZUdyYXBoSW5wdXQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvZWRpdG9yL1ByZWZ1c2VHcmFwaElucHV0LmphdmEKaW5kZXggY2E0NDU4MC4uZThjOWI1MSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9lZGl0b3IvUHJlZnVzZUdyYXBoSW5wdXQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL2VkaXRvci9QcmVmdXNlR3JhcGhJbnB1dC5qYXZhCkBAIC0yNCw3ICsyNCw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFByZWZ1c2VHcmFwaElucHV0IGltcGxlbWVudHMgSUVkaXRvcklucHV0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL0NhbGxOb2RlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL0NhbGxOb2RlLmphdmEKaW5kZXggZDhiZmUzOS4uYjgyZGUyMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9DYWxsTm9kZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvQ2FsbE5vZGUuamF2YQpAQCAtNDYsNyArNDYsOCBAQAogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBDYWxsTm9kZSBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvQ2FsbHNNb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9DYWxsc01vZGVsLmphdmEKaW5kZXggN2M1NTNmNC4uNTM1NzZlNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9DYWxsc01vZGVsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9DYWxsc01vZGVsLmphdmEKQEAgLTQyLDcgKzQyLDggQEAKICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgQ2FsbHNNb2RlbCBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvTWV0aG9kQ2FsbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9NZXRob2RDYWxsLmphdmEKaW5kZXggOThiZWY0OS4uZWFlMjhlYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9NZXRob2RDYWxsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9NZXRob2RDYWxsLmphdmEKQEAgLTQ1LDcgKzQ1LDggQEAKICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgTWV0aG9kQ2FsbCBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvTWV0aG9kY2FsbHNGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL01ldGhvZGNhbGxzRmFjdG9yeS5qYXZhCmluZGV4IGI5NjA1OGIuLjk2NWJmOWQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvTWV0aG9kY2FsbHNGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9NZXRob2RjYWxsc0ZhY3RvcnkuamF2YQpAQCAtMjUsNyArMjUsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzLm1vZGVsLm1ldGhvZGNhbGxzLk1ldGhvZGNhbGxzUGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgTWV0aG9kY2FsbHNGYWN0b3J5IGV4dGVuZHMgRUZhY3Rvcnkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvTWV0aG9kY2FsbHNQYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL01ldGhvZGNhbGxzUGFja2FnZS5qYXZhCmluZGV4IGUyYjk1MzUuLmYxZmE0YmYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvTWV0aG9kY2FsbHNQYWNrYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9NZXRob2RjYWxsc1BhY2thZ2UuamF2YQpAQCAtMzYsNyArMzYsOCBAQAogICogQG1vZGVsIGtpbmQ9InBhY2thZ2UiDQogICogQGdlbmVyYXRlZA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNZXRob2RjYWxsc1BhY2thZ2UgZXh0ZW5kcyBFUGFja2FnZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL0NhbGxOb2RlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL0NhbGxOb2RlSW1wbC5qYXZhCmluZGV4IDc4NzMzODYuLjI4MzA0NzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9DYWxsTm9kZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL2ltcGwvQ2FsbE5vZGVJbXBsLmphdmEKQEAgLTU2LDcgKzU2LDggQEAKICAqIA0KICAqIEBnZW5lcmF0ZWQNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBDYWxsTm9kZUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIENhbGxOb2RlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL2ltcGwvQ2FsbHNNb2RlbEltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9DYWxsc01vZGVsSW1wbC5qYXZhCmluZGV4IDQ1MzFmNDIuLjJkZGRmYTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9DYWxsc01vZGVsSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9DYWxsc01vZGVsSW1wbC5qYXZhCkBAIC01Miw3ICs1Miw4IEBACiAgKiANCiAgKiBAZ2VuZXJhdGVkDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQ2FsbHNNb2RlbEltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIENhbGxzTW9kZWwgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9NZXRob2RDYWxsSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZENhbGxJbXBsLmphdmEKaW5kZXggMmRiNjY0YS4uYjJiMTBiOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZENhbGxJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZENhbGxJbXBsLmphdmEKQEAgLTU0LDcgKzU0LDggQEAKICAqIA0KICAqIEBnZW5lcmF0ZWQNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXRob2RDYWxsSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgTWV0aG9kQ2FsbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZGNhbGxzRmFjdG9yeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9NZXRob2RjYWxsc0ZhY3RvcnlJbXBsLmphdmEKaW5kZXggNzI0MWRmNC4uZmNiOTM1MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZGNhbGxzRmFjdG9yeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL2ltcGwvTWV0aG9kY2FsbHNGYWN0b3J5SW1wbC5qYXZhCkBAIC0zMiw3ICszMiw4IEBACiAgKiANCiAgKiBAZ2VuZXJhdGVkDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWV0aG9kY2FsbHNGYWN0b3J5SW1wbCBleHRlbmRzIEVGYWN0b3J5SW1wbCBpbXBsZW1lbnRzIE1ldGhvZGNhbGxzRmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZGNhbGxzUGFja2FnZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvaW1wbC9NZXRob2RjYWxsc1BhY2thZ2VJbXBsLmphdmEKaW5kZXggZmVhMjIyMy4uNjQ5NDUyNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy9pbXBsL01ldGhvZGNhbGxzUGFja2FnZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL2ltcGwvTWV0aG9kY2FsbHNQYWNrYWdlSW1wbC5qYXZhCkBAIC0zMyw3ICszMyw4IEBACiAgKiANCiAgKiBAZ2VuZXJhdGVkDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWV0aG9kY2FsbHNQYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIE1ldGhvZGNhbGxzUGFja2FnZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy91dGlsL01ldGhvZGNhbGxzQWRhcHRlckZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvdXRpbC9NZXRob2RjYWxsc0FkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggYWM0ZWEwMi4uMzA1OGE2OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy91dGlsL01ldGhvZGNhbGxzQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL21ldGhvZGNhbGxzL21vZGVsL21ldGhvZGNhbGxzL3V0aWwvTWV0aG9kY2FsbHNBZGFwdGVyRmFjdG9yeS5qYXZhCkBAIC0zMiw3ICszMiw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMubW9kZWwubWV0aG9kY2FsbHMuTWV0aG9kY2FsbHNQYWNrYWdlDQogICogQGdlbmVyYXRlZA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1ldGhvZGNhbGxzQWRhcHRlckZhY3RvcnkgZXh0ZW5kcyBBZGFwdGVyRmFjdG9yeUltcGwgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvbWV0aG9kY2FsbHMvbW9kZWwvbWV0aG9kY2FsbHMvdXRpbC9NZXRob2RjYWxsc1N3aXRjaC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy91dGlsL01ldGhvZGNhbGxzU3dpdGNoLmphdmEKaW5kZXggYTBiMzEyNS4uMDRmMjYzNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy91dGlsL01ldGhvZGNhbGxzU3dpdGNoLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci9tZXRob2RjYWxscy9tb2RlbC9tZXRob2RjYWxscy91dGlsL01ldGhvZGNhbGxzU3dpdGNoLmphdmEKQEAgLTM1LDcgKzM1LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy5tb2RlbC5tZXRob2RjYWxscy5NZXRob2RjYWxsc1BhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWV0aG9kY2FsbHNTd2l0Y2g8VD4gew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGRjOTUwYjEuLjdhNTdmZmMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMSw3ICsxLDcgQEAKIE1hbmlmZXN0LVZlcnNpb246IDEuMA0KIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlcy5tb2RlbGZpbHRlci5Nb2RlbEZpbHRlckFjdGl2YXRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwNCiAgb3JnLmVjbGlwc2UuamR0LmNvcmUsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IGVlYzQ2MjguLmJlOWM5NTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDYgKzEwLDYgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBNb2RlbCBGaWx0ZXIgUGx1Zy1pbiAoSW5jdWJhdGlvbikNCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gTW9kZWwgRmlsdGVyIFBsdWctaW4gKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIA0KLWRpc2NvdmVyZXIubmFtZSA9IENyZWF0ZSBVTUwgbW9kZWwgd2l0aCByZWFsIHR5cGVzIGluZm9ybWF0aW9uIG9uIGFzc29jaWF0aW9ucwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2Rpc2NvdmVyZXIubmFtZSA9IENyZWF0ZSBVTUwgbW9kZWwgd2l0aCByZWFsIHR5cGVzIGluZm9ybWF0aW9uIG9uIGFzc29jaWF0aW9ucyAoRGVwcmVjYXRlZCkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvTWVzc2FnZXMuamF2YQppbmRleCA0YjVhMWQ0Li5lMjRkNTY1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL01lc3NhZ2VzLmphdmEKQEAgLTE0LDcgKzE0LDggQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KIC8qKg0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9Nb2RlbEZpbHRlckFjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvTW9kZWxGaWx0ZXJBY3RpdmF0b3IuamF2YQppbmRleCA1MjNjMDg2Li40NGIyMDYyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9Nb2RlbEZpbHRlckFjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL01vZGVsRmlsdGVyQWN0aXZhdG9yLmphdmEKQEAgLTE5LDcgKzE5LDggQEAKIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1vZGVsRmlsdGVyQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvYWN0aW9ucy9EaXNjb3ZlclVtbE1vZGVsV2l0aFJlYWxUeXBlc0Zyb21KYXZhUHJvamVjdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvYWN0aW9ucy9EaXNjb3ZlclVtbE1vZGVsV2l0aFJlYWxUeXBlc0Zyb21KYXZhUHJvamVjdC5qYXZhCmluZGV4IDAyZmI1YzcuLjAwMGM3NWYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL2FjdGlvbnMvRGlzY292ZXJVbWxNb2RlbFdpdGhSZWFsVHlwZXNGcm9tSmF2YVByb2plY3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9hY3Rpb25zL0Rpc2NvdmVyVW1sTW9kZWxXaXRoUmVhbFR5cGVzRnJvbUphdmFQcm9qZWN0LmphdmEKQEAgLTQxLDcgKzQxLDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJVbWxNb2RlbFdpdGhSZWFsVHlwZXNGcm9tSmF2YVByb2plY3QgZXh0ZW5kcyBBYnN0cmFjdERpc2NvdmVyZXJJbXBsIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9jb252ZXJ0ZXIvQmlkaXJlY3Rpb25hbFVtbENvbnZlcnRlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvY29udmVydGVyL0JpZGlyZWN0aW9uYWxVbWxDb252ZXJ0ZXIuamF2YQppbmRleCBjNTc0YWZiLi4yMGQ3NzRkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9jb252ZXJ0ZXIvQmlkaXJlY3Rpb25hbFVtbENvbnZlcnRlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL2NvbnZlcnRlci9CaWRpcmVjdGlvbmFsVW1sQ29udmVydGVyLmphdmEKQEAgLTQwLDcgKzQwLDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODA2DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQmlkaXJlY3Rpb25hbFVtbENvbnZlcnRlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvY29udmVydGVyL0phdmFDb252ZXJ0ZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL2NvbnZlcnRlci9KYXZhQ29udmVydGVyLmphdmEKaW5kZXggYTcwODU2Mi4uY2IxMjJhMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvY29udmVydGVyL0phdmFDb252ZXJ0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9jb252ZXJ0ZXIvSmF2YUNvbnZlcnRlci5qYXZhCkBAIC0zMCw3ICszMCw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgICAgICAgICAgICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDgwNg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEphdmFDb252ZXJ0ZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL2NvbnZlcnRlci9SZWFsVHlwZXNKYXZhQ29udmVydGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlcy9tb2RlbGZpbHRlci9jb252ZXJ0ZXIvUmVhbFR5cGVzSmF2YUNvbnZlcnRlci5qYXZhCmluZGV4IDIzZGVmYmMuLmYyMGQ1ZDAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2VzL21vZGVsZmlsdGVyL2NvbnZlcnRlci9SZWFsVHlwZXNKYXZhQ29udmVydGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZXMvbW9kZWxmaWx0ZXIvY29udmVydGVyL1JlYWxUeXBlc0phdmFDb252ZXJ0ZXIuamF2YQpAQCAtNDAsNyArNDAsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4MDYNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBSZWFsVHlwZXNKYXZhQ29udmVydGVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVscGxleC5leGFtcGxlcy5jdXN0b21pemF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5tb2RlbHBsZXguZXhhbXBsZXMuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhMjU3YWJmLi4wZjdmNWRiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVscGxleC5leGFtcGxlcy5jdXN0b21pemF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2UubW9kZWxwbGV4LmV4YW1wbGVzLmN1c3RvbWl6YXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLm1vZGVscGxleC5leGFtcGxlcy5jdXN0b21pemF0aW9uO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMTMyZjJjZi4uM2FkNWM0OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xLDcgKzEsNyBAQAogTWFuaWZlc3QtVmVyc2lvbjogMS4wCiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLk1vZGVscGxleEtub3dsZWRnZURpc2NvdmVyeUZyYW1ld29ya1BsdWdpbgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLAogIG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDAzYzgyZmUuLjAyZDViZTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTksOSArOSw5IEBACiAjICAgIE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluDQotZGlzY292ZXJlci5uYW1lID0gRGlzY292ZXIgVU1MIG1vZGVsIGZyb20gSmF2YSBwcm9qZWN0DQotZGlzY292ZXJlci5uYW1lLjAgPSBEaXNjb3ZlciBiaWRpcmVjdGlvbmFsIGFzc29jaWF0aW9ucyBmcm9tIFVNTCBtb2RlbA0KLWRpc2NvdmVyZXIubmFtZS4xID0gRGlzY292ZXIgVU1MIG1vZGVsIHdpdGggYmlkaXJlY3Rpb25hbCBhc3NvY2lhdGlvbnMgZnJvbSBKYXZhIHByb2plY3QNCi1kaXNjb3ZlcmVyLm5hbWUuMiA9IFdpemFyZCB0byBjdXN0b21pemUgTW9kZWxwbGV4IEtub3dsZWRnZSBEaXNjb3ZlcnkNCitkaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBVTUwgbW9kZWwgZnJvbSBKYXZhIHByb2plY3QgKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5uYW1lLjAgPSBEaXNjb3ZlciBiaWRpcmVjdGlvbmFsIGFzc29jaWF0aW9ucyBmcm9tIFVNTCBtb2RlbCAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUuMSA9IERpc2NvdmVyIFVNTCBtb2RlbCB3aXRoIGJpZGlyZWN0aW9uYWwgYXNzb2NpYXRpb25zIGZyb20gSmF2YSBwcm9qZWN0IChEZXByZWNhdGVkKQ0KK2Rpc2NvdmVyZXIubmFtZS4yID0gV2l6YXJkIHRvIGN1c3RvbWl6ZSBNb2RlbHBsZXggS25vd2xlZGdlIERpc2NvdmVyeSAoRGVwcmVjYXRlZCkNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIFNpbXBsZSBUcmFuc2Zvcm1hdGlvbnMgQ2hhaW4gUGx1Zy1pbiAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gU2ltcGxlIFRyYW5zZm9ybWF0aW9ucyBDaGFpbiBQbHVnLWluIChEZXByZWNhdGVkKSAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL0tub3dsZWRnZURpc2NvdmVyeUludGVyZmFjZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9Lbm93bGVkZ2VEaXNjb3ZlcnlJbnRlcmZhY2UuamF2YQppbmRleCA0YjVmMzJmLi5iNjdlNTJiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL0tub3dsZWRnZURpc2NvdmVyeUludGVyZmFjZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vS25vd2xlZGdlRGlzY292ZXJ5SW50ZXJmYWNlLmphdmEKQEAgLTIyLDcgKzIyLDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDY4MA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBLbm93bGVkZ2VEaXNjb3ZlcnlJbnRlcmZhY2Ugew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vTWVzc2FnZXMuamF2YQppbmRleCBhNDgwYTdjLi42MmM5ZDQxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9NZXNzYWdlcy5qYXZhCkBAIC0xMiw2ICsxMiwxMSBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZSByZW1vdmVkLA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzAxDQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQlVORExFX05BTUUgPSAib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgQWJzdHJhY3RLbm93bGVkZ2VEaXNjb3ZlcnlXaXphcmRfd2l6YXJkVGl0bGU7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9Nb2RlbHBsZXhLbm93bGVkZ2VEaXNjb3ZlcnlGcmFtZXdvcmsuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vTW9kZWxwbGV4S25vd2xlZGdlRGlzY292ZXJ5RnJhbWV3b3JrLmphdmEKaW5kZXggMzczODU2NC4uMWU5MDNjZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9Nb2RlbHBsZXhLbm93bGVkZ2VEaXNjb3ZlcnlGcmFtZXdvcmsuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL01vZGVscGxleEtub3dsZWRnZURpc2NvdmVyeUZyYW1ld29yay5qYXZhCkBAIC0zOCw3ICszOCw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UubTJtLmF0bC5jb3JlLkFUTENvcmVFeGNlcHRpb247DQogDQogLyoqDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDY4MA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1vZGVscGxleEtub3dsZWRnZURpc2NvdmVyeUZyYW1ld29yayBpbXBsZW1lbnRzIEtub3dsZWRnZURpc2NvdmVyeUludGVyZmFjZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9Nb2RlbHBsZXhLbm93bGVkZ2VEaXNjb3ZlcnlGcmFtZXdvcmtQbHVnaW4uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vTW9kZWxwbGV4S25vd2xlZGdlRGlzY292ZXJ5RnJhbWV3b3JrUGx1Z2luLmphdmEKaW5kZXggYmVmN2MyNi4uOGNkZGZhZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9Nb2RlbHBsZXhLbm93bGVkZ2VEaXNjb3ZlcnlGcmFtZXdvcmtQbHVnaW4uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL01vZGVscGxleEtub3dsZWRnZURpc2NvdmVyeUZyYW1ld29ya1BsdWdpbi5qYXZhCkBAIC0yMiw3ICsyMiw4IEBACiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NjgwDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxwbGV4S25vd2xlZGdlRGlzY292ZXJ5RnJhbWV3b3JrUGx1Z2luIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9QcmVmZXJlbmNlc0tleXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vUHJlZmVyZW5jZXNLZXlzLmphdmEKaW5kZXggOTYyNDcyZS4uZjE2ZjI4YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9QcmVmZXJlbmNlc0tleXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL1ByZWZlcmVuY2VzS2V5cy5qYXZhCkBAIC0xOCw3ICsxOCw4IEBACiAgKiBAYXV0aG9yIEdhYnJpZWwgQmFyYmllcg0KICAqIA0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwNCisgKiAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ2ODANCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgUHJlZmVyZW5jZXNLZXlzIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJCaWRpcmVjdGlvbmFsQXNzb2NpYXRpb25zSW5VbWxNb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9hY3Rpb25zL0Rpc2NvdmVyQmlkaXJlY3Rpb25hbEFzc29jaWF0aW9uc0luVW1sTW9kZWwuamF2YQppbmRleCBiMzUzY2JlLi41NzI3Y2ZmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJCaWRpcmVjdGlvbmFsQXNzb2NpYXRpb25zSW5VbWxNb2RlbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vYWN0aW9ucy9EaXNjb3ZlckJpZGlyZWN0aW9uYWxBc3NvY2lhdGlvbnNJblVtbE1vZGVsLmphdmEKQEAgLTQxLDcgKzQxLDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDY4MA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyQmlkaXJlY3Rpb25hbEFzc29jaWF0aW9uc0luVW1sTW9kZWwgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJVbWxNb2RlbEZyb21KYXZhUHJvamVjdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9hY3Rpb25zL0Rpc2NvdmVyVW1sTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQppbmRleCBjYmQyMjFmLi42N2FmZWY1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJVbWxNb2RlbEZyb21KYXZhUHJvamVjdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vYWN0aW9ucy9EaXNjb3ZlclVtbE1vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEKQEAgLTUxLDcgKzUxLDggQEAKICAqIEBhdXRob3IgR2FicmllbCBCYXJiaWVyDQogICogDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50DQorICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28ueC55LnogY29tcG9uZW50LA0KKyAqICBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDY4MA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVyVW1sTW9kZWxGcm9tSmF2YVByb2plY3QgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJVbWxNb2RlbFdpdGhCaWRpcmVjdGlvbmFsQXNzb2NpYXRpb25zRnJvbUphdmFQcm9qZWN0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJVbWxNb2RlbFdpdGhCaWRpcmVjdGlvbmFsQXNzb2NpYXRpb25zRnJvbUphdmFQcm9qZWN0LmphdmEKaW5kZXggYzllMGMzYi4uYTY1NGYwYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9hY3Rpb25zL0Rpc2NvdmVyVW1sTW9kZWxXaXRoQmlkaXJlY3Rpb25hbEFzc29jaWF0aW9uc0Zyb21KYXZhUHJvamVjdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3VzZWNhc2Uvc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vYWN0aW9ucy9EaXNjb3ZlclVtbE1vZGVsV2l0aEJpZGlyZWN0aW9uYWxBc3NvY2lhdGlvbnNGcm9tSmF2YVByb2plY3QuamF2YQpAQCAtNTEsNyArNTEsOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NjgwDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJVbWxNb2RlbFdpdGhCaWRpcmVjdGlvbmFsQXNzb2NpYXRpb25zRnJvbUphdmFQcm9qZWN0IGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vdXNlY2FzZS9zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9hY3Rpb25zL0Rpc2NvdmVyeUN1c3RvbWl6YXRpb25Ub1VtbE1vZGVsRnJvbUphdmFQcm9qZWN0LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJ5Q3VzdG9taXphdGlvblRvVW1sTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQppbmRleCA4ZjI0NzFlLi5mNjFhZGU3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJ5Q3VzdG9taXphdGlvblRvVW1sTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby91c2VjYXNlL3NpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL2FjdGlvbnMvRGlzY292ZXJ5Q3VzdG9taXphdGlvblRvVW1sTW9kZWxGcm9tSmF2YVByb2plY3QuamF2YQpAQCAtMzksNyArMzksOCBAQAogICogQGF1dGhvciBHYWJyaWVsIEJhcmJpZXINCiAgKiANCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby54LnkueiBjb21wb25lbnQsDQorICogIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NjgwDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJ5Q3VzdG9taXphdGlvblRvVW1sTW9kZWxGcm9tSmF2YVByb2plY3QgZXh0ZW5kcyBBYnN0cmFjdERpc2NvdmVyZXJJbXBsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDE3NDQ1MGQuLmJlYjRlNTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2UvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTEsNyArMSw3IEBACiBNYW5pZmVzdC1WZXJzaW9uOiAxLjAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUNsYXNzUGF0aDogLgogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9wbHVnaW4ucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9wbHVnaW4ucHJvcGVydGllcwppbmRleCAzZDA4MTdhLi5jOGUyNGQ3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2UvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3BsdWdpbi5wcm9wZXJ0aWVzCkBAIC05LDcgKzksNyBAQAogIyAgICBHYWJyaWVsIEJhcmJpZXIgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogIyBOTFNfTUVTU0FHRUZPUk1BVF9WQVINCi1wbHVnaW5OYW1lPU1vRGlzY28gRW5naW5lIGRyaXZlciBmb3IgTVdFIChJbmN1YmF0aW9uKQ0KK3BsdWdpbk5hbWU9TW9EaXNjbyBFbmdpbmUgZHJpdmVyIGZvciBNV0UgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZT1FY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiANCiB3b3JrZmxvd0NvcmUubmFtZSA9IE1XRQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvQWN0aXZhdG9yLmphdmEKaW5kZXggNWEwZTIyNC4uZGIzYzAyOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvQWN0aXZhdG9yLmphdmEKQEAgLTE0LDYgKzE0LDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UudWkucGx1Z2luLkFic3RyYWN0VUlQbHVnaW47DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQorICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS9Db25zdGFudHMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL0NvbnN0YW50cy5qYXZhCmluZGV4IGViYWI3MzEuLjYxYjg4NzQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL0NvbnN0YW50cy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL0NvbnN0YW50cy5qYXZhCkBAIC0xMCw2ICsxMCwxMCBAQAogICovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2U7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCisqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGZpbmFsIGNsYXNzIENvbnN0YW50cyB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL01lc3NhZ2VzLmphdmEKaW5kZXggZDFjMTI1Mi4uNTI2OThiMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS9NZXNzYWdlcy5qYXZhCkBAIC0xNCw3ICsxNCw4IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIGdkdXBlDQotICoNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgTWVzc2FnZXMgZXh0ZW5kcyBOTFMgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL2ltcGwvV29ya2Zsb3dFeGVjdXRpb25JbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS9pbXBsL1dvcmtmbG93RXhlY3V0aW9uSW1wbC5qYXZhCmluZGV4IDQ5ZGUwMjEuLjJiNzI4ZjIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL2ltcGwvV29ya2Zsb3dFeGVjdXRpb25JbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvaW1wbC9Xb3JrZmxvd0V4ZWN1dGlvbkltcGwuamF2YQpAQCAtMjUsNiArMjUsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuRWxlbWVudDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLkFjdGl2YXRvcjsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KKyAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dFeGVjdXRpb25JbXBsIGltcGxlbWVudHMgV29ya2Zsb3dFeGVjdXRpb24gew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL2ltcGwvV29ya2Zsb3dNb2RlbEltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL2ltcGwvV29ya2Zsb3dNb2RlbEltcGwuamF2YQppbmRleCBlOTJiNDI4Li5kMWZlOTk0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS9pbXBsL1dvcmtmbG93TW9kZWxJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvaW1wbC9Xb3JrZmxvd01vZGVsSW1wbC5qYXZhCkBAIC02OSw2ICs2OSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGwuUnVudGltZUZhY3RvcnlJbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5pbXBsLldvcmtmbG93UGFyYW1ldGVyTWFwSW1wbDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KKyAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dNb2RlbEltcGwgZXh0ZW5kcyBXb3JrZmxvd0ltcGwgaW1wbGVtZW50cyBXb3JrZmxvd01vZGVsIHsNCiAJDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvaW1wbC9Xb3JrZmxvd01vZGVsTm90aWZpZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL2ltcGwvV29ya2Zsb3dNb2RlbE5vdGlmaWVyLmphdmEKaW5kZXggZTA0MTZiZS4uYWNkMWMwYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2UvaW1wbC9Xb3JrZmxvd01vZGVsTm90aWZpZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS9pbXBsL1dvcmtmbG93TW9kZWxOb3RpZmllci5qYXZhCkBAIC0xNyw3ICsxNywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93LldvcmtmbG93TW9kZWxFdmVudHNTdWJzY3JpYmU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5FbGVtZW50Ow0KIA0KLQ0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQorICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd01vZGVsTm90aWZpZXIgaW1wbGVtZW50cyBXb3JrZmxvd01vZGVsRXZlbnRzLCBXb3JrZmxvd01vZGVsRXZlbnRzU3Vic2NyaWJlIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9EaXJlY3Rpb24uamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L0RpcmVjdGlvbi5qYXZhCmluZGV4IDc2N2NhZGEuLmE0MmI5ZGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L0RpcmVjdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L0RpcmVjdGlvbi5qYXZhCkBAIC0yNyw2ICsyNyw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0RGlyZWN0aW9uKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGVudW0gRGlyZWN0aW9uIGltcGxlbWVudHMgRW51bWVyYXRvciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvSVdvcmtmbG93VmlzaXRvci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvSVdvcmtmbG93VmlzaXRvci5qYXZhCmluZGV4IDliZmU1OWYuLmZjNTNmYTkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L0lXb3JrZmxvd1Zpc2l0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9JV29ya2Zsb3dWaXNpdG9yLmphdmEKQEAgLTI0LDYgKzI0LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFja2FnZSNnZXRJV29ya2Zsb3dWaXNpdG9yKCkNCiAgKiBAbW9kZWwgaW50ZXJmYWNlPSJ0cnVlIiBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBJV29ya2Zsb3dWaXNpdG9yIGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3cuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93LmphdmEKaW5kZXggZjdlZDJhMS4uYWJhMWMzNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3cuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvdy5qYXZhCkBAIC0zNSw2ICszNSw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0V29ya2Zsb3coKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93IGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb25lbnQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93Q29tcG9uZW50LmphdmEKaW5kZXggNzkxNGE4Yi4uOGMxYTdmNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb25lbnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd0NvbXBvbmVudC5qYXZhCkBAIC00MCw2ICs0MCw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0V29ya2Zsb3dDb21wb25lbnQoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd0NvbXBvbmVudCBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93Q29tcG9uZW50TWluaW1hbGlzdC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb25lbnRNaW5pbWFsaXN0LmphdmEKaW5kZXggNmFmMjU3NC4uY2QzY2ZjMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb25lbnRNaW5pbWFsaXN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb25lbnRNaW5pbWFsaXN0LmphdmEKQEAgLTIzLDYgKzIzLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFja2FnZSNnZXRXb3JrZmxvd0NvbXBvbmVudE1pbmltYWxpc3QoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93Q29tcG9uZW50TWluaW1hbGlzdCBleHRlbmRzIFdvcmtmbG93Q29tcG9uZW50IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd0NvbXBvbmVudFByb3h5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd0NvbXBvbmVudFByb3h5LmphdmEKaW5kZXggMGRiMWY2MC4uODQ5NTlkOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb25lbnRQcm94eS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93Q29tcG9uZW50UHJveHkuamF2YQpAQCAtMjksNiArMjksOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dQYWNrYWdlI2dldFdvcmtmbG93Q29tcG9uZW50UHJveHkoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93Q29tcG9uZW50UHJveHkgZXh0ZW5kcyBXb3JrZmxvd0NvbXBvbmVudCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93Q29tcG9zaXRlQ29tcG9uZW50LmphdmEKaW5kZXggYTVmMWRjNi4uM2Q5Mjc2MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd0NvbXBvc2l0ZUNvbXBvbmVudC5qYXZhCkBAIC00MSw2ICs0MSw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0V29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnQoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93Q29tcG9zaXRlQ29tcG9uZW50IGV4dGVuZHMgV29ya2Zsb3dDb21wb25lbnQgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93RmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dGYWN0b3J5LmphdmEKaW5kZXggNWVjMDJmZC4uMmZlZGQwMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dGYWN0b3J5LmphdmEKQEAgLTIyLDYgKzIyLDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93RmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhY2thZ2UuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFja2FnZS5qYXZhCmluZGV4IDdiMGUyZDQuLmFmZTkwNDcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFja2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFja2FnZS5qYXZhCkBAIC0zMyw2ICszMyw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd0ZhY3RvcnkNCiAgKiBAbW9kZWwga2luZD0icGFja2FnZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd1BhY2thZ2UgZXh0ZW5kcyBFUGFja2FnZSB7DQpAQCAtMTAxMiw3ICsxMDE0LDEwIEBACiAJICogPC91bD4NCiAJICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogCSAqIEBnZW5lcmF0ZWQNCisJICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKwkgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogCSAqLw0KKwlARGVwcmVjYXRlZA0KIAlpbnRlcmZhY2UgTGl0ZXJhbHMgew0KIAkJLyoqDQogCQkgKiBUaGUgbWV0YSBvYmplY3QgbGl0ZXJhbCBmb3IgdGhlICd7QGxpbmsgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LmltcGwuV29ya2Zsb3dJbXBsIDxlbT5Xb3JrZmxvdzwvZW0+fScgY2xhc3MuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dQYXJhbWV0ZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFyYW1ldGVyLmphdmEKaW5kZXggOThmMzQwNy4uOWNiMDRlYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dQYXJhbWV0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlci5qYXZhCkBAIC0zOCw2ICszOCw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0V29ya2Zsb3dQYXJhbWV0ZXIoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93UGFyYW1ldGVyIGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dQYXJhbWV0ZXJDb25uZWN0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlckNvbm5lY3Rpb24uamF2YQppbmRleCAwOGM4NmI1Li4wYzU0ZWMxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlckNvbm5lY3Rpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlckNvbm5lY3Rpb24uamF2YQpAQCAtMzMsNiArMzMsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dQYWNrYWdlI2dldFdvcmtmbG93UGFyYW1ldGVyQ29ubmVjdGlvbigpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dQYXJhbWV0ZXJDb25uZWN0aW9uIGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvV29ya2Zsb3dQYXJhbWV0ZXJTaW1wbGVWYWx1ZVN0cmF0ZWd5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlclNpbXBsZVZhbHVlU3RyYXRlZ3kuamF2YQppbmRleCA1ZTliZDdiLi5lOTI5MDM5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlclNpbXBsZVZhbHVlU3RyYXRlZ3kuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlclNpbXBsZVZhbHVlU3RyYXRlZ3kuamF2YQpAQCAtMjQsNiArMjQsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dQYWNrYWdlI2dldFdvcmtmbG93UGFyYW1ldGVyU2ltcGxlVmFsdWVTdHJhdGVneSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dQYXJhbWV0ZXJTaW1wbGVWYWx1ZVN0cmF0ZWd5IGV4dGVuZHMgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZVN0cmF0ZWd5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1BhcmFtZXRlclZhbHVlU3RyYXRlZ3kuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFyYW1ldGVyVmFsdWVTdHJhdGVneS5qYXZhCmluZGV4IDViNTNhNGEuLmUzYzhkN2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFyYW1ldGVyVmFsdWVTdHJhdGVneS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93UGFyYW1ldGVyVmFsdWVTdHJhdGVneS5qYXZhCkBAIC0yNiw2ICsyNiw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0V29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZVN0cmF0ZWd5KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd1BhcmFtZXRlclZhbHVlU3RyYXRlZ3kgZXh0ZW5kcyBFT2JqZWN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9Xb3JrZmxvd1VuaXRPZldvcmsuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93VW5pdE9mV29yay5qYXZhCmluZGV4IDk1YzVmOTkuLjQ4ZDhlM2IgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93VW5pdE9mV29yay5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L1dvcmtmbG93VW5pdE9mV29yay5qYXZhCkBAIC0zNCw2ICszNCw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UjZ2V0V29ya2Zsb3dVbml0T2ZXb3JrKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd1VuaXRPZldvcmsgZXh0ZW5kcyBXb3JrZmxvd0NvbXBvbmVudCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0NvbXBvbmVudEltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dDb21wb25lbnRJbXBsLmphdmEKaW5kZXggYTg0ZjZjYi4uZGFiYTY2MSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0NvbXBvbmVudEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9uZW50SW1wbC5qYXZhCkBAIC00OCw3ICs0OCwxMCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV29ya2Zsb3dDb21wb25lbnRJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0NvbXBvbmVudCB7DQogCS8qKg0KIAkgKiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgJ3tAbGluayAjZ2V0TmFtZSgpIDxlbT5OYW1lPC9lbT59JyBhdHRyaWJ1dGUuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0NvbXBvbmVudE1pbmltYWxpc3RJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9uZW50TWluaW1hbGlzdEltcGwuamF2YQppbmRleCA2NDY4ZGJmLi5lYjlmNTRjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9uZW50TWluaW1hbGlzdEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9uZW50TWluaW1hbGlzdEltcGwuamF2YQpAQCAtMjYsNiArMjYsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0NvbXBvbmVudE1pbmltYWxpc3RJbXBsIGV4dGVuZHMgV29ya2Zsb3dDb21wb25lbnRJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dDb21wb25lbnRNaW5pbWFsaXN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9uZW50UHJveHlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9uZW50UHJveHlJbXBsLmphdmEKaW5kZXggZGY4YTg4OS4uMTQ2MDAzYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0NvbXBvbmVudFByb3h5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dDb21wb25lbnRQcm94eUltcGwuamF2YQpAQCAtMzYsNiArMzYsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0NvbXBvbmVudFByb3h5SW1wbCBleHRlbmRzIFdvcmtmbG93Q29tcG9uZW50SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93Q29tcG9uZW50UHJveHkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnRJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93Q29tcG9zaXRlQ29tcG9uZW50SW1wbC5qYXZhCmluZGV4IGQzZDBiMTcuLjkwMGUxZTggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnRJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0NvbXBvc2l0ZUNvbXBvbmVudEltcGwuamF2YQpAQCAtNTUsNiArNTUsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0NvbXBvc2l0ZUNvbXBvbmVudEltcGwgZXh0ZW5kcyBXb3JrZmxvd0NvbXBvbmVudEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0NvbXBvc2l0ZUNvbXBvbmVudCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0ZhY3RvcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93RmFjdG9yeUltcGwuamF2YQppbmRleCA3NzQxMDI4Li5kOGI4ZDc1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93RmFjdG9yeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93RmFjdG9yeUltcGwuamF2YQpAQCAtMjksNiArMjksOCBAQAogICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPkZhY3Rvcnk8L2I+Lg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dGYWN0b3J5SW1wbCBleHRlbmRzIEVGYWN0b3J5SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93RmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0ltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dJbXBsLmphdmEKaW5kZXggZGVkODlkYi4uY2U1MDE4NyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0ltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93SW1wbC5qYXZhCkBAIC00Niw2ICs0Niw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93SW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya2Zsb3cgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dQYWNrYWdlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhY2thZ2VJbXBsLmphdmEKaW5kZXggNGQ3Yzg0Yi4uZjhkNmI3MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhY2thZ2VJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhY2thZ2VJbXBsLmphdmEKQEAgLTU1LDYgKzU1LDggQEAKICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5QYWNrYWdlPC9iPi4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93UGFja2FnZUltcGwgZXh0ZW5kcyBFUGFja2FnZUltcGwgaW1wbGVtZW50cyBXb3JrZmxvd1BhY2thZ2Ugew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dQYXJhbWV0ZXJDb25uZWN0aW9uSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlckNvbm5lY3Rpb25JbXBsLmphdmEKaW5kZXggNjc1YjRkOC4uMzZjMzBlNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlckNvbm5lY3Rpb25JbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlckNvbm5lY3Rpb25JbXBsLmphdmEKQEAgLTQ2LDYgKzQ2LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dQYXJhbWV0ZXJDb25uZWN0aW9uSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dQYXJhbWV0ZXJDb25uZWN0aW9uIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVySW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlckltcGwuamF2YQppbmRleCAxYWIxY2M3Li44MzFjNzg2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVySW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dQYXJhbWV0ZXJJbXBsLmphdmEKQEAgLTQ4LDYgKzQ4LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dQYXJhbWV0ZXJJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd1BhcmFtZXRlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlclNpbXBsZVZhbHVlU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVyU2ltcGxlVmFsdWVTdHJhdGVneUltcGwuamF2YQppbmRleCA2NDUwOTg0Li4xYjQ2MzFiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVyU2ltcGxlVmFsdWVTdHJhdGVneUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVyU2ltcGxlVmFsdWVTdHJhdGVneUltcGwuamF2YQpAQCAtMjYsNiArMjYsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd1BhcmFtZXRlclNpbXBsZVZhbHVlU3RyYXRlZ3lJbXBsIGV4dGVuZHMgV29ya2Zsb3dQYXJhbWV0ZXJWYWx1ZVN0cmF0ZWd5SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93UGFyYW1ldGVyU2ltcGxlVmFsdWVTdHJhdGVneSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlclZhbHVlU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVyVmFsdWVTdHJhdGVneUltcGwuamF2YQppbmRleCA5YTkxYjllLi5mNDJmODY5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVyVmFsdWVTdHJhdGVneUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9pbXBsL1dvcmtmbG93UGFyYW1ldGVyVmFsdWVTdHJhdGVneUltcGwuamF2YQpAQCAtMzEsNiArMzEsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd1BhcmFtZXRlclZhbHVlU3RyYXRlZ3lJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd1BhcmFtZXRlclZhbHVlU3RyYXRlZ3kgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L2ltcGwvV29ya2Zsb3dVbml0T2ZXb3JrSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1VuaXRPZldvcmtJbXBsLmphdmEKaW5kZXggYjA1MDc2ZS4uNGE4MzcxOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1VuaXRPZldvcmtJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd1VuaXRPZldvcmtJbXBsLmphdmEKQEAgLTQxLDYgKzQxLDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dVbml0T2ZXb3JrSW1wbCBleHRlbmRzIFdvcmtmbG93Q29tcG9uZW50SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93VW5pdE9mV29yayB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9PcmNoZXN0cmF0aW9uRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9PcmNoZXN0cmF0aW9uRmFjdG9yeS5qYXZhCmluZGV4IDdjNzM0ZTYuLjk1MGEwNWQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vT3JjaGVzdHJhdGlvbkZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL09yY2hlc3RyYXRpb25GYWN0b3J5LmphdmEKQEAgLTIyLDYgKzIyLDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93Lm9yY2hlc3RyYXRpb24uT3JjaGVzdHJhdGlvblBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBPcmNoZXN0cmF0aW9uRmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL09yY2hlc3RyYXRpb25QYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL09yY2hlc3RyYXRpb25QYWNrYWdlLmphdmEKaW5kZXggODMxMWZmNy4uZjgzZTRiYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9PcmNoZXN0cmF0aW9uUGFja2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vT3JjaGVzdHJhdGlvblBhY2thZ2UuamF2YQpAQCAtMzEsNiArMzEsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cub3JjaGVzdHJhdGlvbi5PcmNoZXN0cmF0aW9uRmFjdG9yeQ0KICAqIEBtb2RlbCBraW5kPSJwYWNrYWdlIg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIE9yY2hlc3RyYXRpb25QYWNrYWdlIGV4dGVuZHMgRVBhY2thZ2Ugew0KQEAgLTMxMCw3ICszMTIsMTAgQEAKIAkgKiA8L3VsPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KKwkgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorCSAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAJICovDQorCUBEZXByZWNhdGVkDQogCWludGVyZmFjZSBMaXRlcmFscyB7DQogCQkvKioNCiAJCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cub3JjaGVzdHJhdGlvbi5pbXBsLldvcmtmbG93U2VyaWFsT3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbCA8ZW0+V29ya2Zsb3cgU2VyaWFsIE9yY2hlc3RyYXRpb24gU3RyYXRlZ3k8L2VtPn0nIGNsYXNzLg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3kuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3kuamF2YQppbmRleCAyNWNjYmQ5Li4yZThiMWJhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL1dvcmtmbG93Q29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd0NvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhCkBAIC0yOCw2ICsyOCw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5vcmNoZXN0cmF0aW9uLk9yY2hlc3RyYXRpb25QYWNrYWdlI2dldFdvcmtmbG93Q29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5KCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd0NvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneSBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3kuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3kuamF2YQppbmRleCAxMDkyNWMyLi41MTNhODMzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL1dvcmtmbG93Q29tcG9zaXRlT3JjaGVzdHJhdGlvblN0cmF0ZWd5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd0NvbXBvc2l0ZU9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhCkBAIC0yOCw2ICsyOCw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5vcmNoZXN0cmF0aW9uLk9yY2hlc3RyYXRpb25QYWNrYWdlI2dldFdvcmtmbG93Q29tcG9zaXRlT3JjaGVzdHJhdGlvblN0cmF0ZWd5KCkNCiAgKiBAbW9kZWwgYWJzdHJhY3Q9InRydWUiDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBFT2JqZWN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL1dvcmtmbG93Q29uZGl0aW9uYWxDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3kuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb25kaXRpb25hbENvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhCmluZGV4IGIzNzllNmUuLjE4OGNhNjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb25kaXRpb25hbENvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dDb25kaXRpb25hbENvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhCkBAIC0zNCw2ICszNCw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5vcmNoZXN0cmF0aW9uLk9yY2hlc3RyYXRpb25QYWNrYWdlI2dldFdvcmtmbG93Q29uZGl0aW9uYWxDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3koKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93Q29uZGl0aW9uYWxDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBXb3JrZmxvd0NvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZS5qYXZhCmluZGV4IDIzNjdmMjUuLmQ5MmRkYTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dFeGVjdXRpb25QcmVkaWNhdGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL1dvcmtmbG93RXhlY3V0aW9uUHJlZGljYXRlLmphdmEKQEAgLTI4LDYgKzI4LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93Lm9yY2hlc3RyYXRpb24uT3JjaGVzdHJhdGlvblBhY2thZ2UjZ2V0V29ya2Zsb3dFeGVjdXRpb25QcmVkaWNhdGUoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZSBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dQYXJhbGxlbE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd1BhcmFsbGVsT3JjaGVzdHJhdGlvblN0cmF0ZWd5LmphdmEKaW5kZXggNzQ0M2VkYy4uZDk3OWU3OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd1BhcmFsbGVsT3JjaGVzdHJhdGlvblN0cmF0ZWd5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd1BhcmFsbGVsT3JjaGVzdHJhdGlvblN0cmF0ZWd5LmphdmEKQEAgLTI2LDYgKzI2LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93Lm9yY2hlc3RyYXRpb24uT3JjaGVzdHJhdGlvblBhY2thZ2UjZ2V0V29ya2Zsb3dQYXJhbGxlbE9yY2hlc3RyYXRpb25TdHJhdGVneSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dQYXJhbGxlbE9yY2hlc3RyYXRpb25TdHJhdGVneSBleHRlbmRzIFdvcmtmbG93Q29tcG9zaXRlT3JjaGVzdHJhdGlvblN0cmF0ZWd5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL1dvcmtmbG93UmVydW5QcmVkaWNhdGUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dSZXJ1blByZWRpY2F0ZS5qYXZhCmluZGV4IDUxODE4ZGYuLmJlZjg0MTMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dSZXJ1blByZWRpY2F0ZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dSZXJ1blByZWRpY2F0ZS5qYXZhCkBAIC0yNiw2ICsyNiw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5vcmNoZXN0cmF0aW9uLk9yY2hlc3RyYXRpb25QYWNrYWdlI2dldFdvcmtmbG93UmVydW5QcmVkaWNhdGUoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93UmVydW5QcmVkaWNhdGUgZXh0ZW5kcyBXb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd1NlcmlhbE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9Xb3JrZmxvd1NlcmlhbE9yY2hlc3RyYXRpb25TdHJhdGVneS5qYXZhCmluZGV4IDc4YWRmNjkuLjZhNThkN2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vV29ya2Zsb3dTZXJpYWxPcmNoZXN0cmF0aW9uU3RyYXRlZ3kuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL1dvcmtmbG93U2VyaWFsT3JjaGVzdHJhdGlvblN0cmF0ZWd5LmphdmEKQEAgLTI2LDYgKzI2LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93Lm9yY2hlc3RyYXRpb24uT3JjaGVzdHJhdGlvblBhY2thZ2UjZ2V0V29ya2Zsb3dTZXJpYWxPcmNoZXN0cmF0aW9uU3RyYXRlZ3koKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93U2VyaWFsT3JjaGVzdHJhdGlvblN0cmF0ZWd5IGV4dGVuZHMgV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3kgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9PcmNoZXN0cmF0aW9uRmFjdG9yeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9PcmNoZXN0cmF0aW9uRmFjdG9yeUltcGwuamF2YQppbmRleCBlMTJkZjE0Li5iYjY5MThmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvT3JjaGVzdHJhdGlvbkZhY3RvcnlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL09yY2hlc3RyYXRpb25GYWN0b3J5SW1wbC5qYXZhCkBAIC0yOCw2ICsyOCw4IEBACiAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+RmFjdG9yeTwvYj4uDQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBPcmNoZXN0cmF0aW9uRmFjdG9yeUltcGwgZXh0ZW5kcyBFRmFjdG9yeUltcGwgaW1wbGVtZW50cyBPcmNoZXN0cmF0aW9uRmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL09yY2hlc3RyYXRpb25QYWNrYWdlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL09yY2hlc3RyYXRpb25QYWNrYWdlSW1wbC5qYXZhCmluZGV4IDlmZjc4YzIuLmZlM2ExYmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9PcmNoZXN0cmF0aW9uUGFja2FnZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvT3JjaGVzdHJhdGlvblBhY2thZ2VJbXBsLmphdmEKQEAgLTQ4LDYgKzQ4LDggQEAKICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5QYWNrYWdlPC9iPi4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIE9yY2hlc3RyYXRpb25QYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIE9yY2hlc3RyYXRpb25QYWNrYWdlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEKaW5kZXggZTY1NjAyYi4uYzIwMDA3NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93Q29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd0NvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YQpAQCAtMzIsNiArMzIsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0NvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93Q29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEKaW5kZXggM2Y1NGY5OS4uNDI0YTRhZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93Q29tcG9zaXRlT3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd0NvbXBvc2l0ZU9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YQpAQCAtMzIsNyArMzIsMTAgQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGFic3RyYWN0IGNsYXNzIFdvcmtmbG93Q29tcG9zaXRlT3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dDb21wb3NpdGVPcmNoZXN0cmF0aW9uU3RyYXRlZ3kgew0KIAkvKioNCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dDb25kaXRpb25hbENvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd0NvbmRpdGlvbmFsQ29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbC5qYXZhCmluZGV4IDIwMjIyYTQuLmE4MjE2MjkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd0NvbmRpdGlvbmFsQ29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd0NvbmRpdGlvbmFsQ29tcG9uZW50T3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbC5qYXZhCkBAIC00MSw2ICs0MSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93Q29uZGl0aW9uYWxDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsIGV4dGVuZHMgV29ya2Zsb3dDb21wb25lbnRPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dDb25kaXRpb25hbENvbXBvbmVudE9yY2hlc3RyYXRpb25TdHJhdGVneSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93RXhlY3V0aW9uUHJlZGljYXRlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93RXhlY3V0aW9uUHJlZGljYXRlSW1wbC5qYXZhCmluZGV4IGJhMzk4ODYuLmNlMTgxNjggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dFeGVjdXRpb25QcmVkaWNhdGVJbXBsLmphdmEKQEAgLTMyLDcgKzMyLDEwIEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBXb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93RXhlY3V0aW9uUHJlZGljYXRlIHsNCiAJLyoqDQogCSAqIDwhLS0gYmVnaW4tdXNlci1kb2MgLS0+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93UGFyYWxsZWxPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dQYXJhbGxlbE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YQppbmRleCA3YmMwN2ZkLi4wNTI0Zjk3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dQYXJhbGxlbE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dQYXJhbGxlbE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YQpAQCAtMjYsNiArMjYsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd1BhcmFsbGVsT3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbCBleHRlbmRzIFdvcmtmbG93Q29tcG9zaXRlT3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93UGFyYWxsZWxPcmNoZXN0cmF0aW9uU3RyYXRlZ3kgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd1JlcnVuUHJlZGljYXRlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93UmVydW5QcmVkaWNhdGVJbXBsLmphdmEKaW5kZXggM2EwOWZkOS4uZjE1NDVjYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93UmVydW5QcmVkaWNhdGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93UmVydW5QcmVkaWNhdGVJbXBsLmphdmEKQEAgLTI2LDYgKzI2LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dSZXJ1blByZWRpY2F0ZUltcGwgZXh0ZW5kcyBXb3JrZmxvd0V4ZWN1dGlvblByZWRpY2F0ZUltcGwgaW1wbGVtZW50cyBXb3JrZmxvd1JlcnVuUHJlZGljYXRlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dTZXJpYWxPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL2ltcGwvV29ya2Zsb3dTZXJpYWxPcmNoZXN0cmF0aW9uU3RyYXRlZ3lJbXBsLmphdmEKaW5kZXggOWVmOThhZS4uOTRhZTE3OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi9pbXBsL1dvcmtmbG93U2VyaWFsT3JjaGVzdHJhdGlvblN0cmF0ZWd5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vaW1wbC9Xb3JrZmxvd1NlcmlhbE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwuamF2YQpAQCAtMjYsNiArMjYsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd1NlcmlhbE9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwgZXh0ZW5kcyBXb3JrZmxvd0NvbXBvc2l0ZU9yY2hlc3RyYXRpb25TdHJhdGVneUltcGwgaW1wbGVtZW50cyBXb3JrZmxvd1NlcmlhbE9yY2hlc3RyYXRpb25TdHJhdGVneSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25BZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25BZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IDA3OGIyNjAuLjNjODQzOTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vdXRpbC9PcmNoZXN0cmF0aW9uQWRhcHRlckZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvbkFkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTI5LDYgKzI5LDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93Lm9yY2hlc3RyYXRpb24uT3JjaGVzdHJhdGlvblBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIE9yY2hlc3RyYXRpb25BZGFwdGVyRmFjdG9yeSBleHRlbmRzIEFkYXB0ZXJGYWN0b3J5SW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25SZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvblJlc291cmNlRmFjdG9yeUltcGwuamF2YQppbmRleCBlZDE0MTI3Li5lMmUxMDE1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvblJlc291cmNlRmFjdG9yeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvblJlc291cmNlRmFjdG9yeUltcGwuamF2YQpAQCAtMjcsNiArMjcsOCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cub3JjaGVzdHJhdGlvbi51dGlsLk9yY2hlc3RyYXRpb25SZXNvdXJjZUltcGwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIE9yY2hlc3RyYXRpb25SZXNvdXJjZUZhY3RvcnlJbXBsIGV4dGVuZHMgUmVzb3VyY2VGYWN0b3J5SW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25SZXNvdXJjZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vdXRpbC9PcmNoZXN0cmF0aW9uUmVzb3VyY2VJbXBsLmphdmEKaW5kZXggNGNjZDk0NC4uMGM4Nzc4OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25SZXNvdXJjZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvblJlc291cmNlSW1wbC5qYXZhCkBAIC0yMyw2ICsyMyw4IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5vcmNoZXN0cmF0aW9uLnV0aWwuT3JjaGVzdHJhdGlvblJlc291cmNlRmFjdG9yeUltcGwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIE9yY2hlc3RyYXRpb25SZXNvdXJjZUltcGwgZXh0ZW5kcyBYTUxSZXNvdXJjZUltcGwgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vdXRpbC9PcmNoZXN0cmF0aW9uU3dpdGNoLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvblN3aXRjaC5qYXZhCmluZGV4IGYwMmVhYTEuLjVjZDdhMGEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vdXRpbC9PcmNoZXN0cmF0aW9uU3dpdGNoLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25Td2l0Y2guamF2YQpAQCAtMzIsNiArMzIsOCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cub3JjaGVzdHJhdGlvbi5PcmNoZXN0cmF0aW9uUGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgT3JjaGVzdHJhdGlvblN3aXRjaDxUPiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25YTUxQcm9jZXNzb3IuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L29yY2hlc3RyYXRpb24vdXRpbC9PcmNoZXN0cmF0aW9uWE1MUHJvY2Vzc29yLmphdmEKaW5kZXggZjAzZjJjNy4uMjkwMDljZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvb3JjaGVzdHJhdGlvbi91dGlsL09yY2hlc3RyYXRpb25YTUxQcm9jZXNzb3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9vcmNoZXN0cmF0aW9uL3V0aWwvT3JjaGVzdHJhdGlvblhNTFByb2Nlc3Nvci5qYXZhCkBAIC0yOCw2ICsyOCw4IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgT3JjaGVzdHJhdGlvblhNTFByb2Nlc3NvciBleHRlbmRzIFhNTFByb2Nlc3NvciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9SdW50aW1lRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9SdW50aW1lRmFjdG9yeS5qYXZhCmluZGV4IDg1NWY5ZjIuLjE2NWQ2YmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvUnVudGltZUZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1J1bnRpbWVGYWN0b3J5LmphdmEKQEAgLTIyLDYgKzIyLDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBSdW50aW1lRmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1J1bnRpbWVQYWNrYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1J1bnRpbWVQYWNrYWdlLmphdmEKaW5kZXggZTg2Y2MwZi4uZWZlNTM1ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9SdW50aW1lUGFja2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvUnVudGltZVBhY2thZ2UuamF2YQpAQCAtMzYsNiArMzYsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lRmFjdG9yeQ0KICAqIEBtb2RlbCBraW5kPSJwYWNrYWdlIg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFJ1bnRpbWVQYWNrYWdlIGV4dGVuZHMgRVBhY2thZ2Ugew0KQEAgLTExMDQsNyArMTEwNiwxMCBAQAogCSAqIDwvdWw+DQogCSAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KIAkgKiBAZ2VuZXJhdGVkDQorCSAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisJICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KIAkgKi8NCisJQERlcHJlY2F0ZWQNCiAJaW50ZXJmYWNlIExpdGVyYWxzIHsNCiAJCS8qKg0KIAkJICogVGhlIG1ldGEgb2JqZWN0IGxpdGVyYWwgZm9yIHRoZSAne0BsaW5rIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGwuV29ya2Zsb3dDb250ZXh0SW1wbCA8ZW0+V29ya2Zsb3cgQ29udGV4dDwvZW0+fScgY2xhc3MuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0NvbnRleHQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dDb250ZXh0LmphdmEKaW5kZXggMjQ5ZWQ1Zi4uNzU5ZmUzZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0NvbnRleHQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93Q29udGV4dC5qYXZhCkBAIC00Myw2ICs0Myw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlI2dldFdvcmtmbG93Q29udGV4dCgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dDb250ZXh0IGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0VuZ2luZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0VuZ2luZS5qYXZhCmluZGV4IGFjYTk3NWEuLjAxNDYwYmEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dFbmdpbmUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93RW5naW5lLmphdmEKQEAgLTM2LDYgKzM2LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UjZ2V0V29ya2Zsb3dFbmdpbmUoKQ0KICAqIEBtb2RlbCBzdXBlclR5cGVzPSJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd1J1bm5hYmxlIg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93RW5naW5lIGV4dGVuZHMgRU9iamVjdCwgUnVubmFibGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dFbmdpbmVQcm94eS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0VuZ2luZVByb3h5LmphdmEKaW5kZXggM2QyYzBlZC4uODRlZTM3OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0VuZ2luZVByb3h5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0VuZ2luZVByb3h5LmphdmEKQEAgLTI5LDYgKzI5LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UjZ2V0V29ya2Zsb3dFbmdpbmVQcm94eSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dFbmdpbmVQcm94eSBleHRlbmRzIFdvcmtmbG93RW5naW5lIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nLmphdmEKaW5kZXggZGVlY2JjOS4uMWQ4ZTMwZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0xvZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dMb2cuamF2YQpAQCAtMzksNiArMzksOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZSNnZXRXb3JrZmxvd0xvZygpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dMb2cgZXh0ZW5kcyBFT2JqZWN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nRW50cnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dMb2dFbnRyeS5qYXZhCmluZGV4IGEyM2FlMDYuLjIzOWJiNTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dMb2dFbnRyeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dMb2dFbnRyeS5qYXZhCkBAIC0zMiw2ICszMiw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlI2dldFdvcmtmbG93TG9nRW50cnkoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93TG9nRW50cnkgZXh0ZW5kcyBFT2JqZWN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nRW50cnlUeXBlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nRW50cnlUeXBlLmphdmEKaW5kZXggNzM5OTdjZC4uYmNjZmExZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0xvZ0VudHJ5VHlwZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dMb2dFbnRyeVR5cGUuamF2YQpAQCAtMjcsNiArMjcsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZSNnZXRXb3JrZmxvd0xvZ0VudHJ5VHlwZSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBlbnVtIFdvcmtmbG93TG9nRW50cnlUeXBlIGltcGxlbWVudHMgRW51bWVyYXRvciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd0xvZ1Jlc2V0dGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nUmVzZXR0ZXIuamF2YQppbmRleCBmOWZjMTQyLi5hYTAzZmIwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nUmVzZXR0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93TG9nUmVzZXR0ZXIuamF2YQpAQCAtMzIsNiArMzIsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZSNnZXRXb3JrZmxvd0xvZ1Jlc2V0dGVyKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd0xvZ1Jlc2V0dGVyIGV4dGVuZHMgSVdvcmtmbG93VmlzaXRvciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd1J1bm5lci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd1J1bm5lci5qYXZhCmluZGV4IDcyZDdhYzMuLmE0Y2IxYzggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dSdW5uZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93UnVubmVyLmphdmEKQEAgLTMzLDYgKzMzLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UjZ2V0V29ya2Zsb3dSdW5uZXIoKQ0KICAqIEBtb2RlbCBzdXBlclR5cGVzPSJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd1J1bm5hYmxlIg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93UnVubmVyIGV4dGVuZHMgRU9iamVjdCwgUnVubmFibGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dTdGF0ZVJlc2V0dGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL1dvcmtmbG93U3RhdGVSZXNldHRlci5qYXZhCmluZGV4IGI4ZjlhYmQuLjY4M2VjZjUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dTdGF0ZVJlc2V0dGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd1N0YXRlUmVzZXR0ZXIuamF2YQpAQCAtMzIsNiArMzIsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZSNnZXRXb3JrZmxvd1N0YXRlUmVzZXR0ZXIoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93U3RhdGVSZXNldHRlciBleHRlbmRzIElXb3JrZmxvd1Zpc2l0b3Igew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvV29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd1N0YXRlUmVzb2x1dGlvblN0cmF0ZWd5LmphdmEKaW5kZXggYjEzZjgyZi4uZGUzZWI1YyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd1N0YXRlUmVzb2x1dGlvblN0cmF0ZWd5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9Xb3JrZmxvd1N0YXRlUmVzb2x1dGlvblN0cmF0ZWd5LmphdmEKQEAgLTI4LDYgKzI4LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UjZ2V0V29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneSBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9SdW50aW1lRmFjdG9yeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9SdW50aW1lRmFjdG9yeUltcGwuamF2YQppbmRleCBjZGIwYzU4Li40OGM3YTgxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvUnVudGltZUZhY3RvcnlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1J1bnRpbWVGYWN0b3J5SW1wbC5qYXZhCkBAIC00Myw2ICs0Myw4IEBACiAgKiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+RmFjdG9yeTwvYj4uDQogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBSdW50aW1lRmFjdG9yeUltcGwgZXh0ZW5kcyBFRmFjdG9yeUltcGwgaW1wbGVtZW50cyBSdW50aW1lRmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1J1bnRpbWVQYWNrYWdlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1J1bnRpbWVQYWNrYWdlSW1wbC5qYXZhCmluZGV4IGQ5NDU2MDYuLmE0YjBjYjMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9SdW50aW1lUGFja2FnZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvUnVudGltZVBhY2thZ2VJbXBsLmphdmEKQEAgLTU4LDYgKzU4LDggQEAKICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5QYWNrYWdlPC9iPi4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFJ1bnRpbWVQYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIFJ1bnRpbWVQYWNrYWdlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dDb250ZXh0SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93Q29udGV4dEltcGwuamF2YQppbmRleCAzYmEyNzM5Li44NDdhYTcxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dDb250ZXh0SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd0NvbnRleHRJbXBsLmphdmEKQEAgLTE3LDI4ICsxNywyMSBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uQ2hhaW47DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTWFwOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVTdHJ1Y3R1cmFsRmVhdHVyZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUudXRpbC5FY29yZUVNYXA7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkludGVybmFsRUxpc3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd0NvbXBvbmVudDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFyYW1ldGVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuV29ya2Zsb3dDb250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0xvZzsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuV29ya2Zsb3dMb2dFbnRyeVR5cGU7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLldvcmtmbG93U3RhdGU7DQogDQogLyoqDQpAQCAtNTcsNiArNTAsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0NvbnRleHRJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0NvbnRleHQgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd0VuZ2luZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd0VuZ2luZUltcGwuamF2YQppbmRleCBjOTlmODJlLi5jZDQyZjI5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dFbmdpbmVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93RW5naW5lSW1wbC5qYXZhCkBAIC0xNywxOSArMTcsMTMgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbkNoYWluOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5JbnRlcm5hbEVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUudXRpbC5FT2JqZWN0Q29udGFpbm1lbnRFTGlzdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuSW50ZXJuYWxFTGlzdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93Q29tcG9uZW50Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuV29ya2Zsb3dDb250ZXh0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0VuZ2luZTsNCkBAIC00OCw2ICs0Miw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93RW5naW5lSW1wbCBleHRlbmRzIFdvcmtmbG93UnVubmFibGVJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dFbmdpbmUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd0VuZ2luZVByb3h5SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93RW5naW5lUHJveHlJbXBsLmphdmEKaW5kZXggZTQwMmIzOC4uOTFiOWQ5YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93RW5naW5lUHJveHlJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93RW5naW5lUHJveHlJbXBsLmphdmEKQEAgLTE0LDEyICsxNCw5IEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0VuZ2luZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuV29ya2Zsb3dFbmdpbmVQcm94eTsNCkBAIC0zNiw2ICszMyw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93RW5naW5lUHJveHlJbXBsIGV4dGVuZHMgV29ya2Zsb3dFbmdpbmVJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dFbmdpbmVQcm94eSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93TG9nRW50cnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dFbnRyeUltcGwuamF2YQppbmRleCBhYWU1YTU5Li5iZTM5NDVhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dFbnRyeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dFbnRyeUltcGwuamF2YQpAQCAtMTQsMTIgKzE0LDkgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0xvZ0VudHJ5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0xvZ0VudHJ5VHlwZTsNCkBAIC0zOCw2ICszNSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93TG9nRW50cnlJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0xvZ0VudHJ5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dJbXBsLmphdmEKaW5kZXggMmYyMmI0MC4uNTE3MmM5ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93TG9nSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd0xvZ0ltcGwuamF2YQpAQCAtMTcsMTkgKzE3LDE0IEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb25DaGFpbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLkVMaXN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuSW50ZXJuYWxFT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FTm90aWZpY2F0aW9uSW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS51dGlsLkJhc2ljRmVhdHVyZU1hcDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuRmVhdHVyZU1hcDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnV0aWwuSW50ZXJuYWxFTGlzdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLldvcmtmbG93TG9nOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0xvZ0VudHJ5Ow0KQEAgLTUyLDYgKzQ3LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dMb2dJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0xvZyB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93TG9nTWFwSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93TG9nTWFwSW1wbC5qYXZhCmluZGV4IDA3NTA4ODYuLmE2YzdiZGQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd0xvZ01hcEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dNYXBJbXBsLmphdmEKQEAgLTE1LDE5ICsxNSwxNCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uQ2hhaW47DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5CYXNpY0VNYXA7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTWFwOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dDb21wb25lbnQ7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0xvZzsNCiANCkBAIC00NCw2ICszOSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93TG9nTWFwSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgQmFzaWNFTWFwLkVudHJ5PFdvcmtmbG93Q29tcG9uZW50LFdvcmtmbG93TG9nPiB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93TG9nUmVzZXR0ZXJJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dSZXNldHRlckltcGwuamF2YQppbmRleCAxZGJhMzkyLi5lNTJkZTgyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dSZXNldHRlckltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dMb2dSZXNldHRlckltcGwuamF2YQpAQCAtMTQsMTYgKzE0LDEyIEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1VuaXRPZldvcms7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0NvbnRleHQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLldvcmtmbG93TG9nUmVzZXR0ZXI7DQpAQCAtNDAsNiArMzYsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0xvZ1Jlc2V0dGVySW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dMb2dSZXNldHRlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93UGFyYW1ldGVyTWFwSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93UGFyYW1ldGVyTWFwSW1wbC5qYXZhCmluZGV4IGQ5N2U0NWQuLmU1MDU5ZDIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1BhcmFtZXRlck1hcEltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dQYXJhbWV0ZXJNYXBJbXBsLmphdmEKQEAgLTE1LDE5ICsxNSwxNCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpY2F0aW9uQ2hhaW47DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5CYXNpY0VNYXA7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5FTWFwOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dQYXJhbWV0ZXI7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIA0KIC8qKg0KQEAgLTQzLDYgKzM4LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dQYXJhbWV0ZXJNYXBJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBCYXNpY0VNYXAuRW50cnk8V29ya2Zsb3dQYXJhbWV0ZXIsRU9iamVjdD4gew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1J1bm5hYmxlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93UnVubmFibGVJbXBsLmphdmEKaW5kZXggMzNkM2I5Mi4uYzQxYTFiZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93UnVubmFibGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93UnVubmFibGVJbXBsLmphdmEKQEAgLTE0LDkgKzE0LDcgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIA0KIC8qKg0KQEAgLTI3LDYgKzI1LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dSdW5uYWJsZUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIFJ1bm5hYmxlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dSdW5uZXJJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dSdW5uZXJJbXBsLmphdmEKaW5kZXggODMzYzA3OS4uYTZiYzM0ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93UnVubmVySW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1J1bm5lckltcGwuamF2YQpAQCAtMTQsMTQgKzE0LDEwIEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd0NvbXBvbmVudDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLldvcmtmbG93Q29udGV4dDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuV29ya2Zsb3dSdW5uZXI7DQpAQCAtMzksNiArMzUsOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd1J1bm5lckltcGwgZXh0ZW5kcyBXb3JrZmxvd1J1bm5hYmxlSW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93UnVubmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dTdGF0ZU1hcEltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1N0YXRlTWFwSW1wbC5qYXZhCmluZGV4IGU2MjBiN2MuLmJmMmQ0OTggMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1N0YXRlTWFwSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1N0YXRlTWFwSW1wbC5qYXZhCkBAIC0xNSwyMSArMTUsMTUgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmljYXRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbkNoYWluOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuQmFzaWNFTWFwOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRU1hcDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5JbnRlcm5hbEVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVOb3RpZmljYXRpb25JbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FT2JqZWN0SW1wbDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93Q29tcG9uZW50Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5SdW50aW1lUGFja2FnZTsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuV29ya2Zsb3dTdGF0ZTsNCiANCiAvKioNCkBAIC00NSw2ICszOSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93U3RhdGVNYXBJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBCYXNpY0VNYXAuRW50cnk8V29ya2Zsb3dDb21wb25lbnQsV29ya2Zsb3dTdGF0ZT4gew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1N0YXRlUmVzZXR0ZXJJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dTdGF0ZVJlc2V0dGVySW1wbC5qYXZhCmluZGV4IDA1ZjhhY2QuLjJlZGNiMGEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvaW1wbC9Xb3JrZmxvd1N0YXRlUmVzZXR0ZXJJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93U3RhdGVSZXNldHRlckltcGwuamF2YQpAQCAtMTQsMTYgKzE0LDEyIEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5Lk5vdGlmaWNhdGlvbjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkludGVybmFsRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU5vdGlmaWNhdGlvbkltcGw7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1VuaXRPZldvcms7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0NvbnRleHQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLldvcmtmbG93U3RhdGVSZXNldHRlcjsNCkBAIC00MCw2ICszNiw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93U3RhdGVSZXNldHRlckltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93U3RhdGVSZXNldHRlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9pbXBsL1dvcmtmbG93U3RhdGVSZXNvbHV0aW9uU3RyYXRlZ3lJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneUltcGwuamF2YQppbmRleCBkNTU4ZjA5Li5lNGIzYWFmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL2ltcGwvV29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneUltcGwuamF2YQpAQCAtMTQsMTUgKzE0LDExIEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5pbXBsLkVPYmplY3RJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dDb21wb3NpdGVDb21wb25lbnQ7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLlJ1bnRpbWVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5Xb3JrZmxvd0NvbnRleHQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLldvcmtmbG93U3RhdGVSZXNvbHV0aW9uU3RyYXRlZ3k7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLldvcmtmbG93U3RhdGU7DQogDQogLyoqDQpAQCAtMzMsNiArMjksOCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd1N0YXRlUmVzb2x1dGlvblN0cmF0ZWd5SW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dTdGF0ZVJlc29sdXRpb25TdHJhdGVneSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9TdGF0ZUZhY3RvcnkuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvU3RhdGVGYWN0b3J5LmphdmEKaW5kZXggNTE0NzJkMy4uNDg1OWQyZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9TdGF0ZUZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1N0YXRlRmFjdG9yeS5qYXZhCkBAIC0yMiw2ICsyMiw4IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLlN0YXRlUGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFN0YXRlRmFjdG9yeSBleHRlbmRzIEVGYWN0b3J5IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1N0YXRlUGFja2FnZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9TdGF0ZVBhY2thZ2UuamF2YQppbmRleCAwMzBmNWM2Li5kMzQzOGUwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1N0YXRlUGFja2FnZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvU3RhdGVQYWNrYWdlLmphdmEKQEAgLTMwLDYgKzMwLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVGYWN0b3J5DQogICogQG1vZGVsIGtpbmQ9InBhY2thZ2UiDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgU3RhdGVQYWNrYWdlIGV4dGVuZHMgRVBhY2thZ2Ugew0KQEAgLTI4OSw3ICsyOTEsMTAgQEAKIAkgKiA8L3VsPg0KIAkgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAJICogQGdlbmVyYXRlZA0KKwkgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorCSAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAJICovDQorCUBEZXByZWNhdGVkDQogCWludGVyZmFjZSBMaXRlcmFscyB7DQogCQkvKioNCiAJCSAqIFRoZSBtZXRhIG9iamVjdCBsaXRlcmFsIGZvciB0aGUgJ3tAbGluayBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5pbXBsLldvcmtmbG93U3RhdGVJbXBsIDxlbT5Xb3JrZmxvdyBTdGF0ZTwvZW0+fScgY2xhc3MuDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd0RvbmVTdGF0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd0RvbmVTdGF0ZS5qYXZhCmluZGV4IGEyNzVmY2YuLmYwMjM0MmQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dEb25lU3RhdGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93RG9uZVN0YXRlLmphdmEKQEAgLTIzLDYgKzIzLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlI2dldFdvcmtmbG93RG9uZVN0YXRlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd0RvbmVTdGF0ZSBleHRlbmRzIFdvcmtmbG93U3RhdGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dFcnJvclN0YXRlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93RXJyb3JTdGF0ZS5qYXZhCmluZGV4IGU3MzhhOGUuLmJiYzVlM2MgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dFcnJvclN0YXRlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd0Vycm9yU3RhdGUuamF2YQpAQCAtMjMsNiArMjMsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2UjZ2V0V29ya2Zsb3dFcnJvclN0YXRlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd0Vycm9yU3RhdGUgZXh0ZW5kcyBXb3JrZmxvd0RvbmVTdGF0ZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd0ZhaWxlZFN0YXRlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93RmFpbGVkU3RhdGUuamF2YQppbmRleCBjYjJjZDdhLi4zYjNlMDgyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93RmFpbGVkU3RhdGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93RmFpbGVkU3RhdGUuamF2YQpAQCAtMjMsNiArMjMsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2UjZ2V0V29ya2Zsb3dGYWlsZWRTdGF0ZSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBpbnRlcmZhY2UgV29ya2Zsb3dGYWlsZWRTdGF0ZSBleHRlbmRzIFdvcmtmbG93RG9uZVN0YXRlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93SWRsZVN0YXRlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93SWRsZVN0YXRlLmphdmEKaW5kZXggM2Y3YzRkYi4uNTYyZTYwNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd0lkbGVTdGF0ZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dJZGxlU3RhdGUuamF2YQpAQCAtMjMsNiArMjMsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2UjZ2V0V29ya2Zsb3dJZGxlU3RhdGUoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93SWRsZVN0YXRlIGV4dGVuZHMgV29ya2Zsb3dTdGF0ZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1J1bm5pbmdTdGF0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1J1bm5pbmdTdGF0ZS5qYXZhCmluZGV4IGQ2ZGQzOTcuLjA3OTQ3OWYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dSdW5uaW5nU3RhdGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93UnVubmluZ1N0YXRlLmphdmEKQEAgLTIzLDYgKzIzLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlI2dldFdvcmtmbG93UnVubmluZ1N0YXRlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd1J1bm5pbmdTdGF0ZSBleHRlbmRzIFdvcmtmbG93U3RhdGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dTdGF0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1N0YXRlLmphdmEKaW5kZXggYjNmZWQzNi4uNzIwYTBkMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1N0YXRlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1N0YXRlLmphdmEKQEAgLTI0LDYgKzI0LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlI2dldFdvcmtmbG93U3RhdGUoKQ0KICAqIEBtb2RlbCBhYnN0cmFjdD0idHJ1ZSINCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd1N0YXRlIGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1N1Y2Nlc3NTdGF0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9Xb3JrZmxvd1N1Y2Nlc3NTdGF0ZS5qYXZhCmluZGV4IGFmYWViMDAuLjJkYWFiNjEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvV29ya2Zsb3dTdWNjZXNzU3RhdGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL1dvcmtmbG93U3VjY2Vzc1N0YXRlLmphdmEKQEAgLTIzLDYgKzIzLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlI2dldFdvcmtmbG93U3VjY2Vzc1N0YXRlKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd1N1Y2Nlc3NTdGF0ZSBleHRlbmRzIFdvcmtmbG93RG9uZVN0YXRlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvU3RhdGVGYWN0b3J5SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1N0YXRlRmFjdG9yeUltcGwuamF2YQppbmRleCAyNGZiYTMwLi42ODhjODczIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvU3RhdGVGYWN0b3J5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9TdGF0ZUZhY3RvcnlJbXBsLmphdmEKQEAgLTE2LDExICsxNiw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZTsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRUZhY3RvcnlJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucGx1Z2luLkVjb3JlUGx1Z2luOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS4qOw0KIA0KIC8qKg0KQEAgLTI4LDYgKzI1LDggQEAKICAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBtb2RlbCA8Yj5GYWN0b3J5PC9iPi4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFN0YXRlRmFjdG9yeUltcGwgZXh0ZW5kcyBFRmFjdG9yeUltcGwgaW1wbGVtZW50cyBTdGF0ZUZhY3Rvcnkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9TdGF0ZVBhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvU3RhdGVQYWNrYWdlSW1wbC5qYXZhCmluZGV4IDg0OTY4Y2UuLjNmOGZiMDUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9TdGF0ZVBhY2thZ2VJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1N0YXRlUGFja2FnZUltcGwuamF2YQpAQCAtMTYsMjEgKzE2LDEzIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRWNvcmVQYWNrYWdlOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuaW1wbC5FUGFja2FnZUltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2U7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5pbXBsLldvcmtmbG93UGFja2FnZUltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5vcmNoZXN0cmF0aW9uLk9yY2hlc3RyYXRpb25QYWNrYWdlOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cub3JjaGVzdHJhdGlvbi5pbXBsLk9yY2hlc3RyYXRpb25QYWNrYWdlSW1wbDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2U7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLmltcGwuUnVudGltZVBhY2thZ2VJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZUZhY3Rvcnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLlN0YXRlUGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuV29ya2Zsb3dEb25lU3RhdGU7DQpAQCAtNDYsNiArMzgsOCBAQAogICogQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPlBhY2thZ2U8L2I+Lg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgU3RhdGVQYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIFN0YXRlUGFja2FnZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93RG9uZVN0YXRlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93RG9uZVN0YXRlSW1wbC5qYXZhCmluZGV4IGI4ZTgzNjguLjJmOWJiYTEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd0RvbmVTdGF0ZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dEb25lU3RhdGVJbXBsLmphdmEKQEAgLTE0LDcgKzE0LDYgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5Xb3JrZmxvd0RvbmVTdGF0ZTsNCiANCkBAIC0yNiw2ICsyNSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93RG9uZVN0YXRlSW1wbCBleHRlbmRzIFdvcmtmbG93U3RhdGVJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dEb25lU3RhdGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd0Vycm9yU3RhdGVJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dFcnJvclN0YXRlSW1wbC5qYXZhCmluZGV4IDNjNDg3OGIuLjJjNGZjZjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd0Vycm9yU3RhdGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93RXJyb3JTdGF0ZUltcGwuamF2YQpAQCAtMTQsNyArMTQsNiBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLldvcmtmbG93RXJyb3JTdGF0ZTsNCiANCkBAIC0yNiw2ICsyNSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93RXJyb3JTdGF0ZUltcGwgZXh0ZW5kcyBXb3JrZmxvd0RvbmVTdGF0ZUltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0Vycm9yU3RhdGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd0ZhaWxlZFN0YXRlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93RmFpbGVkU3RhdGVJbXBsLmphdmEKaW5kZXggYTMxMjM4My4uODZiODk3OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93RmFpbGVkU3RhdGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93RmFpbGVkU3RhdGVJbXBsLmphdmEKQEAgLTE0LDcgKzE0LDYgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5Xb3JrZmxvd0ZhaWxlZFN0YXRlOw0KIA0KQEAgLTI2LDYgKzI1LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dGYWlsZWRTdGF0ZUltcGwgZXh0ZW5kcyBXb3JrZmxvd0RvbmVTdGF0ZUltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0ZhaWxlZFN0YXRlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dJZGxlU3RhdGVJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dJZGxlU3RhdGVJbXBsLmphdmEKaW5kZXggMzkwNTVkNS4uYzJlMTc1YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93SWRsZVN0YXRlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd0lkbGVTdGF0ZUltcGwuamF2YQpAQCAtMTQsNyArMTQsNiBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLldvcmtmbG93SWRsZVN0YXRlOw0KIA0KQEAgLTI2LDYgKzI1LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dJZGxlU3RhdGVJbXBsIGV4dGVuZHMgV29ya2Zsb3dTdGF0ZUltcGwgaW1wbGVtZW50cyBXb3JrZmxvd0lkbGVTdGF0ZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93UnVubmluZ1N0YXRlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93UnVubmluZ1N0YXRlSW1wbC5qYXZhCmluZGV4IDdhZTY2ZWUuLjNiYzk4OGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd1J1bm5pbmdTdGF0ZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dSdW5uaW5nU3RhdGVJbXBsLmphdmEKQEAgLTE0LDcgKzE0LDYgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5Xb3JrZmxvd1J1bm5pbmdTdGF0ZTsNCiANCkBAIC0yNiw2ICsyNSw4IEBACiAgKiA8L3A+DQogICoNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93UnVubmluZ1N0YXRlSW1wbCBleHRlbmRzIFdvcmtmbG93U3RhdGVJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dSdW5uaW5nU3RhdGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd1N0YXRlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93U3RhdGVJbXBsLmphdmEKaW5kZXggYjQyZDZjNy4uYTc1YmJkZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93U3RhdGVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93U3RhdGVJbXBsLmphdmEKQEAgLTE0LDkgKzE0LDcgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuaW1wbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmltcGwuRU9iamVjdEltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLlN0YXRlUGFja2FnZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuV29ya2Zsb3dTdGF0ZTsNCiANCkBAIC0yOCw3ICsyNiwxMCBAQAogICogPC9wPg0KICAqDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgV29ya2Zsb3dTdGF0ZUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIFdvcmtmbG93U3RhdGUgew0KIAkvKioNCiAJICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dTdWNjZXNzU3RhdGVJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL2ltcGwvV29ya2Zsb3dTdWNjZXNzU3RhdGVJbXBsLmphdmEKaW5kZXggNmQ4OTYyYi4uNTkyZmE2ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS9pbXBsL1dvcmtmbG93U3VjY2Vzc1N0YXRlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvaW1wbC9Xb3JrZmxvd1N1Y2Nlc3NTdGF0ZUltcGwuamF2YQpAQCAtMTQsNyArMTQsNiBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5pbXBsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLldvcmtmbG93U3VjY2Vzc1N0YXRlOw0KIA0KQEAgLTI2LDYgKzI1LDggQEAKICAqIDwvcD4NCiAgKg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dTdWNjZXNzU3RhdGVJbXBsIGV4dGVuZHMgV29ya2Zsb3dEb25lU3RhdGVJbXBsIGltcGxlbWVudHMgV29ya2Zsb3dTdWNjZXNzU3RhdGUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvdXRpbC9TdGF0ZUFkYXB0ZXJGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL3V0aWwvU3RhdGVBZGFwdGVyRmFjdG9yeS5qYXZhCmluZGV4IGE5MjM1MjIuLmI0MjQ0MGMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvdXRpbC9TdGF0ZUFkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS9zdGF0ZS91dGlsL1N0YXRlQWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMTUsMTEgKzE1LDggQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5Ob3RpZmllcjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuaW1wbC5BZGFwdGVyRmFjdG9yeUltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS4qOw0KIA0KIC8qKg0KQEAgLTI5LDYgKzI2LDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuc3RhdGUuU3RhdGVQYWNrYWdlDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBTdGF0ZUFkYXB0ZXJGYWN0b3J5IGV4dGVuZHMgQWRhcHRlckZhY3RvcnlJbXBsIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3N0YXRlL3V0aWwvU3RhdGVTd2l0Y2guamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvdXRpbC9TdGF0ZVN3aXRjaC5qYXZhCmluZGV4IGVmMTRiZDYuLmFmYTRmNmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvdXRpbC9TdGF0ZVN3aXRjaC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvc3RhdGUvdXRpbC9TdGF0ZVN3aXRjaC5qYXZhCkBAIC0xNyw3ICsxNyw2IEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVDbGFzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5ydW50aW1lLnN0YXRlLio7DQogDQogLyoqDQpAQCAtMzIsNiArMzEsOCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5TdGF0ZVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFN0YXRlU3dpdGNoPFQ+IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZUFkYXB0ZXJGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZUFkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggMjJhYTgxYi4uYjgwMjVmMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS91dGlsL1J1bnRpbWVBZGFwdGVyRmFjdG9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvdXRpbC9SdW50aW1lQWRhcHRlckZhY3RvcnkuamF2YQpAQCAtMTcsMTcgKzE3LDEyIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuQWRhcHRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpZXI7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5LmltcGwuQWRhcHRlckZhY3RvcnlJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LklXb3JrZmxvd1Zpc2l0b3I7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd0NvbXBvbmVudDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFyYW1ldGVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS4qOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5Xb3JrZmxvd1N0YXRlOw0KIA0KIC8qKg0KQEAgLTM3LDYgKzMyLDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFJ1bnRpbWVBZGFwdGVyRmFjdG9yeSBleHRlbmRzIEFkYXB0ZXJGYWN0b3J5SW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS91dGlsL1J1bnRpbWVSZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZVJlc291cmNlRmFjdG9yeUltcGwuamF2YQppbmRleCBlMGNkMGMwLi4zNjM0YWMxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZVJlc291cmNlRmFjdG9yeUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZVJlc291cmNlRmFjdG9yeUltcGwuamF2YQpAQCAtMTQsMTEgKzE0LDggQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUudXRpbDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSTsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZUZhY3RvcnlJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pLlhNTFJlc291cmNlOw0KIA0KIC8qKg0KQEAgLTI3LDYgKzI0LDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUudXRpbC5SdW50aW1lUmVzb3VyY2VJbXBsDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBSdW50aW1lUmVzb3VyY2VGYWN0b3J5SW1wbCBleHRlbmRzIFJlc291cmNlRmFjdG9yeUltcGwgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvdXRpbC9SdW50aW1lUmVzb3VyY2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZVJlc291cmNlSW1wbC5qYXZhCmluZGV4IGU3MDRkNTYuLjMwYmY1ZjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvdXRpbC9SdW50aW1lUmVzb3VyY2VJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS91dGlsL1J1bnRpbWVSZXNvdXJjZUltcGwuamF2YQpAQCAtMTQsNyArMTQsNiBAQAogcGFja2FnZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS51dGlsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuVVJJOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUueG1pLmltcGwuWE1MUmVzb3VyY2VJbXBsOw0KIA0KIC8qKg0KQEAgLTIzLDYgKzIyLDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUudXRpbC5SdW50aW1lUmVzb3VyY2VGYWN0b3J5SW1wbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgUnVudGltZVJlc291cmNlSW1wbCBleHRlbmRzIFhNTFJlc291cmNlSW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS91dGlsL1J1bnRpbWVTd2l0Y2guamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvdXRpbC9SdW50aW1lU3dpdGNoLmphdmEKaW5kZXggYWViOTkyMy4uMjFlYzI1MSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS91dGlsL1J1bnRpbWVTd2l0Y2guamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZVN3aXRjaC5qYXZhCkBAIC0xOCwxMyArMTgsMTAgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRUNsYXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LklXb3JrZmxvd1Zpc2l0b3I7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd0NvbXBvbmVudDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFyYW1ldGVyOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS4qOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cucnVudGltZS5zdGF0ZS5Xb3JrZmxvd1N0YXRlOw0KIA0KIC8qKg0KQEAgLTM5LDYgKzM2LDggQEAKICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFJ1bnRpbWVTd2l0Y2g8VD4gew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvdXRpbC9SdW50aW1lWE1MUHJvY2Vzc29yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy9ydW50aW1lL3V0aWwvUnVudGltZVhNTFByb2Nlc3Nvci5qYXZhCmluZGV4IDRmZTcwZjMuLmI4MGE1ZjEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3J1bnRpbWUvdXRpbC9SdW50aW1lWE1MUHJvY2Vzc29yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvcnVudGltZS91dGlsL1J1bnRpbWVYTUxQcm9jZXNzb3IuamF2YQpAQCAtMTYsMTEgKzE2LDggQEAKIGltcG9ydCBqYXZhLnV0aWwuTWFwOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVBhY2thZ2U7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaS51dGlsLlhNTFByb2Nlc3NvcjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnJ1bnRpbWUuUnVudGltZVBhY2thZ2U7DQogDQogLyoqDQpAQCAtMjgsNiArMjUsOCBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4NCiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFJ1bnRpbWVYTUxQcm9jZXNzb3IgZXh0ZW5kcyBYTUxQcm9jZXNzb3Igew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3V0aWwvV29ya2Zsb3dBZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd0FkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggOGI0ZTU2YS4uYTM5NmNhMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd0FkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd0FkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTE1LDExICsxNSw4IEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuQWRhcHRlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuTm90aWZpZXI7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24ubm90aWZ5LmltcGwuQWRhcHRlckZhY3RvcnlJbXBsOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93Lio7DQogDQogLyoqDQpAQCAtMjksNiArMjYsOCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuV29ya2Zsb3dQYWNrYWdlDQogICogQGdlbmVyYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cubXdlLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTY5DQogICovDQogQERlcHJlY2F0ZWQKIHB1YmxpYyBjbGFzcyBXb3JrZmxvd0FkYXB0ZXJGYWN0b3J5IGV4dGVuZHMgQWRhcHRlckZhY3RvcnlJbXBsIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93UmVzb3VyY2VGYWN0b3J5SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd1Jlc291cmNlRmFjdG9yeUltcGwuamF2YQppbmRleCBhMzc2NDUwLi5mNDVjMDIxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93UmVzb3VyY2VGYWN0b3J5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3V0aWwvV29ya2Zsb3dSZXNvdXJjZUZhY3RvcnlJbXBsLmphdmEKQEAgLTE0LDExICsxNCw4IEBACiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy51dGlsOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuVVJJOw0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsLlJlc291cmNlRmFjdG9yeUltcGw7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWkuWE1MUmVzb3VyY2U7DQogDQogLyoqDQpAQCAtMjcsNiArMjQsOCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cudXRpbC5Xb3JrZmxvd1Jlc291cmNlSW1wbA0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dSZXNvdXJjZUZhY3RvcnlJbXBsIGV4dGVuZHMgUmVzb3VyY2VGYWN0b3J5SW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd1Jlc291cmNlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd1Jlc291cmNlSW1wbC5qYXZhCmluZGV4IGYzZWRiNzguLmM0YmQzODAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3V0aWwvV29ya2Zsb3dSZXNvdXJjZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93UmVzb3VyY2VJbXBsLmphdmEKQEAgLTE0LDcgKzE0LDYgQEAKIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LnV0aWw7DQogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS54bWkuaW1wbC5YTUxSZXNvdXJjZUltcGw7DQogDQogLyoqDQpAQCAtMjMsNiArMjIsOCBAQAogICogPCEtLSBlbmQtdXNlci1kb2MgLS0+DQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cudXRpbC5Xb3JrZmxvd1Jlc291cmNlRmFjdG9yeUltcGwNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93UmVzb3VyY2VJbXBsIGV4dGVuZHMgWE1MUmVzb3VyY2VJbXBsIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93U3dpdGNoLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93U3dpdGNoLmphdmEKaW5kZXggOGQ2YzU2NC4uZTlmZDExYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd1N3aXRjaC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3V0aWwvV29ya2Zsb3dTd2l0Y2guamF2YQpAQCAtMTcsNyArMTcsNiBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FQ2xhc3M7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KLQ0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uud29ya2Zsb3cuKjsNCiANCiAvKioNCkBAIC0zMiw2ICszMSw4IEBACiAgKiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS53b3JrZmxvdy5Xb3JrZmxvd1BhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5td2UsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NjkNCiAgKi8NCiBARGVwcmVjYXRlZAogcHVibGljIGNsYXNzIFdvcmtmbG93U3dpdGNoPFQ+IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93WE1MUHJvY2Vzc29yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5td2Uvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L213ZS93b3JrZmxvdy91dGlsL1dvcmtmbG93WE1MUHJvY2Vzc29yLmphdmEKaW5kZXggZThmYTdkZi4uODE3NDlmYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9td2Uvd29ya2Zsb3cvdXRpbC9Xb3JrZmxvd1hNTFByb2Nlc3Nvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm13ZS9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbXdlL3dvcmtmbG93L3V0aWwvV29ya2Zsb3dYTUxQcm9jZXNzb3IuamF2YQpAQCAtMTYsMTEgKzE2LDggQEAKIGltcG9ydCBqYXZhLnV0aWwuTWFwOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVBhY2thZ2U7DQotDQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaS51dGlsLlhNTFByb2Nlc3NvcjsNCi0NCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubXdlLndvcmtmbG93LldvcmtmbG93UGFja2FnZTsNCiANCiAvKioNCkBAIC0yOCw2ICsyNSw4IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPg0KICAqIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIEBnZW5lcmF0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93Lm13ZSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk2OQ0KICAqLw0KIEBEZXByZWNhdGVkCiBwdWJsaWMgY2xhc3MgV29ya2Zsb3dYTUxQcm9jZXNzb3IgZXh0ZW5kcyBYTUxQcm9jZXNzb3Igew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZWVjYjAzMS4uNjA2ZWZiZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93O3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5BY3RpdmF0b3IKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3BsdWdpbi5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvcGx1Z2luLnByb3BlcnRpZXMKaW5kZXggMmEwOWE0YS4uNWJjZmRmYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvcGx1Z2luLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvcGx1Z2luLnByb3BlcnRpZXMKQEAgLTksNyArOSw3IEBACiAjICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjIE5MU19NRVNTQUdFRk9STUFUX1ZBUg0KLXBsdWdpbk5hbWU9TW9EaXNjbyBXb3JrZmxvdyAoSW5jdWJhdGlvbikNCitwbHVnaW5OYW1lPU1vRGlzY28gV29ya2Zsb3cgKERlcHJlY2F0ZWQsIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cpIChJbmN1YmF0aW9uKQ0KIHByb3ZpZGVyTmFtZT1FY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiANCiBsYXVuY2hDb25maWd1cmF0aW9uVHlwZS5uYW1lID0gTW9EaXNjbyBXb3JrZmxvdw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9BYnN0cmFjdERyaXZlckNvcmUuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9BYnN0cmFjdERyaXZlckNvcmUuamF2YQppbmRleCAxMzQxZDIyLi4zNDhiNTBjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvQWJzdHJhY3REcml2ZXJDb3JlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L0Fic3RyYWN0RHJpdmVyQ29yZS5qYXZhCkBAIC0yNyw3ICsyNywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5pbXBsLk1vZGlzY293b3JrZmxvd0ZhY3RvcnlJbXBsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuaW1wbC5Xb3JrUGFyYW1ldGVyRW50cnlWYWx1ZUltcGw7DQogDQotLyoqIEBkZXByZWNhdGVkIG5vIERyaXZlciBuZWVkZWQgYW55bW9yZSAqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIG5vIERyaXZlciBuZWVkZWQgYW55bW9yZSwgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3REcml2ZXJDb3JlIGltcGxlbWVudHMgRHJpdmVyIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvQWN0aXZhdG9yLmphdmEKaW5kZXggMGU1ZDA2OC4uODZhNTc4OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9BY3RpdmF0b3IuamF2YQpAQCAtMTQsNyArMTQsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS51aS5wbHVnaW4uQWJzdHJhY3RVSVBsdWdpbjsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7DQogDQotLyoqIEBkZXByZWNhdGVkICovDQorLyoqDQorICogQGRlcHJlY2F0ZWQgLCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvQ29uc3RhbnRzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvQ29uc3RhbnRzLmphdmEKaW5kZXggNDYzMzhkYS4uOWEwZGFjOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L0NvbnN0YW50cy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Db25zdGFudHMuamF2YQpAQCAtMTEsNyArMTEsMTAgQEAKICAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3c7DQogDQotLyoqIEBkZXByZWNhdGVkICovDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgZmluYWwgY2xhc3MgQ29uc3RhbnRzIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvRHJpdmVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvRHJpdmVyLmphdmEKaW5kZXggYjJhMDRiNS4uOTkwM2FjNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L0RyaXZlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Ecml2ZXIuamF2YQpAQCAtMTksNyArMTksOCBAQAogICogQVBJIHRvIGRlZmluZSB0aGUgZHJpdmVyIGNvcmUNCiAgKiANCiAgKiBAYXV0aG9yIE5pY29sYXMgUGF5bmVhdQ0KLSAqIEBkZXByZWNhdGVkIG5vIERyaXZlciBuZWVkZWQgYW55bW9yZQ0KKyAqIEBkZXByZWNhdGVkIG5vIERyaXZlciBuZWVkZWQgYW55bW9yZSwgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIERyaXZlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L01lc3NhZ2VzLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvTWVzc2FnZXMuamF2YQppbmRleCAzMWU3NjM4Li5kYjkxNWM1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvTWVzc2FnZXMuamF2YQpAQCAtMTIsNyArMTIsMTAgQEAKIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5vc2dpLnV0aWwuTkxTOw0KIA0KLS8qKiBAZGVwcmVjYXRlZCAqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm1lc3NhZ2VzIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Xb3JrZmxvd0NvbnRyb2xsZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Xb3JrZmxvd0NvbnRyb2xsZXIuamF2YQppbmRleCA4YWVmYmVhLi40MTc4YTdiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dDb250cm9sbGVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L1dvcmtmbG93Q29udHJvbGxlci5qYXZhCkBAIC0xMyw3ICsxMywxMCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuSUxhdW5jaENvbmZpZ3VyYXRpb247DQogDQotLyoqIEBkZXByZWNhdGVkICovDQorLyoqDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93Q29udHJvbGxlciB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L1dvcmtmbG93RXhlY3V0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dFeGVjdXRpb24uamF2YQppbmRleCAyNTQzOTQ1Li4wNTRmYzhlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dFeGVjdXRpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dFeGVjdXRpb24uamF2YQpAQCAtMTksNyArMTksOCBAQAogICogQVBJIHRvIGxhdW5jaCB0aGUgd29ya2Zsb3cNCiAgKiANCiAgKiBAYXV0aG9yIE5pY29sYXMgUGF5bmVhdQ0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93RXhlY3V0aW9uIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dNb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L1dvcmtmbG93TW9kZWwuamF2YQppbmRleCA4MzEyOGE5Li43ODExMjZhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dNb2RlbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Xb3JrZmxvd01vZGVsLmphdmEKQEAgLTIyLDcgKzIyLDggQEAKICAqIEFQSSB0byBkZWZpbmUgdGhlIHdvcmtmbG93IGNvcmUNCiAgKiANCiAgKiBAYXV0aG9yIE5pY29sYXMgUGF5bmVhdQ0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93TW9kZWwgZXh0ZW5kcyBXb3JrZmxvdywgV29ya2Zsb3dNb2RlbEV2ZW50c1N1YnNjcmliZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L1dvcmtmbG93TW9kZWxFdmVudHMuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Xb3JrZmxvd01vZGVsRXZlbnRzLmphdmEKaW5kZXggMDI2MjQ2ZS4uM2MxZDAwMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L1dvcmtmbG93TW9kZWxFdmVudHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dNb2RlbEV2ZW50cy5qYXZhCkBAIC0xMiw3ICsxMiwxMCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5FbGVtZW50Ow0KIA0KLS8qKiBAZGVwcmVjYXRlZCAqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd01vZGVsRXZlbnRzIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dNb2RlbEV2ZW50c1N1YnNjcmliZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L1dvcmtmbG93TW9kZWxFdmVudHNTdWJzY3JpYmUuamF2YQppbmRleCA0ZDUwNWJhLi4xYTg0MjhhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvV29ya2Zsb3dNb2RlbEV2ZW50c1N1YnNjcmliZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9Xb3JrZmxvd01vZGVsRXZlbnRzU3Vic2NyaWJlLmphdmEKQEAgLTEwLDcgKzEwLDEwIEBACiAgKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Ow0KIA0KLS8qKiBAZGVwcmVjYXRlZCAqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBXb3JrZmxvd01vZGVsRXZlbnRzU3Vic2NyaWJlIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvYWN0aW9ucy9Nb0Rpc2NvV29ya2Zsb3dEZWxlZ2F0ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L2FjdGlvbnMvTW9EaXNjb1dvcmtmbG93RGVsZWdhdGUuamF2YQppbmRleCBiZThhMWM3Li5iYWE3NDVkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvYWN0aW9ucy9Nb0Rpc2NvV29ya2Zsb3dEZWxlZ2F0ZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9hY3Rpb25zL01vRGlzY29Xb3JrZmxvd0RlbGVnYXRlLmphdmEKQEAgLTIzLDcgKzIzLDggQEAKICAqIFRoaXMgY2xhc3MgZGVmaW5lcyB0aGUgZGVsZWdhdGUgdG8gbGF1bmNoIGEgY29uZmlndXJhdGlvbiBvZiBNb0Rpc2NvV29ya2Zsb3cgdHlwZS4NCiAgKiANCiAgKiBAYXV0aG9yIE5pY29sYXMgUGF5bmVhdQ0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9EaXNjb1dvcmtmbG93RGVsZWdhdGUgaW1wbGVtZW50cyBJTGF1bmNoQ29uZmlndXJhdGlvbkRlbGVnYXRlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvZ2VuZXJhdG9yL0dlbmVyYXRlRGlzY292ZXJlci5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L2dlbmVyYXRvci9HZW5lcmF0ZURpc2NvdmVyZXIuamF2YQppbmRleCBkMjRmMmQzLi42OGY3ZGFlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvZ2VuZXJhdG9yL0dlbmVyYXRlRGlzY292ZXJlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9nZW5lcmF0b3IvR2VuZXJhdGVEaXNjb3ZlcmVyLmphdmEKQEAgLTMzLDcgKzMzLDggQEAKICAqIEVudHJ5IHBvaW50IG9mIHRoZSAnR2VuZXJhdGVEaXNjb3ZlcmVyJyBnZW5lcmF0aW9uIG1vZHVsZS4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkIE5PVA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgR2VuZXJhdGVEaXNjb3ZlcmVyIGV4dGVuZHMgQWJzdHJhY3RBY2NlbGVvR2VuZXJhdG9yIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0RpcmVjdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9EaXJlY3Rpb24uamF2YQppbmRleCBkMWViNjU4Li45YTIwYzcyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0RpcmVjdGlvbi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvRGlyZWN0aW9uLmphdmEKQEAgLTIzLDggKzIzLDEwIEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5Nb2Rpc2Nvd29ya2Zsb3dQYWNrYWdlI2dldERpcmVjdGlvbigpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgZW51bSBEaXJlY3Rpb24gaW1wbGVtZW50cyBFbnVtZXJhdG9yIHsNCiAJLyoqDQogCSAqIFRoZSAnPGVtPjxiPkluPC9iPjwvZW0+JyBsaXRlcmFsIG9iamVjdC4gPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4gPCEtLSBlbmQtdXNlci1kb2MgLS0+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9FbGVtZW50LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0VsZW1lbnQuamF2YQppbmRleCBjNzcxZWNmLi5kZDY1ZDE2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0VsZW1lbnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0VsZW1lbnQuamF2YQpAQCAtMjgsNyArMjgsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRFbGVtZW50KCkNCiAgKiBAbW9kZWwgYWJzdHJhY3Q9InRydWUiDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEVsZW1lbnQgZXh0ZW5kcyBFT2JqZWN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0V4cG9ydEluZm9zLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L0V4cG9ydEluZm9zLmphdmEKaW5kZXggNTJkMGQxOC4uZTZlOGY1MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9FeHBvcnRJbmZvcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvRXhwb3J0SW5mb3MuamF2YQpAQCAtMzAsNyArMzAsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRFeHBvcnRJbmZvcygpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIEV4cG9ydEluZm9zIGV4dGVuZHMgRU9iamVjdCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Nb2Rpc2Nvd29ya2Zsb3dGYWN0b3J5LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L01vZGlzY293b3JrZmxvd0ZhY3RvcnkuamF2YQppbmRleCA3YWIwZmEzLi44NjRhN2ZjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L01vZGlzY293b3JrZmxvd0ZhY3RvcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L01vZGlzY293b3JrZmxvd0ZhY3RvcnkuamF2YQpAQCAtMTgsNyArMTgsOCBAQAogICogDQogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZQ0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBNb2Rpc2Nvd29ya2Zsb3dGYWN0b3J5IGV4dGVuZHMgRUZhY3Rvcnkgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvTW9kaXNjb3dvcmtmbG93UGFja2FnZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Nb2Rpc2Nvd29ya2Zsb3dQYWNrYWdlLmphdmEKaW5kZXggNWU1ZGYyYy4uZjQ2ZTM1ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Nb2Rpc2Nvd29ya2Zsb3dQYWNrYWdlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Nb2Rpc2Nvd29ya2Zsb3dQYWNrYWdlLmphdmEKQEAgLTMwLDcgKzMwLDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubW9kaXNjb3dvcmtmbG93Lk1vZGlzY293b3JrZmxvd0ZhY3RvcnkNCiAgKiBAbW9kZWwga2luZD0icGFja2FnZSINCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgTW9kaXNjb3dvcmtmbG93UGFja2FnZSBleHRlbmRzIEVQYWNrYWdlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmsuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29yay5qYXZhCmluZGV4IGUwOWVlMzguLjI5NDVjMTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29yay5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29yay5qYXZhCkBAIC0yNyw3ICsyNyw4IEBACiAgKiBAc2VlIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93Lm1vZGlzY293b3JrZmxvdy5Nb2Rpc2Nvd29ya2Zsb3dQYWNrYWdlI2dldFdvcmsoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBXb3JrIGV4dGVuZHMgRWxlbWVudCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtQYXJhbWV0ZXIuamF2YQppbmRleCA3Y2UyMDYxLi45NmNkMjgxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtQYXJhbWV0ZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtQYXJhbWV0ZXIuamF2YQpAQCAtMzUsNyArMzUsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRXb3JrUGFyYW1ldGVyKCkNCiAgKiBAbW9kZWwNCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBpbnRlcmZhY2UgV29ya1BhcmFtZXRlciBleHRlbmRzIEVPYmplY3Qgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlckJvb2xlYW5WYWx1ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyQm9vbGVhblZhbHVlLmphdmEKaW5kZXggMzdhM2YzMy4uOTQ3NmYxMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyQm9vbGVhblZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyQm9vbGVhblZhbHVlLmphdmEKQEAgLTI1LDcgKzI1LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubW9kaXNjb3dvcmtmbG93Lk1vZGlzY293b3JrZmxvd1BhY2thZ2UjZ2V0V29ya1BhcmFtZXRlckJvb2xlYW5WYWx1ZSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtQYXJhbWV0ZXJCb29sZWFuVmFsdWUgZXh0ZW5kcyBXb3JrUGFyYW1ldGVyVmFsdWUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlckludGVnZXJWYWx1ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVySW50ZWdlclZhbHVlLmphdmEKaW5kZXggNTVlZmMwZS4uMzk0MDlkOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVySW50ZWdlclZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVySW50ZWdlclZhbHVlLmphdmEKQEAgLTI1LDcgKzI1LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubW9kaXNjb3dvcmtmbG93Lk1vZGlzY293b3JrZmxvd1BhY2thZ2UjZ2V0V29ya1BhcmFtZXRlckludGVnZXJWYWx1ZSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtQYXJhbWV0ZXJJbnRlZ2VyVmFsdWUgZXh0ZW5kcyBXb3JrUGFyYW1ldGVyVmFsdWUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlck1hcFZhbHVlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtQYXJhbWV0ZXJNYXBWYWx1ZS5qYXZhCmluZGV4IGY1NWY2NTIuLjdlOGE0ZmYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlck1hcFZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyTWFwVmFsdWUuamF2YQpAQCAtMjcsNyArMjcsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRXb3JrUGFyYW1ldGVyTWFwVmFsdWUoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBXb3JrUGFyYW1ldGVyTWFwVmFsdWUgZXh0ZW5kcyBXb3JrUGFyYW1ldGVyVmFsdWUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlclN0cmluZ0xpc3RWYWx1ZS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyU3RyaW5nTGlzdFZhbHVlLmphdmEKaW5kZXggZTA1NDMwOS4uMWMyMTJiNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyU3RyaW5nTGlzdFZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyU3RyaW5nTGlzdFZhbHVlLmphdmEKQEAgLTI4LDcgKzI4LDggQEAKICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubW9kaXNjb3dvcmtmbG93Lk1vZGlzY293b3JrZmxvd1BhY2thZ2UjZ2V0V29ya1BhcmFtZXRlclN0cmluZ0xpc3RWYWx1ZSgpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtQYXJhbWV0ZXJTdHJpbmdMaXN0VmFsdWUgZXh0ZW5kcyBXb3JrUGFyYW1ldGVyVmFsdWUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlclN0cmluZ1ZhbHVlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtQYXJhbWV0ZXJTdHJpbmdWYWx1ZS5qYXZhCmluZGV4IDhiN2EzY2QuLmRiN2JjMDkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlclN0cmluZ1ZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyU3RyaW5nVmFsdWUuamF2YQpAQCAtMjUsNyArMjUsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRXb3JrUGFyYW1ldGVyU3RyaW5nVmFsdWUoKQ0KICAqIEBtb2RlbA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBXb3JrUGFyYW1ldGVyU3RyaW5nVmFsdWUgZXh0ZW5kcyBXb3JrUGFyYW1ldGVyVmFsdWUgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlclZhbHVlLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtQYXJhbWV0ZXJWYWx1ZS5qYXZhCmluZGV4IGZlYmY4MTMuLmIzNDhiY2IgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya1BhcmFtZXRlclZhbHVlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrUGFyYW1ldGVyVmFsdWUuamF2YQpAQCAtMjAsNyArMjAsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRXb3JrUGFyYW1ldGVyVmFsdWUoKQ0KICAqIEBtb2RlbCBpbnRlcmZhY2U9InRydWUiIGFic3RyYWN0PSJ0cnVlIg0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGludGVyZmFjZSBXb3JrUGFyYW1ldGVyVmFsdWUgZXh0ZW5kcyBFT2JqZWN0IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtmbG93LmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L1dvcmtmbG93LmphdmEKaW5kZXggNGRiZWRlZC4uNzhjNjFmYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9Xb3JrZmxvdy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvV29ya2Zsb3cuamF2YQpAQCAtMjcsNyArMjcsOCBAQAogICogQHNlZSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy5tb2Rpc2Nvd29ya2Zsb3cuTW9kaXNjb3dvcmtmbG93UGFja2FnZSNnZXRXb3JrZmxvdygpDQogICogQG1vZGVsDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgaW50ZXJmYWNlIFdvcmtmbG93IGV4dGVuZHMgRWxlbWVudCwgRXhwb3J0SW5mb3Mgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9FbGVtZW50SW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL0VsZW1lbnRJbXBsLmphdmEKaW5kZXggMzQ2NTk2NC4uNmZiOGVhZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL0VsZW1lbnRJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL0VsZW1lbnRJbXBsLmphdmEKQEAgLTM0LDcgKzM0LDggQEAKICAqIDwvcD4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBFbGVtZW50SW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgRWxlbWVudCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL0V4cG9ydEluZm9zSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL0V4cG9ydEluZm9zSW1wbC5qYXZhCmluZGV4IDNiOWE4MWIuLmJjYjFhOTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9FeHBvcnRJbmZvc0ltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvRXhwb3J0SW5mb3NJbXBsLmphdmEKQEAgLTMzLDcgKzMzLDggQEAKICAqIDwvcD4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBFeHBvcnRJbmZvc0ltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIEV4cG9ydEluZm9zIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvTW9kaXNjb3dvcmtmbG93RmFjdG9yeUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Nb2Rpc2Nvd29ya2Zsb3dGYWN0b3J5SW1wbC5qYXZhCmluZGV4IGIzNDcxNGYuLmI1NDQ2MTMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Nb2Rpc2Nvd29ya2Zsb3dGYWN0b3J5SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Nb2Rpc2Nvd29ya2Zsb3dGYWN0b3J5SW1wbC5qYXZhCkBAIC0zNiw3ICszNiw4IEBACiAgKiA8IS0tIGJlZ2luLXVzZXItZG9jIC0tPiBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgbW9kZWwgPGI+RmFjdG9yeTwvYj4uIDwhLS0gZW5kLXVzZXItZG9jIC0tPg0KICAqIA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1vZGlzY293b3JrZmxvd0ZhY3RvcnlJbXBsIGV4dGVuZHMgRUZhY3RvcnlJbXBsIGltcGxlbWVudHMgTW9kaXNjb3dvcmtmbG93RmFjdG9yeSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL01vZGlzY293b3JrZmxvd1BhY2thZ2VJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvTW9kaXNjb3dvcmtmbG93UGFja2FnZUltcGwuamF2YQppbmRleCBjZGNkODBkLi5kZTAyODVhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvTW9kaXNjb3dvcmtmbG93UGFja2FnZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvTW9kaXNjb3dvcmtmbG93UGFja2FnZUltcGwuamF2YQpAQCAtMzcsNyArMzcsOCBAQAogICogPCEtLSBiZWdpbi11c2VyLWRvYyAtLT4gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIG1vZGVsIDxiPlBhY2thZ2U8L2I+LiA8IS0tIGVuZC11c2VyLWRvYyAtLT4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2Rpc2Nvd29ya2Zsb3dQYWNrYWdlSW1wbCBleHRlbmRzIEVQYWNrYWdlSW1wbCBpbXBsZW1lbnRzIE1vZGlzY293b3JrZmxvd1BhY2thZ2Ugew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtJbXBsLmphdmEKaW5kZXggNjU1MjNkYy4uNjJkYjFmYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtJbXBsLmphdmEKQEAgLTM0LDcgKzM0LDggQEAKICAqIDwvcD4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBXb3JrSW1wbCBleHRlbmRzIEVsZW1lbnRJbXBsIGltcGxlbWVudHMgV29yayB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJCb29sZWFuVmFsdWVJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlckJvb2xlYW5WYWx1ZUltcGwuamF2YQppbmRleCA5OTUyZmU4Li4xMDhkN2FjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlckJvb2xlYW5WYWx1ZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlckJvb2xlYW5WYWx1ZUltcGwuamF2YQpAQCAtMzAsNyArMzAsOCBAQAogICogPC9wPg0KICAqIA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFdvcmtQYXJhbWV0ZXJCb29sZWFuVmFsdWVJbXBsIGV4dGVuZHMgRU9iamVjdEltcGwgaW1wbGVtZW50cyBXb3JrUGFyYW1ldGVyQm9vbGVhblZhbHVlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlckVudHJ5VmFsdWVJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlckVudHJ5VmFsdWVJbXBsLmphdmEKaW5kZXggZjgyOWI2Yy4uMDI4OWE2MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJFbnRyeVZhbHVlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVyRW50cnlWYWx1ZUltcGwuamF2YQpAQCAtMzgsNyArMzgsOCBAQAogICogPC9wPg0KICAqIA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFdvcmtQYXJhbWV0ZXJFbnRyeVZhbHVlSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlckltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVySW1wbC5qYXZhCmluZGV4IGE1NTJlY2EuLmYwNWQ3MTIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVySW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVySW1wbC5qYXZhCkBAIC00NCw3ICs0NCw4IEBACiAgKiA8L3A+DQogICogDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgV29ya1BhcmFtZXRlckltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzIFdvcmtQYXJhbWV0ZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVySW50ZWdlclZhbHVlSW1wbC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJJbnRlZ2VyVmFsdWVJbXBsLmphdmEKaW5kZXggMmYzYTczZC4uMDNkZWJlOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJJbnRlZ2VyVmFsdWVJbXBsLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJJbnRlZ2VyVmFsdWVJbXBsLmphdmEKQEAgLTMwLDcgKzMwLDggQEAKICAqIDwvcD4NCiAgKiANCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBXb3JrUGFyYW1ldGVySW50ZWdlclZhbHVlSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya1BhcmFtZXRlckludGVnZXJWYWx1ZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJNYXBWYWx1ZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVyTWFwVmFsdWVJbXBsLmphdmEKaW5kZXggODk3ZWIwOS4uNjdiMjI4ZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJNYXBWYWx1ZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlck1hcFZhbHVlSW1wbC5qYXZhCkBAIC0zNSw3ICszNSw4IEBACiAgKiA8L3A+DQogICogDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgV29ya1BhcmFtZXRlck1hcFZhbHVlSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya1BhcmFtZXRlck1hcFZhbHVlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlclN0cmluZ0xpc3RWYWx1ZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVyU3RyaW5nTGlzdFZhbHVlSW1wbC5qYXZhCmluZGV4IDczMzg5ZTQuLjhiNzFhYzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVyU3RyaW5nTGlzdFZhbHVlSW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVyU3RyaW5nTGlzdFZhbHVlSW1wbC5qYXZhCkBAIC0zMiw3ICszMiw4IEBACiAgKiA8L3A+DQogICogDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgV29ya1BhcmFtZXRlclN0cmluZ0xpc3RWYWx1ZUltcGwgZXh0ZW5kcyBFT2JqZWN0SW1wbCBpbXBsZW1lbnRzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJTdHJpbmdWYWx1ZUltcGwuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrUGFyYW1ldGVyU3RyaW5nVmFsdWVJbXBsLmphdmEKaW5kZXggYmIyOWNhNy4uYTNlMDE3NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtQYXJhbWV0ZXJTdHJpbmdWYWx1ZUltcGwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya1BhcmFtZXRlclN0cmluZ1ZhbHVlSW1wbC5qYXZhCkBAIC0zMCw3ICszMCw4IEBACiAgKiA8L3A+DQogICogDQogICogQGdlbmVyYXRlZA0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgV29ya1BhcmFtZXRlclN0cmluZ1ZhbHVlSW1wbCBleHRlbmRzIEVPYmplY3RJbXBsIGltcGxlbWVudHMgV29ya1BhcmFtZXRlclN0cmluZ1ZhbHVlIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya2Zsb3dJbXBsLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L2ltcGwvV29ya2Zsb3dJbXBsLmphdmEKaW5kZXggMTVmOTA4Zi4uZTJmZWU3OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy9pbXBsL1dvcmtmbG93SW1wbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvaW1wbC9Xb3JrZmxvd0ltcGwuamF2YQpAQCAtNDMsNyArNDMsOCBAQAogICogPC9wPg0KICAqIA0KICAqIEBnZW5lcmF0ZWQNCi0gKiBAZGVwcmVjYXRlZA0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3csIGNmDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTMzNzk0Mg0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFdvcmtmbG93SW1wbCBleHRlbmRzIEVsZW1lbnRJbXBsIGltcGxlbWVudHMgV29ya2Zsb3cgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvdXRpbC9Nb2Rpc2Nvd29ya2Zsb3dBZGFwdGVyRmFjdG9yeS5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy91dGlsL01vZGlzY293b3JrZmxvd0FkYXB0ZXJGYWN0b3J5LmphdmEKaW5kZXggOGFkZjU0Zi4uMjc3Yjc1YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy91dGlsL01vZGlzY293b3JrZmxvd0FkYXB0ZXJGYWN0b3J5LmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy91dGlsL01vZGlzY293b3JrZmxvd0FkYXB0ZXJGYWN0b3J5LmphdmEKQEAgLTM1LDcgKzM1LDggQEAKICAqIA0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubW9kaXNjb3dvcmtmbG93Lk1vZGlzY293b3JrZmxvd1BhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNb2Rpc2Nvd29ya2Zsb3dBZGFwdGVyRmFjdG9yeSBleHRlbmRzIEFkYXB0ZXJGYWN0b3J5SW1wbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy91dGlsL01vZGlzY293b3JrZmxvd1N3aXRjaC5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3dvcmtmbG93L21vZGlzY293b3JrZmxvdy91dGlsL01vZGlzY293b3JrZmxvd1N3aXRjaC5qYXZhCmluZGV4IGNiZDc2ZGYuLmM1NzE4NzIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy9tb2Rpc2Nvd29ya2Zsb3cvdXRpbC9Nb2Rpc2Nvd29ya2Zsb3dTd2l0Y2guamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvbW9kaXNjb3dvcmtmbG93L3V0aWwvTW9kaXNjb3dvcmtmbG93U3dpdGNoLmphdmEKQEAgLTM3LDcgKzM3LDggQEAKICAqIA0KICAqIEBzZWUgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ud29ya2Zsb3cubW9kaXNjb3dvcmtmbG93Lk1vZGlzY293b3JrZmxvd1BhY2thZ2UNCiAgKiBAZ2VuZXJhdGVkDQotICogQGRlcHJlY2F0ZWQNCisgKiBAZGVwcmVjYXRlZCByZXBsYWNlZCBieSBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LCBjZg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zMzc5NDINCiAgKi8NCiBAU3VwcHJlc3NXYXJuaW5ncygiYWxsIikNCiBwdWJsaWMgY2xhc3MgTW9kaXNjb3dvcmtmbG93U3dpdGNoPFQ+IHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby53b3JrZmxvdy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28vd29ya2Zsb3cvdWkvTW9EaXNjb1dvcmtmbG93VGFiR3JvdXAuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy91aS9Nb0Rpc2NvV29ya2Zsb3dUYWJHcm91cC5qYXZhCmluZGV4IDA1MjA3N2YuLjVkOGY2NGQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy91aS9Nb0Rpc2NvV29ya2Zsb3dUYWJHcm91cC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLndvcmtmbG93L3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby93b3JrZmxvdy91aS9Nb0Rpc2NvV29ya2Zsb3dUYWJHcm91cC5qYXZhCkBAIC0yMCw3ICsyMCw4IEBACiAvKioNCiAgKiANCiAgKiBAYXV0aG9yIE5pY29sYXMgUGF5bmVhdQ0KLSAqIEBkZXByZWNhdGVkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdywgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzM3OTQyDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9EaXNjb1dvcmtmbG93VGFiR3JvdXAgZXh0ZW5kcyBBYnN0cmFjdExhdW5jaENvbmZpZ3VyYXRpb25UYWJHcm91cCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5icm93c2VyLmN1c3RvbWl6YXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNWMyNTFiMS4uMzVhZGNmYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuYnJvd3Nlci5jdXN0b21pemF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmJyb3dzZXIuY3VzdG9taXphdGlvbjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLnF1ZXJ5LmNvcmUKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5NWQ4MmQ2Li5lNTdhNTU5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzLkpVbml0UGx1Z2luCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IGZlYWFkNDIuLmJmMzI1M2UgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTAsNCArMTAsNCBAQAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KICNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBYTUwgRGlzY292ZXJlciB0ZXN0cyAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitCdW5kbGUtTmFtZSA9IE1vRGlzY28gWE1MIERpc2NvdmVyZXIgdGVzdHMgKERlcHJlY2F0ZWQpIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQppbmRleCA4YjNjYzkzLi4yYzc2OTZlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3htbC9kaXNjb3ZlcmVyL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCkBAIC0xNSw2ICsxNSwxMCBAQAogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlOw0KIGltcG9ydCBvcmcuanVuaXQucnVubmVycy5TdWl0ZS5TdWl0ZUNsYXNzZXM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4ODUNCisgKi8NCitARGVwcmVjYXRlZA0KIEBSdW5XaXRoKFN1aXRlLmNsYXNzKQ0KIEBTdWl0ZUNsYXNzZXMoeyBUZXN0MDAxLmNsYXNzLCBUZXN0MDAyLmNsYXNzIH0pDQogcHVibGljIGNsYXNzIEFsbFRlc3RzSW5VSVRocmVhZCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3htbC9kaXNjb3ZlcmVyL3Rlc3RzL0pVbml0UGx1Z2luLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvSlVuaXRQbHVnaW4uamF2YQppbmRleCBhYTE1MzhjLi5jMDk0YjY0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvSlVuaXRQbHVnaW4uamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvSlVuaXRQbHVnaW4uamF2YQpAQCAtMTksNyArMTksOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4ODUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBKVW5pdFBsdWdpbiBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3htbC9kaXNjb3ZlcmVyL3Rlc3RzL1Rlc3QwMDEuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci90ZXN0cy9UZXN0MDAxLmphdmEKaW5kZXggZTM2MDQ5ZC4uZDA1OTVkMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3htbC9kaXNjb3ZlcmVyL3Rlc3RzL1Rlc3QwMDEuamF2YQorKysgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvVGVzdDAwMS5qYXZhCkBAIC00NCw4ICs0NCw5IEBACiANCiAvKioNCiAgKiBCYXNpYyB0ZXN0IG9mIGRpc2NvdmVyaW5nIGEgWE1MIG1vZGVsIGFuZCB0ZXN0aW5nIHJvb3QsIGVsZW1lbnQsIGNvbW1lbnRzDQotICogDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4ODUNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0MDAxIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFRFU1QxX1hNTCA9ICJUZXN0MDAxLnhtbCI7IC8vJE5PTi1OTFMtMSQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvVGVzdDAwMi5qYXZhIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3htbC9kaXNjb3ZlcmVyL3Rlc3RzL1Rlc3QwMDIuamF2YQppbmRleCA0YjBkNGI1Li4xZGRlNGQxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvdGVzdHMvVGVzdDAwMi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci90ZXN0cy9UZXN0MDAyLmphdmEKQEAgLTQ0LDggKzQ0LDkgQEAKIA0KIC8qKg0KICAqIEJhc2ljIHRlc3Qgb2YgZGlzY292ZXJpbmcgYSBYTUwgbW9kZWwgYW5kIHRlc3Rpbmcgcm9vdCwgYXR0cmlidXRlcw0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODg1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdDAwMiB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBNQUdJQ19OVU1CRVIgPSAzOw0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgVEVTVDJfWE1MID0gIlRlc3QwMDIueG1sIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZDdlYWM1ZS4uOWRhYzFmMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci5YbWxBY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwppbmRleCBiZDg0YmFmLi45NWY0NWI5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDYgKzEwLDYgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiANCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlcg0KLXBsdWdpbk5hbWUgPSBNb0Rpc2NvIEdlbmVyaWMgWE1MIERpc2NvdmVyZXIgKEluY3ViYXRpb24pDQorcGx1Z2luTmFtZSA9IE1vRGlzY28gR2VuZXJpYyBYTUwgRGlzY292ZXJlciAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pDQogcHJvdmlkZXJOYW1lID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotZGlzY292ZXJlci5uYW1lID0gRGlzY292ZXIgZ2VuZXJpYyBYTUwgbW9kZWwNCitkaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBnZW5lcmljIFhNTCBtb2RlbCAoRGVwcmVjYXRlZCkNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvWG1sQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvWG1sQWN0aXZhdG9yLmphdmEKaW5kZXggNzkxNjE1MC4uMDllODA4MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL2dtdC9tb2Rpc2NvL3htbC9kaXNjb3ZlcmVyL1htbEFjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci9YbWxBY3RpdmF0b3IuamF2YQpAQCAtMTYsNyArMTYsMTAgQEAKIA0KIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIHJlcGxhY2VkIGJ5IG9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIuWE1MTW9kZWxEaXNjb3ZlcmVyLA0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwODg1DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgWG1sQWN0aXZhdG9yIGV4dGVuZHMgUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvZ210L21vZGlzY28veG1sL2Rpc2NvdmVyZXIvYWN0aW9ucy9YTUxNb2RlbERpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci9hY3Rpb25zL1hNTE1vZGVsRGlzY292ZXJlci5qYXZhCmluZGV4IDQzNWNkNmYuLjk5NWFkYmYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci9hY3Rpb25zL1hNTE1vZGVsRGlzY292ZXJlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9nbXQvbW9kaXNjby94bWwvZGlzY292ZXJlci9hY3Rpb25zL1hNTE1vZGVsRGlzY292ZXJlci5qYXZhCkBAIC0zNyw3ICszNyw4IEBACiAvKioNCiAgKiBEaXNjb3ZlciBnZW5lcmljIFhNTCBtb2RlbCBhY3Rpb24uDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBYTUxNb2RlbERpc2NvdmVyZXIyfSBpbnN0ZWFkDQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkgb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci5YTUxNb2RlbERpc2NvdmVyZXIsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA4ODUNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBYTUxNb2RlbERpc2NvdmVyZXIgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYmQ1YzFkMS4uNDA4NDZkYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby54bWw7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5hbGwuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uYWxsLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggZDQ3YTMwNC4uZDZmMjZkOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5hbGwuZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFsbC5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0xMiw3ICsxMiw3IEBACiA8ZmVhdHVyZQ0KICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmFsbC5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvJmFwb3M7cyBxdWFsaXR5IGFuYWx5c2lzIHJlcG9ydHMiDQotICAgICAgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciINCisgICAgICB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIg0KICAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIwLjAuMCI+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtL29yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybS50YXJnZXQgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFyY2hpLnRlY2gudGFyZ2V0cGxhdGZvcm0vb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtLnRhcmdldAppbmRleCBjNmY3ZWQ4Li45YjM0YTI4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFyY2hpLnRlY2gudGFyZ2V0cGxhdGZvcm0vb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtLnRhcmdldAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFyY2hpLnRlY2gudGFyZ2V0cGxhdGZvcm0vb3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtLnRhcmdldApAQCAtMSw3ICsxLDcgQEAKIDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/Pg0KIDw/cGRlIHZlcnNpb249IjMuNiI/Pg0KIA0KLTx0YXJnZXQgbmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtIiBzZXF1ZW5jZU51bWJlcj0iNSI+DQorPHRhcmdldCBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmFyY2hpLnRlY2gudGFyZ2V0cGxhdGZvcm0iIHNlcXVlbmNlTnVtYmVyPSI2Ij4NCiA8bG9jYXRpb25zPg0KIDxsb2NhdGlvbiBpbmNsdWRlQWxsUGxhdGZvcm1zPSJmYWxzZSIgaW5jbHVkZU1vZGU9InBsYW5uZXIiIGluY2x1ZGVTb3VyY2U9InRydWUiIHR5cGU9Ikluc3RhbGxhYmxlVW5pdCI+DQogPHVuaXQgaWQ9Im9yZy5lY2xpcHNlLm0ybS5hdGwuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMy4xLjAudjIwMTAwNjE1MDI0MCIvPg0KQEAgLTI2LDkgKzI2LDkgQEAKIDxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdGVjaG5vbG9neS9lcHAvcGFja2FnZXMvaGVsaW9zLyIvPg0KIDwvbG9jYXRpb24+DQogPGxvY2F0aW9uIGluY2x1ZGVBbGxQbGF0Zm9ybXM9ImZhbHNlIiBpbmNsdWRlQ29uZmlndXJlUGhhc2U9ImZhbHNlIiBpbmNsdWRlTW9kZT0icGxhbm5lciIgaW5jbHVkZVNvdXJjZT0idHJ1ZSIgdHlwZT0iSW5zdGFsbGFibGVVbml0Ij4NCi08dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLmZhY2V0LnNkay5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuNC4wLjIwMTQwNTE5MDg1MyIvPg0KLTx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC50ZXN0cy5mZWF0dXJlLmZlYXR1cmUuZ3JvdXAiIHZlcnNpb249IjAuNC4wLjIwMTQwNTE5MDg1MyIvPg0KLTxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvZmFjZXQvdXBkYXRlcy9yZWxlYXNlLyIvPg0KKzx1bml0IGlkPSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQuc2RrLmZlYXR1cmUuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMC4wLjAiLz4NCis8dW5pdCBpZD0ib3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwudGVzdHMuZmVhdHVyZS5mZWF0dXJlLmdyb3VwIiB2ZXJzaW9uPSIwLjAuMCIvPg0KKzxyZXBvc2l0b3J5IGxvY2F0aW9uPSJodHRwOi8vYXJjaGl2ZS5lY2xpcHNlLm9yZy9mYWNldC91cGRhdGVzL3JlbGVhc2UvMS4wLjIvIi8+DQogPC9sb2NhdGlvbj4NCiA8bG9jYXRpb24gaW5jbHVkZUFsbFBsYXRmb3Jtcz0iZmFsc2UiIGluY2x1ZGVNb2RlPSJwbGFubmVyIiBpbmNsdWRlU291cmNlPSJ0cnVlIiB0eXBlPSJJbnN0YWxsYWJsZVVuaXQiPg0KIDx1bml0IGlkPSJvcmcuZWNsaXBzZS5zd3Rib3QuZm9ybXMuZmVhdHVyZS5ncm91cCIgdmVyc2lvbj0iMi4wLjUuMjAxMTEwMDNfMTc1NC0zNjc2YWM4LWRldi1lMzYiLz4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmNvbW1vbi50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uY29tbW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGZiMTYzODIuLjcwYTBhZWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uY29tbW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uY29tbW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0zLDcgKzMsNyBAQAogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uY29tbW9uLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmNvbW1vbi50ZXN0cy5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKICBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmNvbW1vbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9jb21tb24vdGVzdHMvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmNvbW1vbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9jb21tb24vdGVzdHMvQWN0aXZhdG9yLmphdmEKaW5kZXggYjRiYmIxNC4uMjllY2Q0MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5jb21tb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vY29tbW9uL3Rlc3RzL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uY29tbW9uLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2NvbW1vbi90ZXN0cy9BY3RpdmF0b3IuamF2YQpAQCAtMTUsNyArMTUsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRldi5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRldi5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYzY5ZDNmZi4uODIxNmIxMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5kZXYuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZGV2LmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5kZXYuZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLmFwaS5yZXBvcnQuZWNsaXBzZXBhY2thZ2Uvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS5wcm9kdWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5hcGkucmVwb3J0LmVjbGlwc2VwYWNrYWdlLnByb2R1Y3QKaW5kZXggYjQxZjI2MC4uZjk1YmUwMyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5hcGkucmVwb3J0LmVjbGlwc2VwYWNrYWdlLnByb2R1Y3QKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5hcGkucmVwb3J0LmVjbGlwc2VwYWNrYWdlLnByb2R1Y3QKQEAgLTEsNyArMSw3IEBACiA8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KIDw/cGRlIHZlcnNpb249IjMuNSI/Pg0KIA0KLTxwcm9kdWN0IG5hbWU9Ik1vRGlzY28gQVBJIFVzZSBSZXBvcnQgUGFja2FnZSIgdWlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5hcGkucmVwb3J0LmVjbGlwc2VwYWNrYWdlIiBpZD0ib3JnLmVjbGlwc2Uuc2RrLmlkZSIgYXBwbGljYXRpb249Im9yZy5lY2xpcHNlLnVpLmlkZS53b3JrYmVuY2giIHVzZUZlYXR1cmVzPSJ0cnVlIiBpbmNsdWRlTGF1bmNoZXJzPSJ0cnVlIj4NCis8cHJvZHVjdCBuYW1lPSJNb0Rpc2NvIEFQSSBVc2UgUmVwb3J0IFBhY2thZ2UiIHVpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC5lY2xpcHNlcGFja2FnZSIgaWQ9Im9yZy5lY2xpcHNlLnNkay5pZGUiIGFwcGxpY2F0aW9uPSJvcmcuZWNsaXBzZS51aS5pZGUud29ya2JlbmNoIiB2ZXJzaW9uPSIwLjEzLjIiIHVzZUZlYXR1cmVzPSJ0cnVlIiBpbmNsdWRlTGF1bmNoZXJzPSJ0cnVlIj4NCiANCiAgICA8Y29uZmlnSW5pIHVzZT0iZGVmYXVsdCI+DQogICAgPC9jb25maWdJbmk+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLmFwaS5yZXBvcnQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZGVlOTlmNi4uNjgyMWFjNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5hcGkucmVwb3J0L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xLDcgKzEsNyBAQAogTWFuaWZlc3QtVmVyc2lvbjogMS4wCiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogTW9EaXNjbyBBUEkgUmVwb3J0CitCdW5kbGUtTmFtZTogTW9EaXNjbyBBUEkgUmVwb3J0IChJbmN1YmF0aW9uKQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuYXBpLnJlcG9ydDtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBNb2RsaW5nIFByb2plY3QKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MubWV0cmljLnJlcG9ydC8uZ2l0aWdub3JlIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MubWV0cmljLnJlcG9ydC8uZ2l0aWdub3JlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3MTRiZGUKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5tZXRyaWMucmVwb3J0Ly5naXRpZ25vcmUKQEAgLTAsMCArMSBAQAorL3JlcG9ydApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLm1ldHJpYy5yZXBvcnQvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy5tZXRyaWMucmVwb3J0L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGI5YjRhMTcuLjhjY2UyMzQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLm1ldHJpYy5yZXBvcnQvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MubWV0cmljLnJlcG9ydC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMSw3ICsxLDcgQEAKIE1hbmlmZXN0LVZlcnNpb246IDEuMAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgotQnVuZGxlLU5hbWU6IE1ldHJpY3MgUmVwb3J0CitCdW5kbGUtTmFtZTogTW9EaXNjbyBNZXRyaWNzIFJlcG9ydCAoSW5jdWJhdGlvbikKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uZG9jLm1ldHJpYy5yZXBvcnQ7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1WZW5kb3I6IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdAogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy50ZXN0LnJlcG9ydC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLnRlc3QucmVwb3J0L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDY0MGU5OWQuLjM4MzEwMGYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLnRlc3QucmVwb3J0L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLnRlc3QucmVwb3J0L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xLDcgKzEsNyBAQAogTWFuaWZlc3QtVmVyc2lvbjogMS4wCiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCi1CdW5kbGUtTmFtZTogTW9EaXNjbyBUZXN0IFJlcG9ydAorQnVuZGxlLU5hbWU6IE1vRGlzY28gVGVzdCBSZXBvcnQgKEluY3ViYXRpb24pCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy50ZXN0LnJlcG9ydDtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0CiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLnRlc3QucmVwb3J0L3BvbS54c2wgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy50ZXN0LnJlcG9ydC9wb20ueHNsCmluZGV4IDNiMmMzMmIuLjc5MzY1YTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jLnRlc3QucmVwb3J0L3BvbS54c2wKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MudGVzdC5yZXBvcnQvcG9tLnhzbApAQCAtMjIsNyArMjIsNyBAQAogCQkJCTxkZXBlbmRlbmN5Pg0KIAkJCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UubWR0PC9ncm91cElkPg0KIAkJCQkJPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UubW9kaXNjby50ZXN0czwvYXJ0aWZhY3RJZD4NCi0JCQkJCTx2ZXJzaW9uPjAuMTIuMi1TTkFQU0hPVDwvdmVyc2lvbj4NCisJCQkJCTx2ZXJzaW9uPjAuMTMuMi1TTkFQU0hPVDwvdmVyc2lvbj4NCiAJCQkJCTx0eXBlPmVjbGlwc2UtdGVzdC1wbHVnaW48L3R5cGU+DQogCQkJCTwvZGVwZW5kZW5jeT4NCiAJCQk8L2RlcGVuZGVuY2llcz4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGRhNTA2YjAuLjY5MjdlYWEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYztzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5kb2MuaW50ZXJuYWwuQWN0aXZhdG9yDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL2phdmFkb2MvZW1wdHkudHh0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MvamF2YWRvYy9lbXB0eS50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL2phdmFkb2MvZW1wdHkudHh0CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy9tYWludG9jLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL21haW50b2MueG1sCmluZGV4IDFmN2JhZjkuLjY3MWI5M2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL21haW50b2MueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZG9jL21haW50b2MueG1sCkBAIC0xLDM1ICsxLDM3IEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KLTwhLS0NCi1Db3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCi13aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotDQotQ29udHJpYnV0b3JzOg0KLSAgICBGYWJpZW4gR0lRVUVMIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotLS0+DQotPHRvYyBsYWJlbD0iTW9EaXNjbyBEb2N1bWVudGF0aW9uIj4NCi0gICA8dG9waWMgbGFiZWw9Ik1vRGlzY28gVXNlciBHdWlkZSI+DQotCSAgIDx0b3BpYyBsYWJlbD0iSW5mcmFzdHJ1Y3R1cmUiPg0KLQkgICAgICA8YW5jaG9yIGlkPSJpbmZyYXN0cnVjdHVyZS5tYWluIi8+DQotCSAgICAgIDxhbmNob3IgaWQ9ImluZnJhc3RydWN0dXJlLm9tZyIvPg0KLQkgICA8L3RvcGljPg0KLQkgICA8dG9waWMgbGFiZWw9IlRlY2hub2xvZ2llcyI+DQotCSAgICAgIDxhbmNob3IgaWQ9InRlY2hub2xvZ2llcy5hbmNob3IiLz4NCi0JICAgPC90b3BpYz4NCi0JICAgPHRvcGljIGxhYmVsPSJVc2VjYXNlcyI+DQotCSAgICAgIDxhbmNob3IgaWQ9InVzZWNhc2VzLmFuY2hvciIvPg0KLQkgICA8L3RvcGljPg0KLQkgICA8dG9waWMgaHJlZj0iamF2YWRvYy9pbmRleC5odG1sIiBsYWJlbD0iQVBJIFJlZmVyZW5jZSIvPg0KLQkgICA8dG9waWMgaHJlZj0ibWVkaWF3aWtpL25ld19hbmRfbm90ZXdvcnRoeS5odG1sIiBsYWJlbD0iTmV3IGFuZCBOb3Rld29ydGh5Ii8+DQotICAgPC90b3BpYz4NCi0gICA8dG9waWMgbGFiZWw9IlNpbXVsdGFuZW91cyBSZWxlYXNlIFRyYWNrZXIgUmVxdWlyZWQgRG9jdW1lbnRzIj4NCi0JCTxhbmNob3IgaWQ9ImFwaS5yZXBvcnQiLz4NCi0JCTxhbmNob3IgaWQ9InRlc3QucmVwb3J0Ii8+DQotCQk8YW5jaG9yIGlkPSJtZXRyaWMucmVwb3J0Ii8+DQotICAgPC90b3BpYz4NCi0gICA8dG9waWMgbGFiZWw9IkFyY2hpdGVjdHVyZSBkb2N1bWVudGF0aW9uIj4NCi0JCTxhbmNob3IgaWQ9ImFyY2hpIi8+DQotICAgPC90b3BpYz4NCi08L3RvYz4NCis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEwLCAyMDE1IE1pYS1Tb2Z0d2FyZS4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAord2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKK2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisKK0NvbnRyaWJ1dG9yczoKKyAgICBGYWJpZW4gR0lRVUVMIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3OTQyMCAtIE1vdmluZyB0aGUgQVBJIHBvbGljeSB3aWtpIHBhZ2UgdG8gZ2l0LgorLS0+Cis8dG9jIGxhYmVsPSJNb0Rpc2NvIERvY3VtZW50YXRpb24iPgorCTx0b3BpYyBsYWJlbD0iTW9EaXNjbyBVc2VyIEd1aWRlIj4KKwkJPHRvcGljIGxhYmVsPSJJbmZyYXN0cnVjdHVyZSI+CisJCQk8YW5jaG9yIGlkPSJpbmZyYXN0cnVjdHVyZS5tYWluIi8+CisJCQk8YW5jaG9yIGlkPSJpbmZyYXN0cnVjdHVyZS5vbWciLz4KKwkJPC90b3BpYz4KKwkJPHRvcGljIGxhYmVsPSJUZWNobm9sb2dpZXMiPgorCQkJPGFuY2hvciBpZD0idGVjaG5vbG9naWVzLmFuY2hvciIvPgorCQk8L3RvcGljPgorCQk8dG9waWMgbGFiZWw9IlVzZWNhc2VzIj4KKwkJCTxhbmNob3IgaWQ9InVzZWNhc2VzLmFuY2hvciIvPgorCQk8L3RvcGljPgorCQk8dG9waWMgaHJlZj0iamF2YWRvYy9pbmRleC5odG1sIiBsYWJlbD0iQVBJIFJlZmVyZW5jZSIvPgorCQk8dG9waWMgaHJlZj0ibWVkaWF3aWtpL25ld19hbmRfbm90ZXdvcnRoeS5odG1sIiBsYWJlbD0iTmV3IGFuZCBOb3Rld29ydGh5Ii8+CisJPC90b3BpYz4KKwk8dG9waWMgbGFiZWw9IlNpbXVsdGFuZW91cyBSZWxlYXNlIFRyYWNrZXIgUmVxdWlyZWQgRG9jdW1lbnRzIj4KKwkJPHRvcGljIGhyZWY9Im1lZGlhd2lraS9BUElfcG9saWN5Lmh0bWwiIGxhYmVsPSJBUEkgUG9saWN5Ii8+CisJCTxhbmNob3IgaWQ9ImFwaS5yZXBvcnQiLz4KKwkJPGFuY2hvciBpZD0idGVzdC5yZXBvcnQiLz4KKwkJPGFuY2hvciBpZD0ibWV0cmljLnJlcG9ydCIvPgorCTwvdG9waWM+CisJPHRvcGljIGxhYmVsPSJBcmNoaXRlY3R1cmUgZG9jdW1lbnRhdGlvbiI+CisJCTxhbmNob3IgaWQ9ImFyY2hpIi8+CisJPC90b3BpYz4KKzwvdG9jPgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MvbWVkaWF3aWtpL0FQSV9wb2xpY3kubWVkaWF3aWtpIGIvb3JnLmVjbGlwc2UubW9kaXNjby5kb2MvbWVkaWF3aWtpL0FQSV9wb2xpY3kubWVkaWF3aWtpCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM1MzExODIKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmRvYy9tZWRpYXdpa2kvQVBJX3BvbGljeS5tZWRpYXdpa2kKQEAgLTAsMCArMSw3NyBAQAorPUFQSSBQb2xpY3k9CisKK1RoaXMgcG9saWN5IGRlZmluZXMgcnVsZXMgd2hpY2ggZ2l2ZSBzb21lIGd1YXJhbnRlZXMgdG8gYWRvcHRlcnMgYWJvdXQgdGhlIE1vRGlzY28gQVBJIHN0YWJpbGl0eS4KKworV2UgY29uc2lkZXIgTW9EaXNjbyBBUEkgYXMgdGhlIHVuaW9uIG9mIEphdmEgQVBJLCBFY2xpcHNlIEV4dGVuc2lvbiBwb2ludHMsIGFuZCBhbHNvIE1vZGVscy4KKworSW5kZWVkLCBzaW5jZSB0aGUgTW9EaXNjbyBwcm9qZWN0IGFkZHJlc3NlcyBNb2RlbC1Ecml2ZW4gUmV2ZXJzZSBFbmdpbmVlcmluZywgaXQgcHJvcG9zZXMgdmFyaW91cyBtZXRhbW9kZWxzIGRlZmluaXRpb25zIGFuZCBjb25mb3JtaW5nIG1vZGVscyB0byBzdXBwb3J0IHRoZSBlbmQtdXNlciB1c2UgY2FzZXMuIAorCis9PSBEZWNsYXJlZCBBUEkgID09CisKK0RlY2xhcmVkIEFQSSBpcyBwdWJsaWMgQVBJIHRoYXQgTW9EaXNjbyBoYXMgY29tbWl0dGVkIHRvIHN1cHBvcnRpbmcgZm9yIHNldmVyYWwgcmVsZWFzZXMuIEl0IHNob3VsZCBiZSBjbGVhbiBhbmQgY29udGFpbiBhZGVxdWF0ZSBqYXZhZG9jLiBEZWNsYXJlZCBBUEkgbWF5IGV2b2x2ZSBpbiB0aGUgZmlyc3QgZmV3IG1pbGVzdG9uZXMsIGJ1dCBpdCBtdXN0IGJlIGZyb3plbiBieSB0aGUgcmVsZWFzZSBBUEkgZnJlZXplIGRhdGUgYW5kIHdpbGwgbm90IGNoYW5nZSB0aHJvdWdob3V0IHRoZSByZW1haW5kZXIgb2YgdGhlIHJlbGVhc2Ugb3IgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbnRlbmFuY2UgcmVsZWFzZXMuCisKK0luIGZvbGxvd2luZyByZWxlYXNlcywgQVBJIG1heSBzb21ldGltZXMgYmUgZGVwcmVjYXRlZCBkdWUgdG8gdGhlIG5vcm1hbCBldm9sdXRpb24gb2YgTW9EaXNjby4gRGVwcmVjYXRpb25zIG11c3QgY29udGFpbiBpbmZvcm1hdGlvbiBvbiBhIG1pZ3JhdGlvbiBwYXRoIGZvciBleGlzdGluZyBhZG9wdGVycy4gRGVwcmVjYXRlZCBBUEkgbWF5IG5vdCBiZSByZW1vdmVkIGZvciBhdCBsZWFzdCAxIG1ham9yIHJlbGVhc2UgKGFuZCBwcmVmZXJhYmx5IGxvbmdlciksIGFuZCBhZnRlciBub3RpZnlpbmcgdGhlIGNvbW11bml0eS4KKworVGhlIHVzZXIgbXVzdCBub3QgaW1wbGVtZW50IG9yIGV4dGVuZCB0aGUgQVBJIGdlbmVyYXRlZCBieSBFTUYuCisKKz09IFByb3Zpc2lvbmFsIEFQSSAgPT0KKworUHJvdmlzaW9uYWwgQVBJIGlzIGEgd29yayBpbiBwcm9ncmVzcyB0b3dhcmRzIGZ1bGx5IERlY2xhcmVkIEFQSSBhbmQgY2FuIGJlIHVzZWQgd2hlbiBjb21taXR0ZXJzIHdhbnQgdG8gZ2F0aGVyIGNvbW11bml0eSBmZWVkYmFjayBiZWZvcmUgZGVjbGFyaW5nIEFQSSwgb3Igd2hlbiB0aGVyZSBhcmUga25vd24gcHJvYmxlbXMgd2l0aCBhIG5ldyBBUEkgdGhhdCBjYW5ub3QgYmUgYWRkcmVzc2VkIGJ5IEFQSSBmcmVlemUgZGF0ZS4gUHJvdmlzaW9uYWwgQVBJIHN0YXR1cyBpcyBtZWFudCB0byBiZSBhIHRlbXBvcmFyeSBzdGF0ZSBhbmQgQVBJIHNob3VsZCBub3QgcmVtYWluIHByb3Zpc2lvbmFsIGZvciBhbiB1bmR1ZSBsZW5ndGggb2YgdGltZS4KKworUHJvdmlzaW9uYWwgSmF2YSBBUEkgc2hvdWxkIGJlIG1hcmtlZCBhdCB0aGUgY2xhc3Mgb3IgbWVtYmVyIGxldmVsIHdpdGggdGhlIGZvbGxvd2luZyBqYXZhZG9jIGNvbW1lbnQ6Cis8cHJlPi8qKiBQcm92aXNpb25hbCBBUEk6IFRoaXMgY2xhc3MvaW50ZXJmYWNlIGlzIHBhcnQgb2YgYW4gaW50ZXJpbSBBUEkKKyogdGhhdCBpcyBzdGlsbCB1bmRlciBkZXZlbG9wbWVudCBhbmQgZXhwZWN0ZWQgdG8KKyogY2hhbmdlIGJlZm9yZSByZWFjaGluZyBzdGFiaWxpdHkuCisqLworPC9wcmU+CitQcm92aXNpb25hbCBNb2RlbCBBUEkgc2hvdWxkIGJlIG1hcmtlZCBhdCB0aGUgZWNvcmUgbGV2ZWwgd2l0aCBhIG1ldGFtb2RlbCBpZGVudGlmaWVyIG1lbnRpb25pbmcgImluY3ViYXRpb24iIChlLmcuICJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YS8wLjIuaW5jdWJhdGlvbi9qYXZhIiBhcyBuc1VSSSBpZGVudGlmaWVyIG9mIGFuIGVjb3JlIGRlZmluaXRpb24pLiBKYXZhIG1vZGVsIEFQSSwgYmVjYXVzZSBpdCBpcyBnZW5lcmF0ZWQgZnJvbSBlY29yZSBtb2RlbCwgc2hvdWxkbid0IGhhdmUgdG8gYmUgbWFya2VkIGFzIHByb3Zpc2lvbmFsIGFjY29yZGluZ2x5IHRvIHRoZSBlY29yZSBkZWZpbml0aW9uLgorCitQcm92aXNpb25hbCBFeHRlbnNpb24gUG9pbnQgQVBJIHNob3VsZCBiZSBtYXJrZWQgYXMgImluY3ViYXRpb24iIGluIGV4dGVuc2lvbiBwb2ludCBuYW1pbmcuCisKKz09IEV4YW1wbGVzIEFQSSAgPT0KKworVGhlIHByb2plY3QgZGVsaXZlcnMgc29tZSBleGFtcGxlcyBwbHVnaW5zIGZvciB2YXJpb3VzIE1vRGlzY28gZmVhdHVyZXMuIEl0IGluY2x1ZGVzIHNvbWUgbW9kZWxzIGNvbmZvcm1pbmcgdG8gTW9EaXNjbyBpbmZyYXN0cnVjdHVyZSBhbmQgdGVjaG5vbG9naWVzIGxheWVycywgYW5kIHNvbWUgSmF2YSBBUEkuIFRob3NlIGNvbXBvbmVudHMgbWlnaHQgYmUgdXNlZCBhcyBhIHN0YXJ0aW5nIHBvaW50IGZvciB0aGUgZW5kLXVzZXIgcmV2ZXJzZSBlbmdpbmVlcmluZyBwcm9jZXNzLiBCdXQgRXhhbXBsZXMgQVBJIGlzIG5vdCBhcyBzdGFibGUgYXMgZGVjbGFyZWQgQVBJIGFuZCBpcyBleHBlY3RlZCB0byBjaGFuZ2UuCisKK0FueSByZXNvdXJjZSBpbmNsdWRlZCBpbiBhIHBsdWdpbiB3aG9zZSBuYW1lIGluZGljYXRlcyAnZXhhbXBsZXMnIHNob3VsZCBiZSBjb25zaWRlcmVkIG9mIEludGVybmFsIEFQSSBraW5kLgorCitUaGUgZXhhbXBsZXMgQVBJcyBhcmUgbm90IHN0YWJsZS4gVGhleSBjYW4gY2hhbmdlIHdpdGhvdXQgYW55IG5vdGljZSAoaW5jbHVkaW5nIGluIGEgc2VydmljZSByZWxlYXNlKS4KKworPT0gVGVzdCBBUEkgID09CisKK0luIGFkZGl0aW9uIHRoZSBwcm9qZWN0IGRlbGl2ZXJzIHNvbWUgdGVzdHMgcGx1Z2lucyBmb3IgdmFyaW91cyBNb0Rpc2NvIGZlYXR1cmVzLiBJdCBhbHNvIGluY2x1ZGVzIHNvbWUgbW9kZWxzIGFuZCBKYXZhIGNsYXNzZXMsIHdoaWNoIGFyZSBub3QgYXMgc3RhYmxlIGFzIGRlY2xhcmVkIEFQSS4KKworQW55IHJlc291cmNlIGluY2x1ZGVkIGluIGEgcGx1Z2luIHdob3NlIG5hbWUgaW5kaWNhdGVzICd0ZXN0JyBzaG91bGQgYmUgYWxzbyBjb25zaWRlcmVkIG9mIEludGVybmFsIEFQSSBraW5kLgorCis9PSBJbnRlcm5hbCBVc2UgID09CisKK0ludGVybmFsIGNvZGUgaXMgZXZlcnl0aGluZyBlbHNlLiBNb0Rpc2NvIHJlc2VydmVzIHRoZSByaWdodCB0byBjaGFuZ2UgaW50ZXJuYWwgY29kZSBhdCBhbnkgdGltZSAoaW5jbHVkaW5nIGluIGEgc2VydmljZSByZWxlYXNlKS4KKworVGhlIGludGVybmFsIHBhY2thZ2VzIHNob3VsZCBjb250YWluICdpbnRlcm5hbCcgaW4gdGhlIHBhY2thZ2UgbmFtZQorVGhlIGludGVybmFsIHBhY2thZ2VzIHNob3VsZCBub3QgYXBwZWFyIGluICJFeHBvcnRlZCBQYWNrYWdlcyIgaW4gbWFuaWZlc3QgZmlsZS4gJydOb3RlIDogd2l0aGluIE1vRGlzY28gY29tcG9uZW50cywgeC1mcmllbmRzfHgtaW50ZXJuYWwgY2FuIGJlIHVzZWQgaW4gdGhlIG1hbmlmZXN0IHRvIGdpdmUgJ2ludGVybmFsJyBhY2Nlc3MgdG8gYW55IHBsdWdpbiBmcm9tIHRoZSBzYW1lIGxheWVyIHRoYXQgcmVxdWlyZXMgaXQsIGluIHN1Y2ggYSBjYXNlIGl0IGlzIGFjY3VyYXRlIHRvIHdyaXRlIGEgQVBJLnJlYWRtZS50eHQgZmlsZSBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBwcm9qZWN0IHRvIGp1c3RpZnkgd2h5IG9uZSBvZiBpdHMgaW50ZXJuYWwgcGFja2FnZSBpcyBleHBvc2VkLicnCisKK0ludGVybmFsIGV4dGVuc2lvbiBwb2ludHMgc2hvdWxkIGJlIGluZGljYXRlZCBieSAnaW50ZXJuYWwnIGluIHRoZSBleHRlbnNpb24gcG9pbnQgbmFtZS4KKworSW50ZXJuYWwgbW9kZWwgQVBJIChyYXJlKSBzaG91bGQgYmUgaW5kaWNhdGVkIGJ5ICdpbnRlcm5hbCcgaW4gdGhlIGlkZW50aWZpZXIuCisKK0lmIGFkb3B0ZXJzIHJlcXVpcmUgdGhlIHVzZSBvZiBpbnRlcm5hbCBjb2RlIGFuZCBkbyBub3Qgd2FudCB0byBiZSBjb250aW51YWxseSBicm9rZW4sIHRoZXkgc2hvdWxkIG9wZW4gYnVnemlsbGEgZW5oYW5jZW1lbnQgcmVxdWVzdHMgZm9yIEFQSS4gVGhlc2UgYnVncyB3aWxsIGJlIHRyaWFnZWQgYW5kIHdpbGwgaGVscCBkcml2ZSB0aGUgY3JlYXRpb24gb2YgbmV3IGRlY2xhcmVkIG9yIHByb3Zpc2lvbmFsIEFQSS4KKworPT0gRGVwcmVjYXRlZCBBUEkgZGVjbGFyYXRpb24gPT0KKworV2hlbiBhbiBBUEkgbmVlZCB0byBiZSBkZWNsYXJlZCBkZXByZWNhdGVkLCB0aGUgY29udHJpYnV0b3IgaGFzIHRvOgorKiBBZGQgdGhlIEBEZXByZWNhdGVkIHRhZyBpbiB0aGUgSmF2YSBjb2RlLgorKiBPcGVuIGEgYnVnOgorKiogaGF2aW5nIGEgc3VtbWFyeSBzdGFydGluZyB3aXRoIFtEZXByZWNhdGVkXSwKKyoqIHNwZWNpZnlpbmcgaW4gd2hpY2ggdmVyc2lvbiB0aGUgQVBJIHdpbGwgYmUgcmVtb3ZlZC4KKyogQ29weSB0aGUgYnVnIFVSTCBpbiB0aGUgSmF2YSBjb2RlIG9mIHRoZSBkZXByZWNhdGVkIEFQSS4KKyogQWRkIGluIHRoZSBKYXZhZG9jIGNvbW1lbnQgdXNpbmcgdGhlIEBkZXByZWNhdGVkIHRhZzoKKyoqIGFuIGV4cGxhbmF0aW9uIG9mIHdoYXQgdG8gZG8gd2hlbiB3ZSBhcmUgdXNpbmcgdGhlIGRlcHJlY2F0ZWQgQVBJLAorKiogdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkZXByZWNhdGlvbiwKKyoqIHRoZSBidWcgVVJMLgorCis8Zm9udCBzaXplPSItMiI+CitDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLgorQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAoraHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwuCis8L2ZvbnQ+CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2VwbHVnaW4uZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDhhMGZiODMuLjE2NmNlNjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXIudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyLnVpLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNGYyOWE1Mi4uZDMwNGE2NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTMsNyArMyw3IEBACiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2VjbGlwc2VwbHVnaW4vZGlzY292ZXJlci9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2VjbGlwc2VwbHVnaW4vZGlzY292ZXJlci9BY3RpdmF0b3IuamF2YQppbmRleCA2NTdiNjNiLi5kMzAyYzhmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2VwbHVnaW4uZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9lY2xpcHNlcGx1Z2luL2Rpc2NvdmVyZXIvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vZWNsaXBzZXBsdWdpbi9kaXNjb3ZlcmVyL0FjdGl2YXRvci5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KIA0KIAkvLyBUaGUgcGx1Zy1pbiBJRA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2VjbGlwc2VwbHVnaW4vZGlzY292ZXJlci9EaXNjb3ZlckVjbGlwc2VQbHVnaW5Gcm9tSmF2YVByb2plY3QuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2VjbGlwc2VwbHVnaW4vZGlzY292ZXJlci9EaXNjb3ZlckVjbGlwc2VQbHVnaW5Gcm9tSmF2YVByb2plY3QuamF2YQppbmRleCBhZWRkYTBmLi5mMjkwMDc2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2VwbHVnaW4uZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9lY2xpcHNlcGx1Z2luL2Rpc2NvdmVyZXIvRGlzY292ZXJFY2xpcHNlUGx1Z2luRnJvbUphdmFQcm9qZWN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vZWNsaXBzZXBsdWdpbi9kaXNjb3ZlcmVyL0Rpc2NvdmVyRWNsaXBzZVBsdWdpbkZyb21KYXZhUHJvamVjdC5qYXZhCkBAIC01Myw3ICs1Myw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIuUHJvcGVydGllc01vZGVsRGlzY292ZXJlcjsNCiANCiAvKioNCi0gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIERpc2NvdmVyRWNsaXBzZVBsdWdpbkZyb21KYXZhUHJvamVjdDJ9DQorICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBEaXNjb3ZlckVjbGlwc2VQbHVnaW5Gcm9tSmF2YVByb2plY3QyfSwgY2YNCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcyNzYwDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJFY2xpcHNlUGx1Z2luRnJvbUphdmFQcm9qZWN0IGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGU4NWFmYTAuLjBiYWVjNTEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uZWNsaXBzZXBsdWdpbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmVjbGlwc2VwbHVnaW4vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5lY2xpcHNlcGx1Z2luO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uZXhhbXBsZXMuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uZXhhbXBsZXMuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCBkNjMzZDI0Li44YzViMGQwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmV4YW1wbGVzLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5leGFtcGxlcy5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0xMiw3ICsxMiw3IEBACiA8ZmVhdHVyZQ0KICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmV4YW1wbGVzLmZlYXR1cmUiDQogICAgICAgbGFiZWw9Ik1vRGlzY28gRXhhbXBsZXMgKEluY3ViYXRpb24pIg0KLSAgICAgIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiDQorICAgICAgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciINCiAgICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIg0KICAgICAgIHBsdWdpbj0ib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uZXhhbXBsZXMiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuZ2VuZXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuZ2VuZXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAzYjhjOTAwLi5mMmM3YjdlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmdlbmVyYXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5nZW5lcmF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5nZW5lcmF0aW9uO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmdlbmVyYXRpb24uQWN0aXZhdG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCiAgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkay50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZmZjM2VjYi4uNDI2YjJkNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkay50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmphdmEuamRrLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkay50ZXN0cwotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmphdmEuamRrLnRlc3RzLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZXhhbXBsZXMvamF2YS9qZGsvdGVzdHMvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLmphdmEuamRrLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2V4YW1wbGVzL2phdmEvamRrL3Rlc3RzL0FjdGl2YXRvci5qYXZhCmluZGV4IDM1ZDYyZjUuLmZlNDE5M2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMuamF2YS5qZGsudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZXhhbXBsZXMvamF2YS9qZGsvdGVzdHMvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkay50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9leGFtcGxlcy9qYXZhL2pkay90ZXN0cy9BY3RpdmF0b3IuamF2YQpAQCAtMTUsNyArMTUsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGEzOTJkZmEuLjQ5ZDQ1YmIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0zLDcgKzMsNyBAQAogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2V4YW1wbGVzL3VtbC90ZXN0cy9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20uZXhhbXBsZXMudW1sLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL2V4YW1wbGVzL3VtbC90ZXN0cy9BY3RpdmF0b3IuamF2YQppbmRleCAyYzE5ZGVlLi42YmQxYTBmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS9leGFtcGxlcy91bWwvdGVzdHMvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy51bWwudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vZXhhbXBsZXMvdW1sL3Rlc3RzL0FjdGl2YXRvci5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KIA0KIAkvLyBUaGUgcGx1Zy1pbiBJRA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDllNDBkNDMuLmY0MjI5ODYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMyw3ICszLDcgQEAKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udGVzdHM7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuanVuaXQ7YnVuZGxlLXZlcnNpb249IjQuNy4wIiwNCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuNy4wIiwNCiAgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXM7YnVuZGxlLXZlcnNpb249IjMuNS4xIiwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3Rlc3RzL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2N1c3RvbS90ZXN0cy9BY3RpdmF0b3IuamF2YQppbmRleCA3MTM0MjVjLi5kNzcyNzRjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvY3VzdG9tL3Rlc3RzL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9jdXN0b20vdGVzdHMvQWN0aXZhdG9yLmphdmEKQEAgLTE2LDcgKzE2LDkgQEAKIC8qKg0KICAqIA0KICAqIEBhdXRob3IgR3JlZ29pcmUgRFVQRSAoTWlhLVNvZnR3YXJlKQ0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmVjb21lIGludGVybmFsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNjA5DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgUGx1Z2luIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgQWN0aXZhdG9yIHBsdWdpbjsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS8uY2hlY2tzdHlsZSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLy5jaGVja3N0eWxlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNWI3MTIKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS8uY2hlY2tzdHlsZQpAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0NCitDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCithcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCit3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KK2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorDQorQ29udHJpYnV0b3JzOg0KKyAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCistLT4NCis8ZmlsZXNldC1jb25maWcgZmlsZS1mb3JtYXQtdmVyc2lvbj0iMS4yLjAiIHNpbXBsZS1jb25maWc9InRydWUiPg0KKyAgPGxvY2FsLWNoZWNrLWNvbmZpZyBuYW1lPSJFbWZGYWNldCIgbG9jYXRpb249Ii4uL29yZy5lY2xpcHNlLmVtZi5mYWNldC5hcmNoaS50ZWNoLnJ1bGVzL2NoZWNrc3R5bGUvRW1mRmFjZXQuY2hlY2tzdHlsZSIgdHlwZT0icHJvamVjdCIgZGVzY3JpcHRpb249IiIvPg0KKyAgPGZpbGVzZXQgbmFtZT0iYWxsIiBlbmFibGVkPSJ0cnVlIiBjaGVjay1jb25maWctbmFtZT0iRW1mRmFjZXQiIGxvY2FsPSJ0cnVlIj4NCisgICAgPGZpbGUtbWF0Y2gtcGF0dGVybiBtYXRjaC1wYXR0ZXJuPSIuIiBpbmNsdWRlLXBhdHRlcm49InRydWUiLz4NCisgICAgPGZpbGUtbWF0Y2gtcGF0dGVybiBtYXRjaC1wYXR0ZXJuPSJNZXNzYWdlcy5qYXZhIiBpbmNsdWRlLXBhdHRlcm49ImZhbHNlIi8+DQorICAgIDwhLS0gY2YuIGNvbW1lbnRzIGluIHRoZSBmaWxlIC0tPg0KKyAgICA8ZmlsZS1tYXRjaC1wYXR0ZXJuIG1hdGNoLXBhdHRlcm49IkFnZ3JlZ2F0ZVBhY2thZ2UuamF2YSIgaW5jbHVkZS1wYXR0ZXJuPSJmYWxzZSIvPg0KKyAgPC9maWxlc2V0Pg0KKzwvZmlsZXNldC1jb25maWc+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvLmNsYXNzcGF0aCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLy5jbGFzc3BhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmQxYTQzMAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLy5jbGFzc3BhdGgKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxjbGFzc3BhdGg+DQorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuSlJFX0NPTlRBSU5FUi9vcmcuZWNsaXBzZS5qZHQuaW50ZXJuYWwuZGVidWcudWkubGF1bmNoZXIuU3RhbmRhcmRWTVR5cGUvSjJTRS0xLjUiLz4NCisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UucGRlLmNvcmUucmVxdWlyZWRQbHVnaW5zIi8+DQorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJzcmMiIHBhdGg9InNyYyIvPg0KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4NCis8L2NsYXNzcGF0aD4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS8ucG1kIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvLnBtZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjQ4NzhiCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvLnBtZApAQCAtMCwwICsxLDcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHBtZD4NCisgICAgPHVzZVByb2plY3RSdWxlU2V0PnRydWU8L3VzZVByb2plY3RSdWxlU2V0Pg0KKyAgICA8cnVsZVNldEZpbGU+Li4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmFyY2hpLnRlY2gucnVsZXMvcG1kL3J1bGVzZXQueG1sPC9ydWxlU2V0RmlsZT4NCisgICAgPGluY2x1ZGVEZXJpdmVkRmlsZXM+ZmFsc2U8L2luY2x1ZGVEZXJpdmVkRmlsZXM+DQorICAgIDx2aW9sYXRpb25zQXNFcnJvcnM+dHJ1ZTwvdmlvbGF0aW9uc0FzRXJyb3JzPg0KKzwvcG1kPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQxNGUzNAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLy5wcm9qZWN0CkBAIC0wLDAgKzEsNDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmU8L25hbWU+DQorCTxjb21tZW50PjwvY29tbWVudD4NCisJPHByb2plY3RzPg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5NYW5pZmVzdEJ1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuU2NoZW1hQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm5ldC5zb3VyY2Vmb3JnZS5wbWQuZWNsaXBzZS5wbHVnaW4ucG1kQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm5ldC5zZi5lY2xpcHNlY3MuY29yZS5DaGVja3N0eWxlQnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UucGRlLlBsdWdpbk5hdHVyZTwvbmF0dXJlPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhbmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm5ldC5zb3VyY2Vmb3JnZS5wbWQuZWNsaXBzZS5wbHVnaW4ucG1kTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm5ldC5zZi5lY2xpcHNlY3MuY29yZS5DaGVja3N0eWxlTmF0dXJlPC9uYXR1cmU+DQorCTwvbmF0dXJlcz4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ1MDExMTEKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMCwwICsxLDEzIEBACitNYW5pZmVzdC1WZXJzaW9uOiAxLjAKK0J1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKK0J1bmRsZS1OYW1lOiBNb0Rpc2NvIEJyb3dzZXIgRWNvcmUgQ29yZSAoSW5jdWJhdGlvbikKK0J1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlO3NpbmdsZXRvbjo9dHJ1ZQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKK0J1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLmludGVybmFsLkFjdGl2YXRvcgorQnVuZGxlLVZlbmRvcjogRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0CitSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAorIG9yZy5lY2xpcHNlLmVtZi5mYWNldC5xdWVyeS5qYXZhLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuNS4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuZWNvcmU7YnVuZGxlLXZlcnNpb249IjIuNi4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0Lm1ldGFtb2RlbDtidW5kbGUtdmVyc2lvbj0iMC40LjAiCitCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKK0J1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9hYm91dC5odG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvYWJvdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZmI3NmVhCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvYWJvdXQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIg0KKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KKzxoZWFkPg0KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4NCis8dGl0bGU+QWJvdXQ8L3RpdGxlPg0KKzwvaGVhZD4NCis8Ym9keSBsYW5nPSJFTi1VUyI+DQorPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+DQorIA0KKzxwPkF1Z3VzdCAyNSwgMjAxNDwvcD4JDQorPGgzPkxpY2Vuc2U8L2gzPg0KKw0KKzxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIA0KK2luZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUNCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIA0KK2F0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uDQorRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4NCisNCis8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIA0KK2JlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkNCithcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuICBDaGVjayB0aGUgUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgDQorcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gIElmIG5vIHN1Y2ggbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuICBVbmxlc3Mgb3RoZXJ3aXNlDQoraW5kaWNhdGVkIGJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQNCithbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LjwvcD4NCisNCis8L2JvZHk+DQorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2J1aWxkLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9idWlsZC5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU3OWJiMjEKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOCBAQAorc291cmNlLi4gPSBzcmMvDQorb3V0cHV0Li4gPSBiaW4vDQorYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwNCisgICAgICAgICAgICAgICAuLFwNCisgICAgICAgICAgICAgICBwbHVnaW4ueG1sLFwNCisgICAgICAgICAgICAgICBhYm91dC5odG1sLFwNCisgICAgICAgICAgICAgICBjdXN0b20vDQorc3JjLmluY2x1ZGVzID0gYWJvdXQuaHRtbA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2N1c3RvbS9lUGFja2FnZUNvbnRhaW5zRUNsYXNzLmN1c3RvbSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2N1c3RvbS9lUGFja2FnZUNvbnRhaW5zRUNsYXNzLmN1c3RvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43ZGEyMWY5Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvY3VzdG9tL2VQYWNrYWdlQ29udGFpbnNFQ2xhc3MuY3VzdG9tCkBAIC0wLDAgKzEsNTMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkFTQ0lJIj8+DQorPGN1c3RvbTpDdXN0b21pemF0aW9uDQorCXhtaTp2ZXJzaW9uPSIyLjAiDQorCXhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSINCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSINCisJeG1sbnM6Y3VzdG9tPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi9mYWNldC9jdXN0b20vMC4yLmluY3ViYXRpb24vY3VzdG9tIg0KKwl4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSINCisJeG1sbnM6ZWZhY2V0PSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi9mYWNldC9lZmFjZXQvMC4yLmluY3ViYXRpb24vZWZhY2V0Ig0KKwl4bWxuczpqYXZhUXVlcnk9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mL2ZhY2V0L3F1ZXJ5L2phdmEvMC4yLmluY3ViYXRpb24vamF2YXF1ZXJ5Ig0KKwluYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS5lUGFja2FnZUNvbnRhaW5zRUNsYXNzIg0KKwluc1VSST0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL2luZnJhL2Jyb3dzZXIvZWNvcmUvMC4xMy4wLmluY3ViYXRpb24vZVBhY2thZ2VDb250YWluc0VDbGFzcy8iDQorCW5zUHJlZml4PSJlUGFja2FnZUNvbnRhaW5zRUNsYXNzIj4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImN1c3RvbTpFQ2xhc3NDdXN0b21pemF0aW9uIiBuYW1lPSJFUGFja2FnZSBudWxsIj4NCisgICAgPGV4dGVuZGVkTWV0YWNsYXNzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FUGFja2FnZSIvPg0KKyAgICA8ZmFjZXRPcGVyYXRpb25zIG5hbWU9ImNoaWxkcmVuIiB1cHBlckJvdW5kPSItMSI+DQorICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FU3RydWN0dXJhbEZlYXR1cmUiLz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZVN0cnVjdHVyYWxGZWF0dXJlIj4NCisgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVR5cGVkRWxlbWVudCIvPg0KKyAgICAgIDwvZVBhcmFtZXRlcnM+DQorICAgICAgPHF1ZXJ5IHhzaTp0eXBlPSJjdXN0b206RVR5cGVkRWxlbWVudFN3aXRjaFF1ZXJ5Ij4NCisgICAgICAgIDxjYXNlcz4NCisgICAgICAgICAgPHZhbHVlIHhzaTp0eXBlPSJqYXZhUXVlcnk6SmF2YVF1ZXJ5IiBpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUuaW50ZXJuYWwuZXBhY2thZ2Vjb250YWluc2VjbGFzcy5DaGlsZHJlblF1ZXJ5Ii8+DQorICAgICAgICA8L2Nhc2VzPg0KKyAgICAgICAgPGNhc2VzPg0KKyAgICAgICAgICA8Y2FzZSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VNb2RlbEVsZW1lbnQvZUFubm90YXRpb25zIi8+DQorICAgICAgICA8L2Nhc2VzPg0KKyAgICAgICAgPGNhc2VzPg0KKyAgICAgICAgICA8Y2FzZSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VOYW1lZEVsZW1lbnQvbmFtZSIvPg0KKyAgICAgICAgPC9jYXNlcz4NCisgICAgICAgIDxjYXNlcz4NCisgICAgICAgICAgPGNhc2UgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FUGFja2FnZS9uc1VSSSIvPg0KKyAgICAgICAgPC9jYXNlcz4NCisgICAgICAgIDxjYXNlcz4NCisgICAgICAgICAgPGNhc2UgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FUGFja2FnZS9uc1ByZWZpeCIvPg0KKyAgICAgICAgPC9jYXNlcz4NCisgICAgICAgIDxjYXNlcz4NCisgICAgICAgICAgPGNhc2UgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FUGFja2FnZS9lRmFjdG9yeUluc3RhbmNlIi8+DQorICAgICAgICA8L2Nhc2VzPg0KKyAgICAgICAgPGNhc2VzPg0KKyAgICAgICAgICA8Y2FzZSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VQYWNrYWdlL2VDbGFzc2lmaWVycyIvPg0KKyAgICAgICAgPC9jYXNlcz4NCisgICAgICAgIDxjYXNlcz4NCisgICAgICAgICAgPGNhc2UgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FUGFja2FnZS9lU3VicGFja2FnZXMiLz4NCisgICAgICAgIDwvY2FzZXM+DQorICAgICAgICA8Y2FzZXM+DQorICAgICAgICAgIDxjYXNlIHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVBhY2thZ2UvZVN1cGVyUGFja2FnZSIvPg0KKyAgICAgICAgPC9jYXNlcz4NCisgICAgICA8L3F1ZXJ5Pg0KKyAgICAgIDxvdmVycmlkZSB4c2k6dHlwZT0iZWZhY2V0OkZhY2V0T3BlcmF0aW9uIiBocmVmPSIuLi8uLi8uLi9wbHVnaW4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS51aS9yZXNvdXJjZXMvY3VzdG9tcHJvcGVydGllcy5lZmFjZXQjLy9DdXN0b21pemVkRU9iamVjdC9jaGlsZHJlbiIvPg0KKyAgICA8L2ZhY2V0T3BlcmF0aW9ucz4NCisgICAgPGV4dGVuZGVkRmFjZXRzIGhyZWY9Ii4uLy4uLy4uL3BsdWdpbi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQuY3VzdG9tLnVpL3Jlc291cmNlcy9jdXN0b21wcm9wZXJ0aWVzLmVmYWNldCMvL0N1c3RvbWl6ZWRFT2JqZWN0Ii8+DQorICA8L2VDbGFzc2lmaWVycz4NCis8L2N1c3RvbTpDdXN0b21pemF0aW9uPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2N1c3RvbS9oaWRlRGVyaXZlZFJlZmVyZW5jZXMuY3VzdG9tIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvY3VzdG9tL2hpZGVEZXJpdmVkUmVmZXJlbmNlcy5jdXN0b20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDhjNGIzOAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2N1c3RvbS9oaWRlRGVyaXZlZFJlZmVyZW5jZXMuY3VzdG9tCkBAIC0wLDAgKzEsMjUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkFTQ0lJIj8+DQorPGN1c3RvbTpDdXN0b21pemF0aW9uDQorCXhtaTp2ZXJzaW9uPSIyLjAiDQorCXhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSINCisJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSINCisJeG1sbnM6Y3VzdG9tPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi9mYWNldC9jdXN0b20vMC4yLmluY3ViYXRpb24vY3VzdG9tIg0KKwl4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSINCisJeG1sbnM6ZWZhY2V0PSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi9mYWNldC9lZmFjZXQvMC4yLmluY3ViYXRpb24vZWZhY2V0Ig0KKwl4bWxuczpqYXZhUXVlcnk9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mL2ZhY2V0L3F1ZXJ5L2phdmEvMC4yLmluY3ViYXRpb24vamF2YXF1ZXJ5Ig0KKwluYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS5oaWRlRGVyaXZlZFJlZmVyZW5jZXMiDQorCW5zVVJJPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vaW5mcmEvYnJvd3Nlci9lY29yZS8wLjEzLjAuaW5jdWJhdGlvbi9oaWRlRGVydmllZFJlZmVyZW5jZXMvIg0KKwluc1ByZWZpeD0iaGlkZURlcnZpZWRSZWZlcmVuY2VzIj4NCisgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImN1c3RvbTpFQ2xhc3NDdXN0b21pemF0aW9uIiBuYW1lPSJFUmVmZXJlbmNlIG51bGwiPg0KKyAgICA8ZXh0ZW5kZWRNZXRhY2xhc3MgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VPYmplY3QiLz4NCisgICAgPGZhY2V0T3BlcmF0aW9ucyBuYW1lPSJpc1Zpc2libGUiPg0KKyAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RURhdGFUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUJvb2xlYW4iLz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZVN0cnVjdHVyYWxGZWF0dXJlIj4NCisgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVR5cGVkRWxlbWVudCIvPg0KKyAgICAgIDwvZVBhcmFtZXRlcnM+DQorICAgICAgPHF1ZXJ5IHhzaTp0eXBlPSJqYXZhUXVlcnk6SmF2YVF1ZXJ5IiBpbXBsZW1lbnRhdGlvbkNsYXNzTmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUuaW50ZXJuYWwuaGlkZWRlcnZpZWRyZWZlcmVuY2VzLklzVmlzaWJsZVF1ZXJ5Ii8+DQorICAgICAgPG92ZXJyaWRlIHhzaTp0eXBlPSJlZmFjZXQ6RmFjZXRPcGVyYXRpb24iIGhyZWY9Ii4uLy4uLy4uL3BsdWdpbi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQuY3VzdG9tLnVpL3Jlc291cmNlcy9jdXN0b21wcm9wZXJ0aWVzLmVmYWNldCMvL0N1c3RvbWl6ZWRFT2JqZWN0L2lzVmlzaWJsZSIvPg0KKyAgICA8L2ZhY2V0T3BlcmF0aW9ucz4NCisgICAgPGV4dGVuZGVkRmFjZXRzIGhyZWY9Ii4uLy4uLy4uL3BsdWdpbi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQuY3VzdG9tLnVpL3Jlc291cmNlcy9jdXN0b21wcm9wZXJ0aWVzLmVmYWNldCMvL0N1c3RvbWl6ZWRFT2JqZWN0Ii8+DQorICA8L2VDbGFzc2lmaWVycz4NCis8L2N1c3RvbTpDdXN0b21pemF0aW9uPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2N1c3RvbS9saW5rc0NvdW50LmN1c3RvbSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL2N1c3RvbS9saW5rc0NvdW50LmN1c3RvbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZTRkZWNkCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvY3VzdG9tL2xpbmtzQ291bnQuY3VzdG9tCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IkFTQ0lJIj8+DQorPGN1c3RvbTpDdXN0b21pemF0aW9uIHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6Y3VzdG9tPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi9mYWNldC9jdXN0b20vMC4yLmluY3ViYXRpb24vY3VzdG9tIiB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgeG1sbnM6ZWZhY2V0PSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi9mYWNldC9lZmFjZXQvMC4yLmluY3ViYXRpb24vZWZhY2V0IiB4bWxuczpqYXZhUXVlcnk9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mL2ZhY2V0L3F1ZXJ5L2phdmEvMC4yLmluY3ViYXRpb24vamF2YXF1ZXJ5IiBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS5saW5rc0NvdW50IiBuc1VSST0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL2luZnJhL2Jyb3dzZXIvZWNvcmUvMC4xMy4wLmluY3ViYXRpb24vbGlua3NDb3VudCIgbnNQcmVmaXg9ImxpbmtzQ291bnQiPg0KKyAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iY3VzdG9tOkVDbGFzc0N1c3RvbWl6YXRpb24iIG5hbWU9IkVPYmplY3QgbnVsbCI+DQorICAgIDxleHRlbmRlZE1ldGFjbGFzcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KKyAgICA8ZmFjZXRPcGVyYXRpb25zIG5hbWU9ImxhYmVsIiBsb3dlckJvdW5kPSIxIj4NCisgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVEYXRhVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VTdHJpbmciLz4NCisgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZVN0cnVjdHVyYWxGZWF0dXJlIj4NCisgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRVR5cGVkRWxlbWVudCIvPg0KKyAgICAgIDwvZVBhcmFtZXRlcnM+DQorICAgICAgICAgIDxxdWVyeSB4c2k6dHlwZT0iamF2YVF1ZXJ5OkphdmFRdWVyeSIgaW1wbGVtZW50YXRpb25DbGFzc05hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLmludGVybmFsLmxpbmtzY291bnQuTGlua3NDb3VudFF1ZXJ5Ii8+DQorICAgICAgPG92ZXJyaWRlIHhzaTp0eXBlPSJlZmFjZXQ6RmFjZXRPcGVyYXRpb24iIGhyZWY9Ii4uLy4uLy4uL3BsdWdpbi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQuY3VzdG9tLnVpL3Jlc291cmNlcy9jdXN0b21wcm9wZXJ0aWVzLmVmYWNldCMvL0N1c3RvbWl6ZWRFT2JqZWN0L2xhYmVsIi8+DQorICAgIDwvZmFjZXRPcGVyYXRpb25zPg0KKyAgICA8ZXh0ZW5kZWRGYWNldHMgaHJlZj0iLi4vLi4vLi4vcGx1Z2luL29yZy5lY2xpcHNlLmVtZi5mYWNldC5jdXN0b20udWkvcmVzb3VyY2VzL2N1c3RvbXByb3BlcnRpZXMuZWZhY2V0Iy8vQ3VzdG9taXplZEVPYmplY3QiLz4NCisgIDwvZUNsYXNzaWZpZXJzPg0KKzwvY3VzdG9tOkN1c3RvbWl6YXRpb24+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvcGx1Z2luLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL3BsdWdpbi54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODU3NjAzYgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL3BsdWdpbi54bWwKQEAgLTAsMCArMSwyMyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+DQorPD9lY2xpcHNlIHZlcnNpb249IjMuNCI/PjwhLS0KK0NvcHlyaWdodCAoYykgMjAxNCBNaWEtU29mdHdhcmUuCisNCitBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQord2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCitodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorCitDb250cmlidXRvcnM6CisgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1ODkxNCAtIFtNb3ZlIHRvIEVNRiBGYWNldF1bQnJvd3Nlcl0gU3dpdGNoIHRvIEVNRiBGYWNldAorLS0+DQorPHBsdWdpbj4NCisgICA8ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY29yZS5tb2RlbGRlY2xhcmF0aW9uIj4NCisgICAgICA8bW9kZWxkZWNsYXJhdGlvbiBmaWxlPSJjdXN0b20vaGlkZURlcml2ZWRSZWZlcmVuY2VzLmN1c3RvbSIvPg0KKyAgICAgIDxtb2RlbGRlY2xhcmF0aW9uDQorICAgICAgICAgICAgZmlsZT0iY3VzdG9tL2VQYWNrYWdlQ29udGFpbnNFQ2xhc3MuY3VzdG9tIj4NCisgICAgICA8L21vZGVsZGVjbGFyYXRpb24+DQorICAgICAgPG1vZGVsZGVjbGFyYXRpb24NCisgICAgICAgICAgICBmaWxlPSJjdXN0b20vbGlua3NDb3VudC5jdXN0b20iPg0KKyAgICAgIDwvbW9kZWxkZWNsYXJhdGlvbj4NCisgICA8L2V4dGVuc2lvbj4NCis8L3BsdWdpbj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2Vjb3JlL2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2Vjb3JlL2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMyNmFmZgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWNvcmUvY29yZS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKiogDQorICogQ29weXJpZ2h0IChjKSAyMDE0IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1ODkxNCAtIFtNb3ZlIHRvIEVNRiBGYWNldF1bQnJvd3Nlcl0gU3dpdGNoIHRvIEVNRiBGYWNldA0KKyAqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUuaW50ZXJuYWw7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5QbHVnaW47DQoraW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0Ow0KKw0KK0BTdXBwcmVzc1dhcm5pbmdzKCJQTUQuVXNlU2luZ2xldG9uIikNCisvLyBAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlVzZVNpbmdsZXRvbiIpIFdlIGNhbm5vdCBjb25mb3JtcyB0byB0aGlzIHJ1bGUgYmVjYXVzZQ0KKy8vIHRoaXMgY2xhc3MgaXMgYW4gRWNsaXBzZSBwbHVnLWluIGFjdGl2YXRvciB3aGljaCB3aWxsIGJlIGluc3RhbnRpYXRlZCBieSB0aGUNCisvLyBFY2xpcHNlIGZyYW1ld29yay4NCitwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgUGx1Z2luIHsNCisNCisJcHJpdmF0ZSBzdGF0aWMgQWN0aXZhdG9yIHBsdWdpbjsNCisNCisJQE92ZXJyaWRlDQorCUBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuU2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbiIpDQorCS8vIEBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuU2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbiIpIFdlIGhhdmUgdG8gdXNlDQorCS8vIHRoaXMgc2lnbmF0dXJlIGJlY2F1c2UgdGhpcyBpcyBhbiBvdmVycmlkZSBvZiBhbiBFY2xpcHNlIGZyYW1ld29yaydzDQorCS8vIG1ldGhvZC4NCisJcHVibGljIHZvaWQgc3RhcnQoZmluYWwgQnVuZGxlQ29udGV4dCBidW5kbGVDb250ZXh0KSB0aHJvd3MgRXhjZXB0aW9uIHsNCisJCXN1cGVyLnN0YXJ0KGJ1bmRsZUNvbnRleHQpOw0KKwkJQWN0aXZhdG9yLnBsdWdpbiA9IHRoaXM7DQorCX0NCisNCisJQE92ZXJyaWRlDQorCUBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuU2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbiIpDQorCS8vIEBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuU2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbiIpIFdlIGhhdmUgdG8gdXNlDQorCS8vIHRoaXMgc2lnbmF0dXJlIGJlY2F1c2UgdGhpcyBpcyBhbiBvdmVycmlkZSBvZiBhbiBFY2xpcHNlIGZyYW1ld29yaydzDQorCS8vIG1ldGhvZC4NCisJcHVibGljIHZvaWQgc3RvcChmaW5hbCBCdW5kbGVDb250ZXh0IGJ1bmRsZUNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gew0KKwkJLy8gTk9QTUQ6IFBNRCBzYXkgIkFzc2lnbmluZyBhbiBPYmplY3QgdG8gbnVsbCBpcyBhIGNvZGUgc21lbGwuIg0KKwkJLy8gTm8gY2hvaWNlIHRvIHJpZ2h0IGl0IGluIGFub3RoZXIgd2F5IDogdGhpcyBpcyBhbiBFY2xpcHNlIHBhdHRlcm4uDQorCQlBY3RpdmF0b3IucGx1Z2luID0gbnVsbDsgLy8gTk9QTUQgYnkgZ2R1cGUgb24gMzAvMDMvMTIgMTA6MTkNCisJCXN1cGVyLnN0b3AoYnVuZGxlQ29udGV4dCk7DQorCX0NCisNCisJcHVibGljIHN0YXRpYyBQbHVnaW4gZ2V0RGVmYXVsdCgpIHsNCisJCXJldHVybiBBY3RpdmF0b3IucGx1Z2luOw0KKwl9DQorDQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWNvcmUvY29yZS9pbnRlcm5hbC9lcGFja2FnZWNvbnRhaW5zZWNsYXNzL0NoaWxkcmVuUXVlcnkuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWNvcmUvY29yZS9pbnRlcm5hbC9lcGFja2FnZWNvbnRhaW5zZWNsYXNzL0NoaWxkcmVuUXVlcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NTdmMjNiCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lY29yZS9jb3JlL2ludGVybmFsL2VwYWNrYWdlY29udGFpbnNlY2xhc3MvQ2hpbGRyZW5RdWVyeS5qYXZhCkBAIC0wLDAgKzEsMzMgQEAKKy8qKiAKKyAqIENvcHlyaWdodCAoYykgMjAxNCBNaWEtU29mdHdhcmUuCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorICogCisgKiBDb250cmlidXRvcnM6CisgKiAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1ODkxNCAtIFtNb3ZlIHRvIEVNRiBGYWNldF1bQnJvd3Nlcl0gU3dpdGNoIHRvIEVNRiBGYWNldAorICovCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLmludGVybmFsLmVwYWNrYWdlY29udGFpbnNlY2xhc3M7CisKK2ltcG9ydCBqYXZhLnV0aWwuQXJyYXlMaXN0OworaW1wb3J0IGphdmEudXRpbC5MaXN0OworCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlOworaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FU3RydWN0dXJhbEZlYXR1cmU7CitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVjb3JlUGFja2FnZTsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0LmNvcmUuSUZhY2V0TWFuYWdlcjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0LmNvcmUuZXhjZXB0aW9uLkRlcml2ZWRUeXBlZEVsZW1lbnRFeGNlcHRpb247CitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnF1ZXJ5LmphdmEuY29yZS5JSmF2YVF1ZXJ5MjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucXVlcnkuamF2YS5jb3JlLklQYXJhbWV0ZXJWYWx1ZUxpc3QyOworCitwdWJsaWMgY2xhc3MgQ2hpbGRyZW5RdWVyeSBpbXBsZW1lbnRzIElKYXZhUXVlcnkyPEVQYWNrYWdlLCBMaXN0PEVTdHJ1Y3R1cmFsRmVhdHVyZT4+IHsKKwlwdWJsaWMgTGlzdDxFU3RydWN0dXJhbEZlYXR1cmU+IGV2YWx1YXRlKGZpbmFsIEVQYWNrYWdlIGNvbnRleHQsIAorCQkJZmluYWwgSVBhcmFtZXRlclZhbHVlTGlzdDIgcGFyYW1ldGVyVmFsdWVzLAorCQkJZmluYWwgSUZhY2V0TWFuYWdlciBmYWNldE1hbmFnZXIpCisJCQl0aHJvd3MgRGVyaXZlZFR5cGVkRWxlbWVudEV4Y2VwdGlvbiB7CisJCWZpbmFsIExpc3Q8RVN0cnVjdHVyYWxGZWF0dXJlPiByZXN1bHQgPSBuZXcgQXJyYXlMaXN0PEVTdHJ1Y3R1cmFsRmVhdHVyZT4oKTsKKwkJcmVzdWx0LmFkZChFY29yZVBhY2thZ2UuZUlOU1RBTkNFLmdldEVQYWNrYWdlX0VDbGFzc2lmaWVycygpKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9Cit9CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2Vjb3JlL2NvcmUvaW50ZXJuYWwvaGlkZWRlcnZpZWRyZWZlcmVuY2VzL0lzVmlzaWJsZVF1ZXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2Vjb3JlL2NvcmUvaW50ZXJuYWwvaGlkZWRlcnZpZWRyZWZlcmVuY2VzL0lzVmlzaWJsZVF1ZXJ5LmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTU4YjIzMwotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWNvcmUvY29yZS9pbnRlcm5hbC9oaWRlZGVydmllZHJlZmVyZW5jZXMvSXNWaXNpYmxlUXVlcnkuamF2YQpAQCAtMCwwICsxLDQwIEBACisvKiogCisgKiBDb3B5cmlnaHQgKGMpIDIwMTQgTWlhLVNvZnR3YXJlLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyAqIAorICogQ29udHJpYnV0b3JzOgorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzNTg5MTQgLSBbTW92ZSB0byBFTUYgRmFjZXRdW0Jyb3dzZXJdIFN3aXRjaCB0byBFTUYgRmFjZXQKKyAqLworcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS5pbnRlcm5hbC5oaWRlZGVydmllZHJlZmVyZW5jZXM7CisKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdDsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVN0cnVjdHVyYWxGZWF0dXJlOworaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5lZmFjZXQuY29yZS5JRmFjZXRNYW5hZ2VyOworaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5lZmFjZXQuY29yZS5leGNlcHRpb24uRGVyaXZlZFR5cGVkRWxlbWVudEV4Y2VwdGlvbjsKK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucXVlcnkuamF2YS5jb3JlLklKYXZhUXVlcnkyOworaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5xdWVyeS5qYXZhLmNvcmUuSVBhcmFtZXRlclZhbHVlTGlzdDI7CisKK3B1YmxpYyBjbGFzcyBJc1Zpc2libGVRdWVyeSBpbXBsZW1lbnRzIElKYXZhUXVlcnkyPEVPYmplY3QsIEJvb2xlYW4+IHsKKwlwdWJsaWMgQm9vbGVhbiBldmFsdWF0ZShmaW5hbCBFT2JqZWN0IGNvbnRleHQsIAorCQkJZmluYWwgSVBhcmFtZXRlclZhbHVlTGlzdDIgcGFyYW1ldGVyVmFsdWVzLAorCQkJZmluYWwgSUZhY2V0TWFuYWdlciBmYWNldE1hbmFnZXIpCisJCQl0aHJvd3MgRGVyaXZlZFR5cGVkRWxlbWVudEV4Y2VwdGlvbiB7CisJCWJvb2xlYW4gcmVzdWx0ID0gZmFsc2U7CisJCWlmIChwYXJhbWV0ZXJWYWx1ZXMuc2l6ZSgpID09IDApIHsKKwkJCXJlc3VsdCA9IHRydWU7CisJCX0gZWxzZSB7CisJCQlmaW5hbCBPYmplY3QgcGFyYW1WYWx1ZSA9IHBhcmFtZXRlclZhbHVlcy5nZXQoMCkuZ2V0VmFsdWUoKTsKKwkJCWlmIChwYXJhbVZhbHVlIGluc3RhbmNlb2YgRVN0cnVjdHVyYWxGZWF0dXJlKSB7CisJCQkJZmluYWwgRVN0cnVjdHVyYWxGZWF0dXJlIGVTdHJ1Y3RGZWF0dXJlID0gKEVTdHJ1Y3R1cmFsRmVhdHVyZSkgcGFyYW1WYWx1ZTsKKwkJCQlyZXN1bHQgPSAhZVN0cnVjdEZlYXR1cmUuaXNEZXJpdmVkKCk7CisJCQl9IGVsc2UgeworCQkJCXRocm93IG5ldyBEZXJpdmVkVHlwZWRFbGVtZW50RXhjZXB0aW9uKAorCQkJCQkJIlVuZXhwZWN0ZWQgcGFyYW1ldGVyIHR5cGUiKTsgLy8kTk9OLU5MUy0xJAorCQkJfQorCQl9CisJCXJldHVybiAgQm9vbGVhbi52YWx1ZU9mKHJlc3VsdCk7CisJfQorfQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lY29yZS9jb3JlL2ludGVybmFsL2xpbmtzY291bnQvTGlua3NDb3VudFF1ZXJ5LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2Vjb3JlL2NvcmUvaW50ZXJuYWwvbGlua3Njb3VudC9MaW5rc0NvdW50UXVlcnkuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZDg5MmZlCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lY29yZS9jb3JlL2ludGVybmFsL2xpbmtzY291bnQvTGlua3NDb3VudFF1ZXJ5LmphdmEKQEAgLTAsMCArMSw3MCBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBTb2Z0LU1haW50Lg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjAxNyAtIEEgY3VzdG9taXphdGlvbiBjb3VudGluZyBlbGVtZW50cyBieSByZWZlcmVuY2UNCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLmludGVybmFsLmxpbmtzY291bnQ7DQorDQorDQorcHVibGljIGNsYXNzIExpbmtzQ291bnRRdWVyeSB7DQorCS8vRklYTUUNCit9DQorLyoNCitpbXBvcnQgamF2YS51dGlsLkNvbGxlY3Rpb247DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FT2JqZWN0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRVJlZmVyZW5jZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVUeXBlZEVsZW1lbnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5lZmFjZXQuY29yZS5JRmFjZXRNYW5hZ2VyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0LmNvcmUuZXhjZXB0aW9uLkRlcml2ZWRUeXBlZEVsZW1lbnRFeGNlcHRpb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5lZmFjZXQuY29yZS5leGNlcHRpb24uRmFjZXRNYW5hZ2VyRXhjZXB0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0Lm1ldGFtb2RlbC52MF8yXzAuZWZhY2V0LkRlcml2ZWRUeXBlZEVsZW1lbnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5xdWVyeS5qYXZhLmNvcmUuSUphdmFRdWVyeTM7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5xdWVyeS5qYXZhLmNvcmUuSVBhcmFtZXRlclZhbHVlTGlzdDI7DQorDQorcHVibGljIGNsYXNzIExpbmtzQ291bnRRdWVyeSBpbXBsZW1lbnRzIElKYXZhUXVlcnkzPEVPYmplY3QsIFN0cmluZz4gew0KKwlwdWJsaWMgU3RyaW5nIGV2YWx1YXRlKGZpbmFsIEVPYmplY3Qgc291cmNlLA0KKwkJCWZpbmFsIElQYXJhbWV0ZXJWYWx1ZUxpc3QyIHBhcmFtZXRlclZhbHVlcywNCisJCQlmaW5hbCBJRmFjZXRNYW5hZ2VyIGZhY2V0TWFuYWdlciwgZmluYWwgRGVyaXZlZFR5cGVkRWxlbWVudCBmZWF0dXJlKQ0KKwkJCXRocm93cyBEZXJpdmVkVHlwZWRFbGVtZW50RXhjZXB0aW9uIHsNCisJCXRyeSB7DQorCQkJU3RyaW5nIHNpemUgPSAiIjsgLy8kTk9OLU5MUy0xJA0KKwkJCWlmIChwYXJhbWV0ZXJWYWx1ZXMgIT0gbnVsbCkgew0KKwkJCQlmaW5hbCBFVHlwZWRFbGVtZW50IHNmUGFyYW0gPSAoRVR5cGVkRWxlbWVudCkgcGFyYW1ldGVyVmFsdWVzDQorCQkJCQkJLmdldFBhcmFtZXRlclZhbHVlQnlOYW1lKCJlU3RydWN0dXJhbEZlYXR1cmUiKS5nZXRWYWx1ZSgpOyAvLyROT04tTkxTLTEkDQorCQkJCWlmIChzZlBhcmFtIGluc3RhbmNlb2YgRVJlZmVyZW5jZSkgew0KKwkJCQkJc2l6ZSA9IGdldFNpemVGb3JSZWZlcmVuY2Uoc291cmNlLCBmYWNldE1hbmFnZXIsIHNmUGFyYW0pOw0KKwkJCQl9DQorCQkJfQ0KKwkJCXJldHVybiBmYWNldE1hbmFnZXIuZ2V0U3VwZXJWYWx1ZU9mKGZlYXR1cmUsIHNvdXJjZSwNCisJCQkJCXBhcmFtZXRlclZhbHVlcywgU3RyaW5nLmNsYXNzKSArIHNpemU7DQorCQl9IGNhdGNoIChGYWNldE1hbmFnZXJFeGNlcHRpb24gZSkgew0KKwkJCXRocm93IG5ldyBEZXJpdmVkVHlwZWRFbGVtZW50RXhjZXB0aW9uKGUpOw0KKwkJfQ0KKwl9DQorDQorCXByaXZhdGUgc3RhdGljIFN0cmluZyBnZXRTaXplRm9yUmVmZXJlbmNlKGZpbmFsIEVPYmplY3Qgc291cmNlLA0KKwkJCWZpbmFsIElGYWNldE1hbmFnZXIgZmFjZXRNYW5hZ2VyLCBmaW5hbCBFVHlwZWRFbGVtZW50IHNmUGFyYW0pDQorCQkJdGhyb3dzIEZhY2V0TWFuYWdlckV4Y2VwdGlvbiB7DQorCQlTdHJpbmcgc2l6ZSA9ICIiOyAvLyROT04tTkxTLTEkDQorCQlmaW5hbCBPYmplY3Qgb2JqZWN0ID0gZmFjZXRNYW5hZ2VyLmdldE9ySW52b2tlKHNvdXJjZSwgc2ZQYXJhbSwNCisJCQkJT2JqZWN0LmNsYXNzKTsNCisJCWlmIChvYmplY3QgaW5zdGFuY2VvZiBDb2xsZWN0aW9uKSB7DQorCQkJZmluYWwgQ29sbGVjdGlvbjw/PiBjb2xsZWN0aW9uID0gKENvbGxlY3Rpb248Pz4pIG9iamVjdDsNCisJCQlmaW5hbCBpbnQgbGlzdFNpemUgPSBjb2xsZWN0aW9uLnNpemUoKTsNCisJCQlpZiAobGlzdFNpemUgPiAwKSB7DQorCQkJCXNpemUgPSBTdHJpbmcuZm9ybWF0KCIgKCVkKSIsIC8vJE5PTi1OTFMtMSQNCisJCQkJCQlJbnRlZ2VyLnZhbHVlT2YobGlzdFNpemUpKTsNCisJCQl9DQorCQl9IGVsc2UgaWYgKG9iamVjdCAhPSBudWxsKSB7DQorCQkJc2l6ZSA9ICIgKDEpIjsgLy8kTk9OLU5MUy0xJA0KKwkJfQ0KKwkJcmV0dXJuIHNpemU7DQorCX0NCit9DQorKi8NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLy5jaGVja3N0eWxlIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS8uY2hlY2tzdHlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzk0MTUyCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS8uY2hlY2tzdHlsZQpAQCAtMCwwICsxLDIwIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCEtLQorQ29weXJpZ2h0IChjKSAyMDEwIE1pYS1Tb2Z0d2FyZS4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAord2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKK2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisKK0NvbnRyaWJ1dG9yczoKKyAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24KKy0tPgorPGZpbGVzZXQtY29uZmlnIGZpbGUtZm9ybWF0LXZlcnNpb249IjEuMi4wIiBzaW1wbGUtY29uZmlnPSJ0cnVlIj4KKyAgPGxvY2FsLWNoZWNrLWNvbmZpZyBuYW1lPSJFbWZGYWNldCIgbG9jYXRpb249Ii4uL29yZy5lY2xpcHNlLmVtZi5mYWNldC5hcmNoaS50ZWNoLnJ1bGVzL2NoZWNrc3R5bGUvRW1mRmFjZXQuY2hlY2tzdHlsZSIgdHlwZT0icHJvamVjdCIgZGVzY3JpcHRpb249IiIvPgorICA8ZmlsZXNldCBuYW1lPSJhbGwiIGVuYWJsZWQ9InRydWUiIGNoZWNrLWNvbmZpZy1uYW1lPSJFbWZGYWNldCIgbG9jYWw9InRydWUiPgorICAgIDxmaWxlLW1hdGNoLXBhdHRlcm4gbWF0Y2gtcGF0dGVybj0iLiIgaW5jbHVkZS1wYXR0ZXJuPSJ0cnVlIi8+CisgICAgPGZpbGUtbWF0Y2gtcGF0dGVybiBtYXRjaC1wYXR0ZXJuPSJNZXNzYWdlcy5qYXZhIiBpbmNsdWRlLXBhdHRlcm49ImZhbHNlIi8+CisgICAgPCEtLSBjZi4gY29tbWVudHMgaW4gdGhlIGZpbGUgLS0+CisgICAgPGZpbGUtbWF0Y2gtcGF0dGVybiBtYXRjaC1wYXR0ZXJuPSJBZ2dyZWdhdGVQYWNrYWdlLmphdmEiIGluY2x1ZGUtcGF0dGVybj0iZmFsc2UiLz4KKyAgPC9maWxlc2V0PgorPC9maWxlc2V0LWNvbmZpZz4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvLmNsYXNzcGF0aCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvLmNsYXNzcGF0aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yZDFhNDMwCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS8uY2xhc3NwYXRoCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8Y2xhc3NwYXRoPg0KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0iY29uIiBwYXRoPSJvcmcuZWNsaXBzZS5qZHQubGF1bmNoaW5nLkpSRV9DT05UQUlORVIvb3JnLmVjbGlwc2UuamR0LmludGVybmFsLmRlYnVnLnVpLmxhdW5jaGVyLlN0YW5kYXJkVk1UeXBlL0oyU0UtMS41Ii8+DQorCTxjbGFzc3BhdGhlbnRyeSBraW5kPSJjb24iIHBhdGg9Im9yZy5lY2xpcHNlLnBkZS5jb3JlLnJlcXVpcmVkUGx1Z2lucyIvPg0KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4NCisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9Im91dHB1dCIgcGF0aD0iYmluIi8+DQorPC9jbGFzc3BhdGg+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS8ucG1kIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS8ucG1kCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVmY2QyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLy5wbWQKQEAgLTAsMCArMSw3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPHBtZD4KKyAgICA8dXNlUHJvamVjdFJ1bGVTZXQ+dHJ1ZTwvdXNlUHJvamVjdFJ1bGVTZXQ+CisgICAgPHJ1bGVTZXRGaWxlPi4uL29yZy5lY2xpcHNlLmVtZi5mYWNldC5hcmNoaS50ZWNoLnJ1bGVzL3BtZC9ydWxlc2V0LnhtbDwvcnVsZVNldEZpbGU+CisgICAgPGluY2x1ZGVEZXJpdmVkRmlsZXM+ZmFsc2U8L2luY2x1ZGVEZXJpdmVkRmlsZXM+CisgICAgPHZpb2xhdGlvbnNBc0Vycm9ycz50cnVlPC92aW9sYXRpb25zQXNFcnJvcnM+Cis8L3BtZD4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvLnByb2plY3QgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLy5wcm9qZWN0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQyZjVmYWQKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLy5wcm9qZWN0CkBAIC0wLDAgKzEsNDAgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aTwvbmFtZT4NCisJPGNvbW1lbnQ+PC9jb21tZW50Pg0KKwk8cHJvamVjdHM+DQorCTwvcHJvamVjdHM+DQorCTxidWlsZFNwZWM+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFidWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+b3JnLmVjbGlwc2UucGRlLk1hbmlmZXN0QnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCQk8YnVpbGRDb21tYW5kPg0KKwkJCTxuYW1lPm9yZy5lY2xpcHNlLnBkZS5TY2hlbWFCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+bmV0LnNvdXJjZWZvcmdlLnBtZC5lY2xpcHNlLnBsdWdpbi5wbWRCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJPC9idWlsZFNwZWM+DQorCTxuYXR1cmVzPg0KKwkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVOYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+bmV0LnNvdXJjZWZvcmdlLnBtZC5lY2xpcHNlLnBsdWdpbi5wbWROYXR1cmU8L25hdHVyZT4NCisJPC9uYXR1cmVzPg0KKzwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgyNGI4MAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCkBAIC0wLDAgKzEsMiBAQAorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTENCitlbmNvZGluZy88cHJvamVjdD49VVRGLTgNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvLnNldHRpbmdzL29yZy5lY2xpcHNlLmpkdC5jb3JlLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ0MjE3ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5qZHQuY29yZS5wcmVmcwpAQCAtMCwwICsxLDcgQEAKK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQorb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi5pbmxpbmVKc3JCeXRlY29kZT1lbmFibGVkDQorb3JnLmVjbGlwc2UuamR0LmNvcmUuY29tcGlsZXIuY29kZWdlbi50YXJnZXRQbGF0Zm9ybT0xLjUNCitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5jb21wbGlhbmNlPTEuNQ0KK29yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uYXNzZXJ0SWRlbnRpZmllcj1lcnJvcg0KK29yZy5lY2xpcHNlLmpkdC5jb3JlLmNvbXBpbGVyLnByb2JsZW0uZW51bUlkZW50aWZpZXI9ZXJyb3INCitvcmcuZWNsaXBzZS5qZHQuY29yZS5jb21waWxlci5zb3VyY2U9MS41DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTNjNjY2NAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTAsMCArMSwxOSBAQAorTWFuaWZlc3QtVmVyc2lvbjogMS4wCitCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCitCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCitCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpO3NpbmdsZXRvbjo9dHJ1ZQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKK0J1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuQWN0aXZhdG9yCitCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgorUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAorIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuY3VzdG9tLnVpO2J1bmRsZS12ZXJzaW9uPSIwLjMuMCIsCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjMuMCIsCisgb3JnLmVjbGlwc2UuZW1mLmVjb3JlO2J1bmRsZS12ZXJzaW9uPSIyLjYuMCIsCisgb3JnLmVjbGlwc2UudWkuaWRlO2J1bmRsZS12ZXJzaW9uPSIzLjYuMCIsCisgb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXM7YnVuZGxlLXZlcnNpb249IjMuNi4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYudWk7YnVuZGxlLXZlcnNpb249IjAuMy4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjMuMCIsCisgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLmVkaXQ7YnVuZGxlLXZlcnNpb249IjIuNi4wIgorQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CitCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNhODIxOWMKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyMiBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTQgU29mdC1NYWludC4NCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorIyANCisjIENvbnRyaWJ1dG9yczoNCisjICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzU4OTE0IC0gW01vdmUgdG8gRU1GIEZhY2V0XVtCcm93c2VyXSBTd2l0Y2ggdG8gRU1GIEZhY2V0DQorIyAgICBUaG9tYXMgQ2ljb2duYW5pIChTb2Z0LU1haW50KSAtIEJ1ZyA0NDIyNTcgLSBOZXcgdG9vbGJhciBhY3Rpb25zIHRvIChkZXMpYWN0aXZhdGUgY3VzdG9taXphdGlvbnMNCisjICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjcxOCAtIEltcGxlbWVudCBjb3B5IGFjdGlvbiBpbiB0aGUgbmV3IE1vRGlzY28gQnJvd3Nlcg0KKyMgICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyNzE0IC0gTmV3IHRvb2xiYXIgYWN0aW9uIHRvIHNob3cvaGlkZSBlQ29udGFpbmVyIGxpbmsNCisjICAgIEdy6WdvaXJlIER1cOkgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDY5MjYzIC0gW1VuaXQgVGVzdCBGYWlsdXJlXSBvcmcuZWNsaXBzZS5tb2Rpc2NvLnRlc3RzLkJ1bmRsZVRlc3QubmFtZQ0KKyNQcm9wZXJ0aWVzIGZpbGUgZm9yIG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLnRyZWUudWkud29ya2JlbmNoDQorQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBUcmVlIFdpZGdldHMgKEluY3ViYXRpb24pDQorVHJlZVJlc291cmNlRWRpdG9yID0gVHJlZSBSZXNvdXJjZSBFZGl0b3INCittb2Rpc2NvQnJvd3NlclRvb2xiYXJMYWJlbCA9IE1vRGlzY28gQnJvd3Nlcg0KK0xvYWRVbmxvYWRGYWNldHMgPSBMb2FkL1VubG9hZCBmYWNldHMNCitMb2FkVW5sb2FkQ3VzdG9tcyA9IExvYWQvVW5sb2FkIGN1c3RvbWl6YXRpb25zDQorU2hvd0xpbmtzTGFiZWwgPSBTaG93IG51bWJlciBvZiBsaW5rcw0KK1Nob3dFQ29udGFpbmVyTGFiZWwgPSBTaG93IGVDb250YWluZXIgbGluaw0KK0NvcHlMYWJlbCA9IENvcHkNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL2Fib3V0Lmh0bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL2Fib3V0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGRiZDQ1YgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvYWJvdXQuaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIg0KKyAgICAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+DQorPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPg0KKzxoZWFkPg0KKzxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PUlTTy04ODU5LTEiLz4NCis8dGl0bGU+QWJvdXQ8L3RpdGxlPg0KKzwvaGVhZD4NCis8Ym9keSBsYW5nPSJFTi1VUyI+DQorPGgyPkFib3V0IFRoaXMgQ29udGVudDwvaDI+DQorIA0KKzxwPlNlcHRlbWJlciAzMCwgMjAwOTwvcD4JDQorPGgzPkxpY2Vuc2U8L2gzPg0KKw0KKzxwPlRoZSBFY2xpcHNlIEZvdW5kYXRpb24gbWFrZXMgYXZhaWxhYmxlIGFsbCBjb250ZW50IGluIHRoaXMgcGx1Zy1pbiAoJnF1b3Q7Q29udGVudCZxdW90OykuICBVbmxlc3Mgb3RoZXJ3aXNlIA0KK2luZGljYXRlZCBiZWxvdywgdGhlIENvbnRlbnQgaXMgcHJvdmlkZWQgdG8geW91IHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUNCitFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIFZlcnNpb24gMS4wICgmcXVvdDtFUEwmcXVvdDspLiAgQSBjb3B5IG9mIHRoZSBFUEwgaXMgYXZhaWxhYmxlIA0KK2F0IDxhIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbDwvYT4uDQorRm9yIHB1cnBvc2VzIG9mIHRoZSBFUEwsICZxdW90O1Byb2dyYW0mcXVvdDsgd2lsbCBtZWFuIHRoZSBDb250ZW50LjwvcD4NCisNCis8cD5JZiB5b3UgZGlkIG5vdCByZWNlaXZlIHRoaXMgQ29udGVudCBkaXJlY3RseSBmcm9tIHRoZSBFY2xpcHNlIEZvdW5kYXRpb24sIHRoZSBDb250ZW50IGlzIA0KK2JlaW5nIHJlZGlzdHJpYnV0ZWQgYnkgYW5vdGhlciBwYXJ0eSAoJnF1b3Q7UmVkaXN0cmlidXRvciZxdW90OykgYW5kIGRpZmZlcmVudCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBtYXkNCithcHBseSB0byB5b3VyIHVzZSBvZiBhbnkgb2JqZWN0IGNvZGUgaW4gdGhlIENvbnRlbnQuICBDaGVjayB0aGUgUmVkaXN0cmlidXRvcidzIGxpY2Vuc2UgdGhhdCB3YXMgDQorcHJvdmlkZWQgd2l0aCB0aGUgQ29udGVudC4gIElmIG5vIHN1Y2ggbGljZW5zZSBleGlzdHMsIGNvbnRhY3QgdGhlIFJlZGlzdHJpYnV0b3IuICBVbmxlc3Mgb3RoZXJ3aXNlDQoraW5kaWNhdGVkIGJlbG93LCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlIEVQTCBzdGlsbCBhcHBseSB0byBhbnkgc291cmNlIGNvZGUgaW4gdGhlIENvbnRlbnQNCithbmQgc3VjaCBzb3VyY2UgY29kZSBtYXkgYmUgb2J0YWluZWQgYXQgPGEgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy8iPmh0dHA6Ly93d3cuZWNsaXBzZS5vcmc8L2E+LjwvcD4NCisNCis8L2JvZHk+DQorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvYnVpbGQucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvYnVpbGQucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWEyYzc4Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9idWlsZC5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsOSBAQAorc291cmNlLi4gPSBzcmMvDQorb3V0cHV0Li4gPSBiaW4vDQorYmluLmluY2x1ZGVzID0gTUVUQS1JTkYvLFwNCisgICAgICAgICAgICAgICAuLFwNCisgICAgICAgICAgICAgICBwbHVnaW4ueG1sLFwNCisgICAgICAgICAgICAgICBPU0dJLUlORi8sXA0KKyAgICAgICAgICAgICAgIGFib3V0Lmh0bWwNCisNCitzcmMuaW5jbHVkZXMgPSBhYm91dC5odG1sDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9wbHVnaW4ueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9wbHVnaW4ueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjgwYzJmZDUKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3BsdWdpbi54bWwKQEAgLTAsMCArMSwxNzMgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPD9lY2xpcHNlIHZlcnNpb249IjMuNCI/Pg0KKzwhLS0NCisgQ29weXJpZ2h0IChjKSAyMDE0LCAyMDE2IE1pYS1Tb2Z0d2FyZSwgYW5kIFNvZnQtTWFpbnQuDQorIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorIA0KKyBDb250cmlidXRvcnM6DQorICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzNTg5MTQgLSBbTW92ZSB0byBFTUYgRmFjZXRdW0Jyb3dzZXJdIFN3aXRjaCB0byBFTUYgRmFjZXQNCisgICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyMDE5IC0gVG9vbGJhciBhY3Rpb25zIGRpc2FwcGVhciB3aGVuIGZvY3VzIGlzIG5vdCBvbiB0aGUgYnJvd3Nlcg0KKyAgICBUaG9tYXMgQ2ljb2duYW5pIChTb2Z0LU1haW50KSAtIEJ1ZyA0NDIyNTcgLSBOZXcgdG9vbGJhciBhY3Rpb25zIHRvIChkZXMpYWN0aXZhdGUgY3VzdG9taXphdGlvbnMNCisgICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyNzE4IC0gSW1wbGVtZW50IGNvcHkgYWN0aW9uIGluIHRoZSBuZXcgTW9EaXNjbyBCcm93c2VyDQorICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjcxNCAtIE5ldyB0b29sYmFyIGFjdGlvbiB0byBzaG93L2hpZGUgZUNvbnRhaW5lciBsaW5rDQorICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjgwMCAtIEFQSSB0byBvcGVuIG5ldyBNb0Rpc2NvIEJyb3dzZXINCisgICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDcwOTYyIC0gQWRkIHNob3J0Y3V0cyB0byBhY3RpdmF0ZSBjdXN0b21zDQorICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ3MTU5NyAtIFtOZXcgQnJvd3Nlcl0gQWRkIGEgY3VzdG9taXphdGlvbiB0byBkaXNwbGF5IHN1YmNsYXNzZXMgZnJvbSBhbiBFQ2xhc3MNCisgICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDcyMDQxIC0gW05ldyBCcm93c2VyXSBBZGQgYSBjdXN0b21pemF0aW9uIGNvdW50aW5nIGluc3RhbmNlcyBieSBFQ2xhc3MgaW4gdGhlIHNhbWUgUmVzb3VyY2UNCisgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDUwNzYyMiAtIFtOZXcgQnJvd3Nlcl0gVGhlIGNvcHkgaGFuZGxlciBoaWRlcyBoYW5kbGVycyBvZiBvdGhlciBwYXJ0cworLS0+DQorPHBsdWdpbj4NCisgICA8ZXh0ZW5zaW9uIHBvaW50PSJvcmcuZWNsaXBzZS51aS5lZGl0b3JzIj4NCisgICAgICA8ZWRpdG9yDQorICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuZWRpdG9yLlRyZWVFZGl0b3IiDQorICAgICAgICAgICAgZGVmYXVsdD0iZmFsc2UiDQorICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuVHJlZUVkaXRvciINCisgICAgICAgICAgICBuYW1lPSIlVHJlZVJlc291cmNlRWRpdG9yIj4NCisgICAgICAgICA8Y29udGVudFR5cGVCaW5kaW5nDQorICAgICAgICAgICAgICAgY29udGVudFR5cGVJZD0ib3JnLmVjbGlwc2UuZW1mLmVjb3JlLnhtaSI+DQorICAgICAgICAgPC9jb250ZW50VHlwZUJpbmRpbmc+DQorICAgICAgPC9lZGl0b3I+DQorICAgPC9leHRlbnNpb24+DQorICAgPGV4dGVuc2lvbg0KKyAgICAgICAgIHBvaW50PSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY29yZS5tb2RlbFZpZXdlciI+DQorICAgICAgPHJlc291cmNlVmlld2VyDQorICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwub3BlbmVyLlJlc291cmNlQnJvd3Nlck9wZW5lciI+DQorICAgICAgPC9yZXNvdXJjZVZpZXdlcj4NCisgICA8L2V4dGVuc2lvbj4NCisgICA8ZXh0ZW5zaW9uDQorICAgICAgICAgcG9pbnQ9Im9yZy5lY2xpcHNlLnVpLm1lbnVzIj4NCisgICAgICA8bWVudUNvbnRyaWJ1dGlvbg0KKyAgICAgICAgICAgIGFsbFBvcHVwcz0iZmFsc2UiDQorICAgICAgICAgICAgbG9jYXRpb25VUkk9InRvb2xiYXI6b3JnLmVjbGlwc2UudWkubWFpbi50b29sYmFyP2FmdGVyPWFkZGl0aW9ucyI+DQorICAgICAgICAgPHRvb2xiYXINCisgICAgICAgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS50b29sYmFyMSINCisgICAgICAgICAgICAgICBsYWJlbD0iJW1vZGlzY29Ccm93c2VyVG9vbGJhckxhYmVsIj4NCisgICAgICAgICAgICA8Y29tbWFuZA0KKyAgICAgICAgICAgICAgICAgIGNvbW1hbmRJZD0ib3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC51aS5sb2FkRmFjZXQiDQorICAgICAgICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28udXRpbC5lbWZmYWNldC5tZW51LnVpLmxvYWRGYWNldCINCisgICAgICAgICAgICAgICAgICBsYWJlbD0iJUxvYWRVbmxvYWRGYWNldHMiDQorICAgICAgICAgICAgICAgICAgc3R5bGU9InB1bGxkb3duIj4NCisgICAgICAgICAgICAgICA8dmlzaWJsZVdoZW4NCisgICAgICAgICAgICAgICAgICAgICBjaGVja0VuYWJsZWQ9InRydWUiPg0KKyAgICAgICAgICAgICAgICAgIDx3aXRoDQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGU9ImFjdGl2ZUVkaXRvciI+DQorICAgICAgICAgICAgICAgICAgICAgPGluc3RhbmNlb2YNCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbC5lZGl0b3IuVHJlZUVkaXRvciI+DQorICAgICAgICAgICAgICAgICAgICAgPC9pbnN0YW5jZW9mPg0KKyAgICAgICAgICAgICAgICAgIDwvd2l0aD4NCisgICAgICAgICAgICAgICA8L3Zpc2libGVXaGVuPg0KKyAgICAgICAgICAgIDwvY29tbWFuZD4NCisgICAgICAgICAgICA8Y29tbWFuZA0KKyAgICAgICAgICAgICAgICAgIGNvbW1hbmRJZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5jb21tYW5kLmZhY2V0c2V0LmVjb250YWluZXIiDQorICAgICAgICAgICAgICAgICAgbGFiZWw9IiVTaG93RUNvbnRhaW5lckxhYmVsIg0KKyAgICAgICAgICAgICAgICAgIHN0eWxlPSJ0b2dnbGUiPg0KKyAgICAgICAgICAgICAgIDx2aXNpYmxlV2hlbg0KKyAgICAgICAgICAgICAgICAgICAgIGNoZWNrRW5hYmxlZD0idHJ1ZSI+DQorICAgICAgICAgICAgICAgICAgPHdpdGgNCisgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYWJsZT0iYWN0aXZlRWRpdG9yIj4NCisgICAgICAgICAgICAgICAgICAgICA8aW5zdGFuY2VvZg0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmVkaXRvci5UcmVlRWRpdG9yIj4NCisgICAgICAgICAgICAgICAgICAgICA8L2luc3RhbmNlb2Y+DQorICAgICAgICAgICAgICAgICAgPC93aXRoPg0KKyAgICAgICAgICAgICAgIDwvdmlzaWJsZVdoZW4+DQorICAgICAgICAgICAgPC9jb21tYW5kPg0KKyAgICAgICAgICAgIDxjb21tYW5kDQorICAgICAgICAgICAgICAgICAgY29tbWFuZElkPSJvcmcuZWNsaXBzZS5lbWYuZmFjZXQudWkubG9hZEN1c3RvbWl6YXRpb24iDQorICAgICAgICAgICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28udXRpbC5lbWZmYWNldC51aS5tZW51LmxvYWRDdXN0b21pemF0aW9uIg0KKyAgICAgICAgICAgICAgICAgIGxhYmVsPSIlTG9hZFVubG9hZEN1c3RvbXMiDQorICAgICAgICAgICAgICAgICAgc3R5bGU9InB1bGxkb3duIj4NCisgICAgICAgICAgICAgICA8dmlzaWJsZVdoZW4NCisgICAgICAgICAgICAgICAgICAgICBjaGVja0VuYWJsZWQ9InRydWUiPg0KKyAgICAgICAgICAgICAgICAgIDx3aXRoDQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGU9ImFjdGl2ZUVkaXRvciI+DQorICAgICAgICAgICAgICAgICAgICAgPGluc3RhbmNlb2YNCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbC5lZGl0b3IuVHJlZUVkaXRvciI+DQorICAgICAgICAgICAgICAgICAgICAgPC9pbnN0YW5jZW9mPg0KKyAgICAgICAgICAgICAgICAgIDwvd2l0aD4NCisgICAgICAgICAgICAgICA8L3Zpc2libGVXaGVuPg0KKyAgICAgICAgICAgIDwvY29tbWFuZD4NCisgICAgICAgICAgICA8Y29tbWFuZA0KKyAgICAgICAgICAgICAgICAgIGNvbW1hbmRJZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5jb21tYW5kLmxpbmtzY291bnQiDQorICAgICAgICAgICAgICAgICAgbGFiZWw9IiVTaG93TGlua3NMYWJlbCINCisgICAgICAgICAgICAgICAgICBzdHlsZT0idG9nZ2xlIj4NCisgICAgICAgICAgICAgICA8dmlzaWJsZVdoZW4NCisgICAgICAgICAgICAgICAgICAgICBjaGVja0VuYWJsZWQ9InRydWUiPg0KKyAgICAgICAgICAgICAgICAgIDx3aXRoDQorICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFibGU9ImFjdGl2ZUVkaXRvciI+DQorICAgICAgICAgICAgICAgICAgICAgPGluc3RhbmNlb2YNCisgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbC5lZGl0b3IuVHJlZUVkaXRvciI+DQorICAgICAgICAgICAgICAgICAgICAgPC9pbnN0YW5jZW9mPg0KKyAgICAgICAgICAgICAgICAgIDwvd2l0aD4NCisgICAgICAgICAgICAgICA8L3Zpc2libGVXaGVuPg0KKyAgICAgICAgICAgIDwvY29tbWFuZD4NCisgICAgICAgICA8L3Rvb2xiYXI+DQorICAgICAgPC9tZW51Q29udHJpYnV0aW9uPg0KKyAgICAgIDxtZW51Q29udHJpYnV0aW9uDQorICAgICAgICAgICAgYWxsUG9wdXBzPSJmYWxzZSINCisgICAgICAgICAgICBsb2NhdGlvblVSST0ibWVudTpvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWwuZW1mZmFjZXQudWkubWVudS5sb2FkQ3VzdG9taXphdGlvbiI+DQorICAgICAgICAgPGNvbW1hbmQNCisgICAgICAgICAgICAgICBjb21tYW5kSWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuY29tbWFuZC5saW5rc2NvdW50Ig0KKyAgICAgICAgICAgICAgIGxhYmVsPSIlU2hvd0xpbmtzTGFiZWwiDQorICAgICAgICAgICAgICAgc3R5bGU9InRvZ2dsZSI+DQorICAgICAgICAgPC9jb21tYW5kPg0KKyAgICAgIDwvbWVudUNvbnRyaWJ1dGlvbj4NCisgICAgICA8bWVudUNvbnRyaWJ1dGlvbg0KKyAgICAgICAgICAgIGFsbFBvcHVwcz0idHJ1ZSINCisgICAgICAgICAgICBsb2NhdGlvblVSST0icG9wdXA6b3JnLmVjbGlwc2UudWkucG9wdXAuYW55Ij4NCisgICAgICAgICA8Y29tbWFuZA0KKyAgICAgICAgICAgICAgIGNvbW1hbmRJZD0ib3JnLmVjbGlwc2UudWkuZWRpdC5jb3B5Ig0KKyAgICAgICAgICAgICAgIGxhYmVsPSIlQ29weUxhYmVsIg0KKyAgICAgICAgICAgICAgIHN0eWxlPSJwdXNoIj4NCisgICAgICAgICAgICA8dmlzaWJsZVdoZW4NCisgICAgICAgICAgICAgICAgICBjaGVja0VuYWJsZWQ9ImZhbHNlIj4NCisgICAgICAgICAgICAgICA8d2l0aA0KKyAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlPSJhY3RpdmVQYXJ0Ij4NCisgICAgICAgICAgICAgICAgICA8aW5zdGFuY2VvZg0KKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmVkaXRvci5UcmVlRWRpdG9yIj4NCisgICAgICAgICAgICAgICAgICA8L2luc3RhbmNlb2Y+DQorICAgICAgICAgICAgICAgPC93aXRoPg0KKyAgICAgICAgICAgIDwvdmlzaWJsZVdoZW4+DQorICAgICAgICAgPC9jb21tYW5kPg0KKyAgICAgIDwvbWVudUNvbnRyaWJ1dGlvbj4NCisgICA8L2V4dGVuc2lvbj4NCisgICA8ZXh0ZW5zaW9uDQorICAgICAgICAgcG9pbnQ9Im9yZy5lY2xpcHNlLnVpLmNvbW1hbmRzIj4NCisgICAgICA8Y29tbWFuZA0KKyAgICAgICAgICAgIGRlZmF1bHRIYW5kbGVyPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmhhbmRsZXJzLkxpbmtzQ291bnRIYW5kbGVyIg0KKyAgICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmNvbW1hbmQubGlua3Njb3VudCINCisgICAgICAgICAgICBuYW1lPSIlU2hvd0xpbmtzTGFiZWwiPg0KKyAgICAgICAgIDxzdGF0ZQ0KKyAgICAgICAgICAgICAgIGNsYXNzPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmhhbmRsZXJzLkxpbmtzQ291bnRTdGF0ZSINCisgICAgICAgICAgICAgICBpZD0ib3JnLmVjbGlwc2UudWkuY29tbWFuZHMudG9nZ2xlU3RhdGUiPg0KKyAgICAgICAgIDwvc3RhdGU+DQorICAgICAgPC9jb21tYW5kPg0KKyAgIDwvZXh0ZW5zaW9uPg0KKyAgIDxleHRlbnNpb24NCisgICAgICAgICBwb2ludD0ib3JnLmVjbGlwc2UudWkuaGFuZGxlcnMiPg0KKyAgICAgIDxoYW5kbGVyDQorICAgICAgICAgICAgY2xhc3M9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuaGFuZGxlcnMuQ29weUhhbmRsZXIiDQorICAgICAgICAgICAgY29tbWFuZElkPSJvcmcuZWNsaXBzZS51aS5lZGl0LmNvcHkiPg0KKyAgICAgICAgIDxhY3RpdmVXaGVuPg0KKyAgICAgICAgICAgIDxhbmQ+DQorICAgICAgICAgICAgICAgIDx3aXRoIHZhcmlhYmxlPSJzZWxlY3Rpb24iPg0KKyAgICAgICAgICAgICAgICAgICA8aXRlcmF0ZQ0KKyAgICAgICAgICAgICAgICAgICAgICAgICBpZkVtcHR5PSJmYWxzZSINCisgICAgICAgICAgICAgICAgICAgICAgICAgb3BlcmF0b3I9ImFuZCI+DQorICAgICAgICAgICAgICAgICAgICAgIDxpbnN0YW5jZW9mDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJvcmcuZWNsaXBzZS5lbWYuZWNvcmUuRU9iamVjdCI+DQorICAgICAgICAgICAgICAgICAgICAgIDwvaW5zdGFuY2VvZj4NCisgICAgICAgICAgICAgICAgICAgPC9pdGVyYXRlPg0KKyAgICAgICAgICAgICAgICA8L3dpdGg+DQorICAgICAgICAgICAgICAgIDx3aXRoIHZhcmlhYmxlPSJhY3RpdmVQYXJ0Ij4NCisgICAgICAgICAgICAgICAgICAgPGluc3RhbmNlb2YNCisgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmVkaXRvci5UcmVlRWRpdG9yIj4NCisgICAgICAgICAgICAgICAgICAgPC9pbnN0YW5jZW9mPg0KKyAgICAgICAgICAgICAgICA8L3dpdGg+DQorICAgICAgICAgICAgPC9hbmQ+DQorICAgICAgICAgPC9hY3RpdmVXaGVuPg0KKyAgICAgIDwvaGFuZGxlcj4NCisgICA8L2V4dGVuc2lvbj4NCis8L3BsdWdpbj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNTM0MDY4Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9BY3RpdmF0b3IuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKiogDQorICogQ29weXJpZ2h0IChjKSAyMDE0IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1ODkxNCAtIFtNb3ZlIHRvIEVNRiBGYWNldF1bQnJvd3Nlcl0gU3dpdGNoIHRvIEVNRiBGYWNldA0KKyAqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbDsNCisNCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLlBsdWdpbjsNCitpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7DQorDQorQFN1cHByZXNzV2FybmluZ3MoIlBNRC5Vc2VTaW5nbGV0b24iKQ0KKy8vIEBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuVXNlU2luZ2xldG9uIikgV2UgY2Fubm90IGNvbmZvcm1zIHRvIHRoaXMgcnVsZSBiZWNhdXNlDQorLy8gdGhpcyBjbGFzcyBpcyBhbiBFY2xpcHNlIHBsdWctaW4gYWN0aXZhdG9yIHdoaWNoIHdpbGwgYmUgaW5zdGFudGlhdGVkIGJ5IHRoZQ0KKy8vIEVjbGlwc2UgZnJhbWV3b3JrLg0KK3B1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBQbHVnaW4gew0KKw0KKwlwcml2YXRlIHN0YXRpYyBBY3RpdmF0b3IgcGx1Z2luOw0KKw0KKwlAT3ZlcnJpZGUNCisJQFN1cHByZXNzV2FybmluZ3MoIlBNRC5TaWduYXR1cmVEZWNsYXJlVGhyb3dzRXhjZXB0aW9uIikNCisJLy8gQFN1cHByZXNzV2FybmluZ3MoIlBNRC5TaWduYXR1cmVEZWNsYXJlVGhyb3dzRXhjZXB0aW9uIikgV2UgaGF2ZSB0byB1c2UNCisJLy8gdGhpcyBzaWduYXR1cmUgYmVjYXVzZSB0aGlzIGlzIGFuIG92ZXJyaWRlIG9mIGFuIEVjbGlwc2UgZnJhbWV3b3JrJ3MNCisJLy8gbWV0aG9kLg0KKwlwdWJsaWMgdm9pZCBzdGFydChmaW5hbCBCdW5kbGVDb250ZXh0IGJ1bmRsZUNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gew0KKwkJc3VwZXIuc3RhcnQoYnVuZGxlQ29udGV4dCk7DQorCQlBY3RpdmF0b3IucGx1Z2luID0gdGhpczsNCisJfQ0KKw0KKwlAT3ZlcnJpZGUNCisJQFN1cHByZXNzV2FybmluZ3MoIlBNRC5TaWduYXR1cmVEZWNsYXJlVGhyb3dzRXhjZXB0aW9uIikNCisJLy8gQFN1cHByZXNzV2FybmluZ3MoIlBNRC5TaWduYXR1cmVEZWNsYXJlVGhyb3dzRXhjZXB0aW9uIikgV2UgaGF2ZSB0byB1c2UNCisJLy8gdGhpcyBzaWduYXR1cmUgYmVjYXVzZSB0aGlzIGlzIGFuIG92ZXJyaWRlIG9mIGFuIEVjbGlwc2UgZnJhbWV3b3JrJ3MNCisJLy8gbWV0aG9kLg0KKwlwdWJsaWMgdm9pZCBzdG9wKGZpbmFsIEJ1bmRsZUNvbnRleHQgYnVuZGxlQ29udGV4dCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorCQkvLyBOT1BNRDogUE1EIHNheSAiQXNzaWduaW5nIGFuIE9iamVjdCB0byBudWxsIGlzIGEgY29kZSBzbWVsbC4iDQorCQkvLyBObyBjaG9pY2UgdG8gcmlnaHQgaXQgaW4gYW5vdGhlciB3YXkgOiB0aGlzIGlzIGFuIEVjbGlwc2UgcGF0dGVybi4NCisJCUFjdGl2YXRvci5wbHVnaW4gPSBudWxsOyAvLyBOT1BNRCBieSBnZHVwZSBvbiAzMC8wMy8xMiAxMDoxOQ0KKwkJc3VwZXIuc3RvcChidW5kbGVDb250ZXh0KTsNCisJfQ0KKw0KKwlwdWJsaWMgc3RhdGljIFBsdWdpbiBnZXREZWZhdWx0KCkgew0KKwkJcmV0dXJuIEFjdGl2YXRvci5wbHVnaW47DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9NZXNzYWdlcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEyODk1NTAKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL01lc3NhZ2VzLmphdmEKQEAgLTAsMCArMSwyNSBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzNTg5MTQgLSBbTW92ZSB0byBFTUYgRmFjZXRdW0Jyb3dzZXJdIFN3aXRjaCB0byBFTUYgRmFjZXQNCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWw7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQorDQorcHVibGljIGNsYXNzIE1lc3NhZ2VzIGV4dGVuZHMgTkxTIHsNCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEJVTkRMRV9OQU1FID0gIm9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkubWVzc2FnZXMiOyAvLyROT04tTkxTLTEkDQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIFJlc291cmNlQnJvd3Nlck9wZW5lcl9FbWZGYWNldERlZmF1bHRUcmVlQnJvd3NlcjsNCisJc3RhdGljIHsNCisJCS8vIGluaXRpYWxpemUgcmVzb3VyY2UgYnVuZGxlDQorCQlOTFMuaW5pdGlhbGl6ZU1lc3NhZ2VzKEJVTkRMRV9OQU1FLCBNZXNzYWdlcy5jbGFzcyk7DQorCX0NCisNCisJcHJpdmF0ZSBNZXNzYWdlcygpIHsNCisJfQ0KK30NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2VkaXRvci9UcmVlRWRpdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2VkaXRvci9UcmVlRWRpdG9yLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2NlMDExZgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvZWRpdG9yL1RyZWVFZGl0b3IuamF2YQpAQCAtMCwwICsxLDE5NSBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzNTg5MTQgLSBbTW92ZSB0byBFTUYgRmFjZXRdW0Jyb3dzZXJdIFN3aXRjaCB0byBFTUYgRmFjZXQNCisgKiAgICBUaG9tYXMgQ2ljb2duYW5pIChTb2Z0LU1haW50KSAtIEJ1ZyA0NDI3MTggLSBJbXBsZW1lbnQgY29weSBhY3Rpb24gaW4gdGhlIG5ldyBNb0Rpc2NvIEJyb3dzZXINCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuZWRpdG9yOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JRmlsZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLklQYXRoOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5jb21tYW5kLkJhc2ljQ29tbWFuZFN0YWNrOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLmNvbW1hbmQuQ29tbWFuZFN0YWNrOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLm5vdGlmeS5BZGFwdGVyRmFjdG9yeTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi5ub3RpZnkuaW1wbC5BZGFwdGVyRmFjdG9yeUltcGw7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlU2V0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuaW1wbC5SZXNvdXJjZVNldEltcGw7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LmRvbWFpbi5BZGFwdGVyRmFjdG9yeUVkaXRpbmdEb21haW47DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lZGl0LmRvbWFpbi5FZGl0aW5nRG9tYWluOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWRpdC5kb21haW4uSUVkaXRpbmdEb21haW5Qcm92aWRlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS5jb3JlLklDdXN0b21pemF0aW9uTWFuYWdlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS5jb3JlLklDdXN0b21pemF0aW9uTWFuYWdlckZhY3Rvcnk7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5jdXN0b20uY29yZS5JQ3VzdG9taXphdGlvbk1hbmFnZXJQcm92aWRlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS51aS5JQ3VzdG9taXplZENvbnRlbnRQcm92aWRlckZhY3Rvcnk7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5jdXN0b20udWkuSVJlc29sdmluZ0N1c3RvbWl6ZWRMYWJlbFByb3ZpZGVyRmFjdG9yeTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC5jb3JlLklGYWNldE1hbmFnZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC5lZmFjZXQuY29yZS5JRmFjZXRNYW5hZ2VyRmFjdG9yeTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC5jb3JlLklGYWNldE1hbmFnZXJMaXN0ZW5lcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC5jb3JlLklGYWNldE1hbmFnZXJQcm92aWRlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2UuYWN0aW9uLk1lbnVNYW5hZ2VyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLklDb250ZW50UHJvdmlkZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuSUxhYmVsUHJvdmlkZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuSVNlbGVjdGlvblByb3ZpZGVyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLlRyZWVWaWV3ZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuQWN0aXZhdG9yOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLm9wZW5lci5SZXNvdXJjZUVkaXRvcklucHV0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5Db21wb3NpdGU7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLk1lbnU7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnVpLklFZGl0b3JJbnB1dDsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuSUVkaXRvclNpdGU7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnVpLlBhcnRJbml0RXhjZXB0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5wYXJ0LkVkaXRvclBhcnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnVpLnBhcnQuRmlsZUVkaXRvcklucHV0Ow0KKw0KK3B1YmxpYyBjbGFzcyBUcmVlRWRpdG9yIGV4dGVuZHMgRWRpdG9yUGFydCBpbXBsZW1lbnRzIElFZGl0aW5nRG9tYWluUHJvdmlkZXIsDQorCQlJRmFjZXRNYW5hZ2VyUHJvdmlkZXIsIElDdXN0b21pemF0aW9uTWFuYWdlclByb3ZpZGVyIHsNCisNCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIEVESVRPUl9JRCA9IEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkNCisJCQkuZ2V0U3ltYm9saWNOYW1lKCkgKyAiLlRyZWVFZGl0b3IiOyAvLyROT04tTkxTLTEkDQorCXByaXZhdGUgUmVzb3VyY2UgcmVzb3VyY2U7DQorCXByaXZhdGUgUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQ7DQorCXByaXZhdGUgRWRpdGluZ0RvbWFpbiBlZGl0aW5nRG9tYWluOw0KKwlwcml2YXRlIElGYWNldE1hbmFnZXIgZmFjZXRNYW5hZ2VyOw0KKwlwcml2YXRlIElDdXN0b21pemF0aW9uTWFuYWdlciBjdXN0b21NYW5hZ2VyOw0KKwlwcml2YXRlIFRyZWVWaWV3ZXIgdHJlZTsNCisJcHJpdmF0ZSBJRmFjZXRNYW5hZ2VyTGlzdGVuZXIgZmFjZXRNZ3JMaXN0ZW5lcjsNCisNCisJQE92ZXJyaWRlDQorCXB1YmxpYyB2b2lkIGRvU2F2ZShmaW5hbCBJUHJvZ3Jlc3NNb25pdG9yIG1vbml0b3IpIHsNCisJCS8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWINCisJfQ0KKw0KKwlAT3ZlcnJpZGUNCisJcHVibGljIHZvaWQgZG9TYXZlQXMoKSB7DQorCQkvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViDQorCX0NCisNCisJQE92ZXJyaWRlDQorCXB1YmxpYyB2b2lkIGluaXQoZmluYWwgSUVkaXRvclNpdGUgc2l0ZSwgZmluYWwgSUVkaXRvcklucHV0IGlucHV0KQ0KKwkJCXRocm93cyBQYXJ0SW5pdEV4Y2VwdGlvbiB7DQorCQlzZXRTaXRlKHNpdGUpOw0KKwkJc2V0SW5wdXQoaW5wdXQpOw0KKwkJaWYgKGlucHV0IGluc3RhbmNlb2YgRmlsZUVkaXRvcklucHV0KSB7DQorCQkJZmluYWwgRmlsZUVkaXRvcklucHV0IGZpbGVFSSA9IChGaWxlRWRpdG9ySW5wdXQpIGlucHV0Ow0KKwkJCWZpbmFsIElGaWxlIGZpbGUgPSBmaWxlRUkuZ2V0RmlsZSgpOw0KKwkJCWZpbmFsIElQYXRoIHBhdGggPSBmaWxlLmdldEZ1bGxQYXRoKCk7DQorCQkJZmluYWwgU3RyaW5nIHBhdGhTdHIgPSBwYXRoLnRvU3RyaW5nKCk7DQorCQkJZmluYWwgVVJJIHVyaSA9IFVSSS5jcmVhdGVQbGF0Zm9ybVJlc291cmNlVVJJKHBhdGhTdHIsIHRydWUpOw0KKwkJCXRoaXMucmVzb3VyY2VTZXQgPSBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7DQorCQkJdGhpcy5yZXNvdXJjZSA9IHRoaXMucmVzb3VyY2VTZXQuZ2V0UmVzb3VyY2UodXJpLCB0cnVlKTsNCisJCX0gZWxzZSBpZiAoaW5wdXQgaW5zdGFuY2VvZiBSZXNvdXJjZUVkaXRvcklucHV0KSB7DQorCQkJZmluYWwgUmVzb3VyY2VFZGl0b3JJbnB1dCByZXNvdXJjZUVJID0gKFJlc291cmNlRWRpdG9ySW5wdXQpIGlucHV0Ow0KKwkJCXRoaXMucmVzb3VyY2UgPSByZXNvdXJjZUVJLmdldFJlc291cmNlKCk7DQorCQkJdGhpcy5yZXNvdXJjZVNldCA9IHRoaXMucmVzb3VyY2UuZ2V0UmVzb3VyY2VTZXQoKTsNCisJCX0NCisJCWZpbmFsIEFkYXB0ZXJGYWN0b3J5IGFkYXB0ZXJGYWN0b3J5ID0gbmV3IEFkYXB0ZXJGYWN0b3J5SW1wbCgpOw0KKwkJZmluYWwgQ29tbWFuZFN0YWNrIGNvbW1hbmRTdGFjayA9IG5ldyBCYXNpY0NvbW1hbmRTdGFjaygpOw0KKwkJdGhpcy5lZGl0aW5nRG9tYWluID0gbmV3IEFkYXB0ZXJGYWN0b3J5RWRpdGluZ0RvbWFpbihhZGFwdGVyRmFjdG9yeSwNCisJCQkJY29tbWFuZFN0YWNrLCB0aGlzLnJlc291cmNlU2V0KTsNCisJfQ0KKwkNCisJDQorCXByaXZhdGUgdm9pZCBjcmVhdGVQb3B1cE1lbnUoKSB7DQorCQlmaW5hbCBNZW51TWFuYWdlciBtZW51TWdyID0gbmV3IE1lbnVNYW5hZ2VyKCIjUG9wdXBNZW51Iik7IC8vJE5PTi1OTFMtMSQNCisJCW1lbnVNZ3Iuc2V0UmVtb3ZlQWxsV2hlblNob3duKHRydWUpOw0KKwkJZmluYWwgTWVudSBtZW51ID0gbWVudU1nci5jcmVhdGVDb250ZXh0TWVudSh0aGlzLnRyZWUuZ2V0Q29udHJvbCgpKTsNCisJCXRoaXMudHJlZS5nZXRDb250cm9sKCkuc2V0TWVudShtZW51KTsNCisJCWdldFNpdGUoKS5yZWdpc3RlckNvbnRleHRNZW51KG1lbnVNZ3IsIHRoaXMudHJlZSk7DQorCX0NCisNCisJQE92ZXJyaWRlDQorCXB1YmxpYyBib29sZWFuIGlzRGlydHkoKSB7DQorCQkvLyBUT0RPIEF1dG8tZ2VuZXJhdGVkIG1ldGhvZCBzdHViDQorCQlyZXR1cm4gZmFsc2U7DQorCX0NCisNCisJQE92ZXJyaWRlDQorCXB1YmxpYyBib29sZWFuIGlzU2F2ZUFzQWxsb3dlZCgpIHsNCisJCS8vIFRPRE8gQXV0by1nZW5lcmF0ZWQgbWV0aG9kIHN0dWINCisJCXJldHVybiBmYWxzZTsNCisJfQ0KKw0KKwlAT3ZlcnJpZGUNCisJcHVibGljIHZvaWQgY3JlYXRlUGFydENvbnRyb2woZmluYWwgQ29tcG9zaXRlIHBhcmVudCkgew0KKwkJdGhpcy50cmVlID0gbmV3IFRyZWVWaWV3ZXIocGFyZW50KTsNCisJCXRoaXMuZmFjZXRNYW5hZ2VyID0gSUZhY2V0TWFuYWdlckZhY3RvcnkuREVGQVVMVA0KKwkJCQkuZ2V0T3JDcmVhdGVGYWNldE1hbmFnZXIodGhpcy5yZXNvdXJjZVNldCk7DQorCQl0aGlzLmN1c3RvbU1hbmFnZXIgPSBJQ3VzdG9taXphdGlvbk1hbmFnZXJGYWN0b3J5LkRFRkFVTFQNCisJCQkJLmdldE9yQ3JlYXRlSUN1c3RvbWl6YXRpb25NYW5hZ2VyKHRoaXMucmVzb3VyY2VTZXQpOw0KKwkJZmluYWwgSUxhYmVsUHJvdmlkZXIgbGFiZWxQcm92aWRlciA9IElSZXNvbHZpbmdDdXN0b21pemVkTGFiZWxQcm92aWRlckZhY3RvcnkuREVGQVVMVA0KKwkJCQkuY3JlYXRlQ3VzdG9taXplZExhYmVsUHJvdmlkZXIodGhpcy5jdXN0b21NYW5hZ2VyKTsNCisJCWZpbmFsIElDb250ZW50UHJvdmlkZXIgY29udGVudFByb3ZpZGVyID0gSUN1c3RvbWl6ZWRDb250ZW50UHJvdmlkZXJGYWN0b3J5LkRFRkFVTFQNCisJCQkJLmNyZWF0ZUN1c3RvbWl6ZWRUcmVlQ29udGVudFByb3ZpZGVyKHRoaXMuY3VzdG9tTWFuYWdlcik7DQorCQl0aGlzLnRyZWUuc2V0Q29udGVudFByb3ZpZGVyKGNvbnRlbnRQcm92aWRlcik7DQorCQl0aGlzLnRyZWUuc2V0TGFiZWxQcm92aWRlcihsYWJlbFByb3ZpZGVyKTsNCisJCXRoaXMudHJlZS5zZXRJbnB1dCh0aGlzLnJlc291cmNlLmdldENvbnRlbnRzKCkpOw0KKwkJZ2V0U2l0ZSgpLnNldFNlbGVjdGlvblByb3ZpZGVyKHRoaXMudHJlZSk7DQorCQl0aGlzLmZhY2V0TWdyTGlzdGVuZXIgPSBuZXcgSUZhY2V0TWFuYWdlckxpc3RlbmVyKCkgew0KKwkJCXB1YmxpYyB2b2lkIGZhY2V0TWFuYWdlckNoYW5nZWQoKSB7DQorCQkJCVRyZWVFZGl0b3IudGhpcy5yZWZyZXNoKCk7DQorCQkJfQ0KKwkJfTsNCisJCWNyZWF0ZVBvcHVwTWVudSgpOw0KKwkJdGhpcy5mYWNldE1hbmFnZXIuYWRkTGlzdGVuZXIodGhpcy5mYWNldE1nckxpc3RlbmVyKTsNCisJfQ0KKw0KKwlwcm90ZWN0ZWQgdm9pZCByZWZyZXNoKCkgew0KKwkJZmluYWwgT2JqZWN0W10gZXhwYW5lZGVkRWx0cyA9IHRoaXMudHJlZS5nZXRFeHBhbmRlZEVsZW1lbnRzKCk7DQorCQl0aGlzLnRyZWUucmVmcmVzaCgpOw0KKwkJdGhpcy50cmVlLnNldEV4cGFuZGVkRWxlbWVudHMoZXhwYW5lZGVkRWx0cyk7DQorCX0NCisNCisJQE92ZXJyaWRlDQorCXB1YmxpYyB2b2lkIHNldEZvY3VzKCkgew0KKwkJLy8gVE9ETyBBdXRvLWdlbmVyYXRlZCBtZXRob2Qgc3R1Yg0KKw0KKwl9DQorDQorCXB1YmxpYyBzdGF0aWMgU3RyaW5nIGdldEVkaXRvcklkKCkgew0KKwkJcmV0dXJuIEVESVRPUl9JRDsNCisJfQ0KKw0KKwlwdWJsaWMgRWRpdGluZ0RvbWFpbiBnZXRFZGl0aW5nRG9tYWluKCkgew0KKwkJcmV0dXJuIHRoaXMuZWRpdGluZ0RvbWFpbjsNCisJfQ0KKwkNCisJQE92ZXJyaWRlDQorCXB1YmxpYyBPYmplY3QgZ2V0QWRhcHRlcihAU3VwcHJlc3NXYXJuaW5ncygicmF3dHlwZXMiKSBmaW5hbCBDbGFzcyBhZGFwdGVyKSB7DQorCQkvKiBAU3VwcHJlc3NXYXJuaW5ncygicmF3dHlwZXMiKTogZ2R1cGU+IEltcG9zZWQgYnkgdGhlIHN1cGVyIGNsYXNzICovDQorCQlPYmplY3QgcmVzdWx0ID0gbnVsbDsNCisJCWlmIChhZGFwdGVyLmlzSW5zdGFuY2UodGhpcykpIHsNCisJCQlyZXN1bHQgPSB0aGlzOw0KKwkJfSBlbHNlIGlmIChhZGFwdGVyID09IElTZWxlY3Rpb25Qcm92aWRlci5jbGFzcykgew0KKwkJCXJlc3VsdCA9IHRoaXMudHJlZTsNCisJCX0gZWxzZSB7DQorCQkJcmVzdWx0ID0gc3VwZXIuZ2V0QWRhcHRlcihhZGFwdGVyKTsNCisJCX0NCisJCXJldHVybiByZXN1bHQ7DQorCX0NCisNCisJcHVibGljIElDdXN0b21pemF0aW9uTWFuYWdlciBnZXRDdXN0b21pemF0aW9uTWFuYWdlcigpIHsNCisJCXJldHVybiB0aGlzLmN1c3RvbU1hbmFnZXI7DQorCX0NCisNCisJcHVibGljIElGYWNldE1hbmFnZXIgZ2V0RmFjZXRNYW5hZ2VyKCkgew0KKwkJcmV0dXJuIHRoaXMuZmFjZXRNYW5hZ2VyOw0KKwl9DQorCQ0KKwlAT3ZlcnJpZGUNCisJcHVibGljIHZvaWQgZGlzcG9zZSgpIHsNCisJCXRoaXMuZmFjZXRNYW5hZ2VyLnJlbW92ZUxpc3RlbmVyKHRoaXMuZmFjZXRNZ3JMaXN0ZW5lcik7DQorCQlzdXBlci5kaXNwb3NlKCk7DQorCX0NCisNCisJcHVibGljIElMYWJlbFByb3ZpZGVyIGdldFZpZXdlckxhYmVsUHJvdmlkZXIoKSB7DQorCQlyZXR1cm4gKElMYWJlbFByb3ZpZGVyKSB0aGlzLnRyZWUuZ2V0TGFiZWxQcm92aWRlcigpOw0KKwl9DQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvaGFuZGxlcnMvQWJzdHJhY3RGYWNldFNldEFjdGl2YXRvckhhbmRsZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvaGFuZGxlcnMvQWJzdHJhY3RGYWNldFNldEFjdGl2YXRvckhhbmRsZXIuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZGMzNjViCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9BYnN0cmFjdEZhY2V0U2V0QWN0aXZhdG9ySGFuZGxlci5qYXZhCkBAIC0wLDAgKzEsOTAgQEAKKy8qKiANCisgKiBDb3B5cmlnaHQgKGMpIDIwMTQgU29mdC1NYWludC4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBUaG9tYXMgQ2ljb2duYW5pIChTb2Z0LU1haW50KSAtIEJ1ZyA0NDIyNTcgLSBOZXcgdG9vbGJhciBhY3Rpb25zIHRvIChkZXMpYWN0aXZhdGUgY3VzdG9taXphdGlvbnMNCisgKiAgICBUaG9tYXMgQ2ljb2duYW5pIChTb2Z0LU1haW50KSAtIEJ1ZyA0NDI3MTQgLSBOZXcgdG9vbGJhciBhY3Rpb24gdG8gc2hvdy9oaWRlIGVDb250YWluZXIgbGluaw0KKyAqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbC5oYW5kbGVyczsNCisNCitpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuY29tbWFuZHMuQWJzdHJhY3RIYW5kbGVyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLmNvbW1hbmRzLkV4ZWN1dGlvbkV2ZW50Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLmNvbW1hbmRzLkV4ZWN1dGlvbkV4Y2VwdGlvbjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS5jb3JlLklDdXN0b21pemF0aW9uTWFuYWdlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmN1c3RvbS5jb3JlLklDdXN0b21pemF0aW9uTWFuYWdlclByb3ZpZGVyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0LmNvcmUuSUZhY2V0TWFuYWdlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC5jb3JlLklGYWNldFNldENhdGFsb2dNYW5hZ2VyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0LmNvcmUuSUZhY2V0U2V0Q2F0YWxvZ01hbmFnZXJGYWN0b3J5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0Lm1ldGFtb2RlbC52MF8yXzAuZWZhY2V0LkZhY2V0U2V0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5JV29ya2JlbmNoUGFydDsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuaGFuZGxlcnMuSGFuZGxlclV0aWw7DQorDQorLyoqDQorICogQWJzdHJhY3QgSGFuZGxlciB0byBtYW5hZ2UgbWVudSB0b29sYmFyIHNob3J0Y3V0cy4gVGhlc2Ugc2hvcnRjdXRzIGFsbG93DQorICogdXNlcnMgdG8gKGRlcylhY3RpdmF0ZSBmYWNldCBzZXRzIChjdXN0b21pemF0aW9ucyBhcmUgZmFjZXQgc2V0cykuIElmIHlvdQ0KKyAqIHdhbnQgdG8gY3JlYXRlIGEgbWVudSBzaG9ydGN1dCwgeW91ciBIYW5kbGVyIG11c3QgZXh0ZW5kcyB0aGlzIGNsYXNzDQorICovDQorcHVibGljIGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmFjZXRTZXRBY3RpdmF0b3JIYW5kbGVyIGV4dGVuZHMgQWJzdHJhY3RIYW5kbGVyIHsNCisNCisJLyoqDQorCSAqIEV4ZWN1dGUgdGhlIEhhbmRsZXINCisJICogDQorCSAqIEBwYXJhbSBldmVudA0KKwkgKiAgICAgICAgICAgIFRoZSBleGVjdXRpb24gZXZlbnQgdGhhdCBjb250YWlucyB0aGUgYXBwbGljYXRpb24gY29udGV4dA0KKwkgKiBAcGFyYW0gZmFjZXRTZXRJRA0KKwkgKiAgICAgICAgICAgIElEIG9mIHRoZSBmYWNldCBzZXQgbGlua2VkIHRvIHRoaXMgSGFuZGxlcg0KKwkgKiBAcmV0dXJuIHRoZSByZXN1bHQgb2YgdGhlIGV4ZWN1dGlvbi4gUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UsIGNhbiBiZQ0KKwkgKiAgICAgICAgIG51bGwuDQorCSAqIEB0aHJvd3MgRXhlY3V0aW9uRXhjZXB0aW9uDQorCSAqLw0KKwlwcm90ZWN0ZWQgc3RhdGljIE9iamVjdCBleGVjdXRlKGZpbmFsIEV4ZWN1dGlvbkV2ZW50IGV2ZW50LA0KKwkJCWZpbmFsIFN0cmluZyBmYWNldFNldElEKSB0aHJvd3MgRXhlY3V0aW9uRXhjZXB0aW9uIHsNCisJCWZpbmFsIGJvb2xlYW4gdG9nZ2xlID0gSGFuZGxlclV0aWwudG9nZ2xlQ29tbWFuZFN0YXRlKGV2ZW50DQorCQkJCS5nZXRDb21tYW5kKCkpOw0KKwkJZmluYWwgSVdvcmtiZW5jaFBhcnQgYWN0aXZlUGFydCA9IEhhbmRsZXJVdGlsLmdldEFjdGl2ZVBhcnQoZXZlbnQpOw0KKwkJaWYgKGFjdGl2ZVBhcnQgIT0gbnVsbCkgew0KKwkJCWZpbmFsIElDdXN0b21pemF0aW9uTWFuYWdlclByb3ZpZGVyIGN1c3RvbU1nclByb3ZpZGVyID0gKElDdXN0b21pemF0aW9uTWFuYWdlclByb3ZpZGVyKSBhY3RpdmVQYXJ0DQorCQkJCQkuZ2V0QWRhcHRlcihJQ3VzdG9taXphdGlvbk1hbmFnZXJQcm92aWRlci5jbGFzcyk7DQorCQkJaWYgKGN1c3RvbU1nclByb3ZpZGVyICE9IG51bGwpIHsNCisJCQkJZXhlY3V0ZShmYWNldFNldElELCB0b2dnbGUsIGN1c3RvbU1nclByb3ZpZGVyKTsNCisJCQl9DQorCQl9DQorCQlyZXR1cm4gbnVsbDsNCisJfQ0KKw0KKwlwcml2YXRlIHN0YXRpYyB2b2lkIGV4ZWN1dGUoZmluYWwgU3RyaW5nIGZhY2V0U2V0SUQsIGZpbmFsIGJvb2xlYW4gdG9nZ2xlLA0KKwkJCWZpbmFsIElDdXN0b21pemF0aW9uTWFuYWdlclByb3ZpZGVyIGN1c3RvbU1nclByb3ZpZGVyKSB7DQorCQlmaW5hbCBJQ3VzdG9taXphdGlvbk1hbmFnZXIgbWFuYWdlciA9IGN1c3RvbU1nclByb3ZpZGVyDQorCQkJCS5nZXRDdXN0b21pemF0aW9uTWFuYWdlcigpOw0KKw0KKwkJZmluYWwgSUZhY2V0U2V0Q2F0YWxvZ01hbmFnZXIgY2F0YWxvZyA9IElGYWNldFNldENhdGFsb2dNYW5hZ2VyRmFjdG9yeS5ERUZBVUxUDQorCQkJCS5nZXRPckNyZWF0ZUZhY2V0U2V0Q2F0YWxvZ01hbmFnZXIobWFuYWdlci5nZXRSZXNvdXJjZVNldCgpKTsNCisNCisJCUZhY2V0U2V0IGZhY2V0U2V0VG9BY3RpdmUgPSBudWxsOw0KKwkJZm9yIChGYWNldFNldCBmYWNldFNldCA6IGNhdGFsb2cuZ2V0UmVnaXN0ZXJlZEZhY2V0U2V0cygpKSB7DQorCQkJaWYgKGZhY2V0U2V0SUQuZXF1YWxzKGZhY2V0U2V0LmdldE5hbWUoKSkpIHsNCisJCQkJZmFjZXRTZXRUb0FjdGl2ZSA9IGZhY2V0U2V0Ow0KKwkJCQlicmVhazsNCisJCQl9DQorCQl9DQorCQlpZiAoZmFjZXRTZXRUb0FjdGl2ZSAhPSBudWxsKSB7DQorCQkJZmluYWwgSUZhY2V0TWFuYWdlciBmYWNldE1hbmFnZXIgPSBtYW5hZ2VyLmdldEZhY2V0TWFuYWdlcigpOw0KKwkJCWZpbmFsIExpc3Q8RmFjZXRTZXQ+IG1hbmFnZWRGYWNldFNldHMgPSBmYWNldE1hbmFnZXINCisJCQkJCS5nZXRNYW5hZ2VkRmFjZXRTZXRzKCk7DQorCQkJaWYgKHRvZ2dsZSkgew0KKwkJCQltYW5hZ2VkRmFjZXRTZXRzLnJlbW92ZShmYWNldFNldFRvQWN0aXZlKTsNCisJCQl9IGVsc2Ugew0KKwkJCQlpZiAoIW1hbmFnZWRGYWNldFNldHMuY29udGFpbnMoZmFjZXRTZXRUb0FjdGl2ZSkpIHsNCisJCQkJCW1hbmFnZWRGYWNldFNldHMuYWRkKDAsIGZhY2V0U2V0VG9BY3RpdmUpOw0KKwkJCQl9DQorCQkJfQ0KKwkJfQ0KKwl9DQorDQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvaGFuZGxlcnMvQWJzdHJhY3RGYWNldFNldEFjdGl2YXRvclRvZ2dsZVN0YXRlLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0Fic3RyYWN0RmFjZXRTZXRBY3RpdmF0b3JUb2dnbGVTdGF0ZS5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEzNzA4MjAKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0Fic3RyYWN0RmFjZXRTZXRBY3RpdmF0b3JUb2dnbGVTdGF0ZS5qYXZhCkBAIC0wLDAgKzEsMTIyIEBACisvKiogDQorICogQ29weXJpZ2h0IChjKSAyMDE0IFNvZnQtTWFpbnQuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyMjU3IC0gTmV3IHRvb2xiYXIgYWN0aW9ucyB0byAoZGVzKWFjdGl2YXRlIGN1c3RvbWl6YXRpb25zDQorICogICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyNzE0IC0gTmV3IHRvb2xiYXIgYWN0aW9uIHRvIHNob3cvaGlkZSBlQ29udGFpbmVyIGxpbmsNCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuaGFuZGxlcnM7DQorDQoraW1wb3J0IGphdmEudXRpbC5MaXN0Ow0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuZWZhY2V0LmNvcmUuSUZhY2V0TWFuYWdlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC5jb3JlLklGYWNldE1hbmFnZXJMaXN0ZW5lcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVmYWNldC5tZXRhbW9kZWwudjBfMl8wLmVmYWNldC5GYWNldFNldDsNCitpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2UuY29tbWFuZHMuVG9nZ2xlU3RhdGU7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuZWRpdG9yLlRyZWVFZGl0b3I7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnVpLklQYXJ0TGlzdGVuZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnVpLklXb3JrYmVuY2hQYWdlOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5JV29ya2JlbmNoUGFydDsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuSVdvcmtiZW5jaFdpbmRvdzsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuUGxhdGZvcm1VSTsNCisNCisvKioNCisgKiBBYnN0cmFjdCBUb2dnbGVTdGF0ZSB0byBtYW5hZ2UgbWVudSB0b29sYmFyIHNob3J0Y3V0cy4gVGhlc2Ugc2hvcnRjdXRzIGFsbG93DQorICogdXNlcnMgdG8gKGRlcylhY3RpdmF0ZSBmYWNldCBzZXRzIChjdXN0b21pemF0aW9ucyBhcmUgZmFjZXQgc2V0cykuIElmIHlvdQ0KKyAqIHdhbnQgdG8gY3JlYXRlIGEgbWVudSBzaG9ydGN1dCwgeW91ciBUb2dnbGVTdGF0ZSBtdXN0IGV4dGVuZHMgdGhpcyBjbGFzcw0KKyAqLw0KK3B1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdEZhY2V0U2V0QWN0aXZhdG9yVG9nZ2xlU3RhdGUgZXh0ZW5kcyBUb2dnbGVTdGF0ZSB7DQorDQorCXByaXZhdGUgZmluYWwgSVBhcnRMaXN0ZW5lciBwYXJ0TGlzdGVuZXI7DQorCXByaXZhdGUgZmluYWwgSUZhY2V0TWFuYWdlckxpc3RlbmVyIGZhY2V0TWdyTGlzdGVuZXI7DQorDQorCXByaXZhdGUgSUZhY2V0TWFuYWdlciBmYWNldE1hbmFnZXI7DQorCXByaXZhdGUgZmluYWwgU3RyaW5nIGZhY2V0U2V0SUQ7DQorDQorCXByb3RlY3RlZCBBYnN0cmFjdEZhY2V0U2V0QWN0aXZhdG9yVG9nZ2xlU3RhdGUoZmluYWwgU3RyaW5nIGZhY2V0U2V0SUQpIHsNCisJCS8qDQorCQkgKiBObyBwZXJzaXN0ZW5jZSBhbmQgaW5pdGlhbGl6ZWQgdG8gRkFMU0UgKHVuY2hlY2tlZCBidXR0b24pDQorCQkgKi8NCisJCXN1cGVyKCk7DQorCQlzZXRTaG91bGRQZXJzaXN0KGZhbHNlKTsNCisJCXNldFZhbHVlKEJvb2xlYW4uRkFMU0UpOw0KKwkJdGhpcy5mYWNldFNldElEID0gZmFjZXRTZXRJRDsNCisJCXRoaXMucGFydExpc3RlbmVyID0gbmV3IElQYXJ0TGlzdGVuZXIoKSB7DQorCQkJcHVibGljIHZvaWQgcGFydE9wZW5lZChmaW5hbCBJV29ya2JlbmNoUGFydCBwYXJ0KSB7DQorCQkJCS8vIERPIE5PVEhJTkcNCisJCQl9DQorDQorCQkJcHVibGljIHZvaWQgcGFydERlYWN0aXZhdGVkKGZpbmFsIElXb3JrYmVuY2hQYXJ0IHBhcnQpIHsNCisJCQkJLy8gRE8gTk9USElORw0KKwkJCX0NCisNCisJCQlwdWJsaWMgdm9pZCBwYXJ0Q2xvc2VkKGZpbmFsIElXb3JrYmVuY2hQYXJ0IHBhcnQpIHsNCisJCQkJLy8gRE8gTk9USElORw0KKwkJCX0NCisNCisJCQlwdWJsaWMgdm9pZCBwYXJ0QnJvdWdodFRvVG9wKGZpbmFsIElXb3JrYmVuY2hQYXJ0IHBhcnQpIHsNCisJCQkJLy8gRE8gTk9USElORw0KKwkJCX0NCisNCisJCQlwdWJsaWMgdm9pZCBwYXJ0QWN0aXZhdGVkKGZpbmFsIElXb3JrYmVuY2hQYXJ0IHBhcnQpIHsNCisJCQkJQWJzdHJhY3RGYWNldFNldEFjdGl2YXRvclRvZ2dsZVN0YXRlLnRoaXMucGFydEFjdGl2YXRlZChwYXJ0KTsNCisJCQl9DQorCQl9Ow0KKw0KKwkJdGhpcy5mYWNldE1nckxpc3RlbmVyID0gbmV3IElGYWNldE1hbmFnZXJMaXN0ZW5lcigpIHsNCisJCQlwdWJsaWMgdm9pZCBmYWNldE1hbmFnZXJDaGFuZ2VkKCkgew0KKwkJCQljaGFuZ2VUb2dnbGVTdGF0ZSgpOw0KKwkJCX0NCisJCX07DQorCX0NCisNCisJcHJvdGVjdGVkIHZvaWQgcGFydEFjdGl2YXRlZChmaW5hbCBJV29ya2JlbmNoUGFydCBwYXJ0KSB7DQorCQlpZiAocGFydCBpbnN0YW5jZW9mIFRyZWVFZGl0b3IpIHsNCisJCQlmaW5hbCBUcmVlRWRpdG9yIHRyZWVFZGl0b3IgPSAoVHJlZUVkaXRvcikgcGFydDsNCisJCQl0aGlzLmZhY2V0TWFuYWdlciA9IHRyZWVFZGl0b3IuZ2V0RmFjZXRNYW5hZ2VyKCk7DQorCQkJdGhpcy5mYWNldE1hbmFnZXIucmVtb3ZlTGlzdGVuZXIodGhpcy5mYWNldE1nckxpc3RlbmVyKTsNCisJCQl0aGlzLmZhY2V0TWFuYWdlci5hZGRMaXN0ZW5lcih0aGlzLmZhY2V0TWdyTGlzdGVuZXIpOw0KKwkJCWNoYW5nZVRvZ2dsZVN0YXRlKCk7DQorCQl9DQorCX0NCisNCisJLyoqDQorCSAqIENoZWNrIGlmIHRoZSBmYWNldCBzZXQgbGlua2VkIHRvIHRoaXMgVG9vZ2xlU3RhdGUgaXMgYWN0aXZhdGVkLiBJZiBzbywNCisJICogdGhlIFRvZ2dsZVN0YXRlIGlzIGNoZWNrZWQNCisJICovDQorCXByb3RlY3RlZCB2b2lkIGNoYW5nZVRvZ2dsZVN0YXRlKCkgew0KKwkJZmluYWwgTGlzdDxGYWNldFNldD4gZmFjZXRTZXRzID0gdGhpcy5mYWNldE1hbmFnZXINCisJCQkJLmdldE1hbmFnZWRGYWNldFNldHMoKTsNCisJCWZvciAoRmFjZXRTZXQgZmFjZXRTZXQgOiBmYWNldFNldHMpIHsNCisJCQlpZiAodGhpcy5mYWNldFNldElELmVxdWFscyhmYWNldFNldC5nZXROYW1lKCkpKSB7DQorCQkJCXNldFZhbHVlKEJvb2xlYW4uVFJVRSk7DQorCQkJCWJyZWFrOw0KKwkJCX0gZWxzZSBpZiAoIXRoaXMuZ2V0VmFsdWUoKS5lcXVhbHMoQm9vbGVhbi5GQUxTRSkpIHsNCisJCQkJc2V0VmFsdWUoQm9vbGVhbi5GQUxTRSk7DQorCQkJfQ0KKwkJfQ0KKwl9DQorDQorCUBPdmVycmlkZQ0KKwlwdWJsaWMgT2JqZWN0IGdldFZhbHVlKCkgew0KKwkJLyoNCisJCSAqIEFkZCBhIGxpc3RlbmVyIHdoaWNoIGNoYW5nZXMgYWxsIFRvZ2dsZVN0YXRlcyB3aGVuIHVzZXIgY2hhbmdlcyB0aGUNCisJCSAqIGFjdGl2YXRlZCBlZGl0b3INCisJCSAqLw0KKwkJZmluYWwgSVdvcmtiZW5jaFdpbmRvdyB3aW5kb3cgPSBQbGF0Zm9ybVVJLmdldFdvcmtiZW5jaCgpDQorCQkJCS5nZXRBY3RpdmVXb3JrYmVuY2hXaW5kb3coKTsNCisJCWlmICh3aW5kb3cgIT0gbnVsbCkgew0KKwkJCWZpbmFsIElXb3JrYmVuY2hQYWdlIGFjdGl2ZVBhZ2UgPSB3aW5kb3cuZ2V0QWN0aXZlUGFnZSgpOw0KKwkJCWlmIChhY3RpdmVQYWdlICE9IG51bGwpIHsNCisJCQkJYWN0aXZlUGFnZS5yZW1vdmVQYXJ0TGlzdGVuZXIodGhpcy5wYXJ0TGlzdGVuZXIpOw0KKwkJCQlhY3RpdmVQYWdlLmFkZFBhcnRMaXN0ZW5lcih0aGlzLnBhcnRMaXN0ZW5lcik7DQorCQkJfQ0KKwkJfQ0KKwkJcmV0dXJuIHN1cGVyLmdldFZhbHVlKCk7DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9Db3B5SGFuZGxlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9Db3B5SGFuZGxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjliMjRjODMKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0NvcHlIYW5kbGVyLmphdmEKQEAgLTAsMCArMSw3MSBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBTb2Z0LU1haW50Lg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjcxOCAtIEltcGxlbWVudCBjb3B5IGFjdGlvbiBpbiB0aGUgbmV3IE1vRGlzY28gQnJvd3Nlcg0KKyAqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbC5oYW5kbGVyczsNCisNCitpbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsNCitpbXBvcnQgamF2YS51dGlsLkl0ZXJhdG9yOw0KK2ltcG9ydCBqYXZhLnV0aWwuTGlzdDsNCisNCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5jb21tYW5kcy5BYnN0cmFjdEhhbmRsZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuY29tbWFuZHMuRXhlY3V0aW9uRXZlbnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuY29tbWFuZHMuRXhlY3V0aW9uRXhjZXB0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLklMYWJlbFByb3ZpZGVyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLklTZWxlY3Rpb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuSVN0cnVjdHVyZWRTZWxlY3Rpb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuZWRpdG9yLlRyZWVFZGl0b3I7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5kbmQuQ2xpcGJvYXJkOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5zd3QuZG5kLlRleHRUcmFuc2ZlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LmRuZC5UcmFuc2ZlcjsNCitpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuU2hlbGw7DQoraW1wb3J0IG9yZy5lY2xpcHNlLnVpLklFZGl0b3JQYXJ0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5oYW5kbGVycy5IYW5kbGVyVXRpbDsNCisNCitwdWJsaWMgY2xhc3MgQ29weUhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdEhhbmRsZXIgew0KKw0KKwlwdWJsaWMgT2JqZWN0IGV4ZWN1dGUoZmluYWwgRXhlY3V0aW9uRXZlbnQgZXZlbnQpIHRocm93cyBFeGVjdXRpb25FeGNlcHRpb24gew0KKwkJZmluYWwgSVNlbGVjdGlvbiBzZWxlY3Rpb24gPSBIYW5kbGVyVXRpbC5nZXRDdXJyZW50U2VsZWN0aW9uKGV2ZW50KTsNCisJCWZpbmFsIElFZGl0b3JQYXJ0IGFjdGl2ZUVkaXRvciA9IEhhbmRsZXJVdGlsLmdldEFjdGl2ZUVkaXRvcihldmVudCk7DQorCQlpZiAoc2VsZWN0aW9uIGluc3RhbmNlb2YgSVN0cnVjdHVyZWRTZWxlY3Rpb24NCisJCQkJJiYgYWN0aXZlRWRpdG9yIGluc3RhbmNlb2YgVHJlZUVkaXRvcikgew0KKwkJCWZpbmFsIExpc3Q8U3RyaW5nPiBuYW1lcyA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOw0KKw0KKwkJCWZpbmFsIFRyZWVFZGl0b3IgZWRpdG9yID0gKFRyZWVFZGl0b3IpIGFjdGl2ZUVkaXRvcjsNCisJCQlmaW5hbCBJTGFiZWxQcm92aWRlciBsYWJlbFByb3ZpZGVyID0gZWRpdG9yDQorCQkJCQkuZ2V0Vmlld2VyTGFiZWxQcm92aWRlcigpOw0KKw0KKwkJCWZpbmFsIElTdHJ1Y3R1cmVkU2VsZWN0aW9uIHN0cnVjdFNlbGVjdGlvbiA9IChJU3RydWN0dXJlZFNlbGVjdGlvbikgc2VsZWN0aW9uOw0KKwkJCWZpbmFsIEl0ZXJhdG9yPD8+IHNlbEl0ZXJhdG9yID0gc3RydWN0U2VsZWN0aW9uLml0ZXJhdG9yKCk7DQorCQkJd2hpbGUgKHNlbEl0ZXJhdG9yLmhhc05leHQoKSkgew0KKwkJCQlmaW5hbCBPYmplY3QgaXRlbSA9IHNlbEl0ZXJhdG9yLm5leHQoKTsNCisJCQkJZmluYWwgU3RyaW5nIG5hbWUgPSBsYWJlbFByb3ZpZGVyLmdldFRleHQoaXRlbSk7DQorCQkJCW5hbWVzLmFkZChuYW1lKTsNCisJCQl9DQorCQkJaWYgKCFuYW1lcy5pc0VtcHR5KCkpIHsNCisJCQkJZmluYWwgU3RyaW5nQnVpbGRlciBidWZmZXIgPSBuZXcgU3RyaW5nQnVpbGRlcigpOw0KKwkJCQlmb3IgKFN0cmluZyBuYW1lIDogbmFtZXMpIHsNCisJCQkJCWJ1ZmZlci5hcHBlbmQobmFtZSk7DQorCQkJCQlidWZmZXIuYXBwZW5kKCdcbicpOw0KKwkJCQl9DQorCQkJCWZpbmFsIFNoZWxsIHNoZWxsID0gSGFuZGxlclV0aWwuZ2V0QWN0aXZlU2hlbGwoZXZlbnQpOw0KKwkJCQlmaW5hbCBDbGlwYm9hcmQgY2xpcGJvYXJkID0gbmV3IENsaXBib2FyZChzaGVsbC5nZXREaXNwbGF5KCkpOw0KKwkJCQlmaW5hbCBUZXh0VHJhbnNmZXIgdGV4dFRyYW5zZmVyID0gVGV4dFRyYW5zZmVyLmdldEluc3RhbmNlKCk7DQorCQkJCS8qDQorCQkJCSAqIFJlbW92ZSB0aGUgbGFzdCBcbiB3aXRoIHRoZSByZWd1bGFyIGV4cHJlc3Npb24NCisJCQkJICovDQorCQkJCWNsaXBib2FyZC5zZXRDb250ZW50cyhuZXcgT2JqZWN0W10geyBidWZmZXIudG9TdHJpbmcoKQ0KKwkJCQkJCS5yZXBsYWNlQWxsKCJcbiQiLCAiIikgfSwgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQorCQkJCQkJbmV3IFRyYW5zZmVyW10geyB0ZXh0VHJhbnNmZXIgfSk7DQorCQkJfQ0KKwkJfQ0KKwkJcmV0dXJuIG51bGw7DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9FQ29udGFpbmVySGFuZGxlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9FQ29udGFpbmVySGFuZGxlci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJjNDNmMGUKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0VDb250YWluZXJIYW5kbGVyLmphdmEKQEAgLTAsMCArMSwyNCBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBTb2Z0LU1haW50Lg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjcxNCAtIE5ldyB0b29sYmFyIGFjdGlvbiB0byBzaG93L2hpZGUgZUNvbnRhaW5lciBsaW5rDQorICovDQorcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmhhbmRsZXJzOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLmNvbW1hbmRzLkV4ZWN1dGlvbkV2ZW50Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLmNvbW1hbmRzLkV4ZWN1dGlvbkV4Y2VwdGlvbjsNCisNCitwdWJsaWMgY2xhc3MgRUNvbnRhaW5lckhhbmRsZXIgZXh0ZW5kcyBBYnN0cmFjdEZhY2V0U2V0QWN0aXZhdG9ySGFuZGxlciB7DQorDQorCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGQUNFVF9TRVRfSUQgPSAib3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVjb3JlLmVjb250YWluZXIiOyAvLyROT04tTkxTLTEkDQorDQorCXB1YmxpYyBPYmplY3QgZXhlY3V0ZShmaW5hbCBFeGVjdXRpb25FdmVudCBldmVudCkgdGhyb3dzIEV4ZWN1dGlvbkV4Y2VwdGlvbiB7DQorCQlyZXR1cm4gZXhlY3V0ZShldmVudCwgRkFDRVRfU0VUX0lEKTsNCisJfQ0KKw0KK30NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0VDb250YWluZXJUb2dnbGVTdGF0ZS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9FQ29udGFpbmVyVG9nZ2xlU3RhdGUuamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjVhM2VmCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9FQ29udGFpbmVyVG9nZ2xlU3RhdGUuamF2YQpAQCAtMCwwICsxLDIxIEBACisvKiogDQorICogQ29weXJpZ2h0IChjKSAyMDE0IFNvZnQtTWFpbnQuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyNzE0IC0gTmV3IHRvb2xiYXIgYWN0aW9uIHRvIHNob3cvaGlkZSBlQ29udGFpbmVyIGxpbmsNCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuaGFuZGxlcnM7DQorDQorcHVibGljIGNsYXNzIEVDb250YWluZXJUb2dnbGVTdGF0ZSBleHRlbmRzIEFic3RyYWN0RmFjZXRTZXRBY3RpdmF0b3JUb2dnbGVTdGF0ZSB7DQorDQorCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGQUNFVF9TRVRfSUQgPSAib3JnLmVjbGlwc2UuZW1mLmZhY2V0LmVjb3JlLmVjb250YWluZXIiOyAvLyROT04tTkxTLTEkDQorCQ0KKwlwdWJsaWMgRUNvbnRhaW5lclRvZ2dsZVN0YXRlKCkgew0KKwkJc3VwZXIoRkFDRVRfU0VUX0lEKTsNCisJfQ0KKw0KK30NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0xpbmtzQ291bnRIYW5kbGVyLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL2hhbmRsZXJzL0xpbmtzQ291bnRIYW5kbGVyLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2IzYWIzNAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvaGFuZGxlcnMvTGlua3NDb3VudEhhbmRsZXIuamF2YQpAQCAtMCwwICsxLDI1IEBACisvKiogDQorICogQ29weXJpZ2h0IChjKSAyMDE0IFNvZnQtTWFpbnQuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyMjU3IC0gTmV3IHRvb2xiYXIgYWN0aW9ucyB0byAoZGVzKWFjdGl2YXRlIGN1c3RvbWl6YXRpb25zDQorICogICAgVGhvbWFzIENpY29nbmFuaSAoU29mdC1NYWludCkgLSBCdWcgNDQyNzE0IC0gTmV3IHRvb2xiYXIgYWN0aW9uIHRvIHNob3cvaGlkZSBlQ29udGFpbmVyIGxpbmsNCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuaGFuZGxlcnM7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuY29tbWFuZHMuRXhlY3V0aW9uRXZlbnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUuY29tbWFuZHMuRXhlY3V0aW9uRXhjZXB0aW9uOw0KKw0KK3B1YmxpYyBjbGFzcyBMaW5rc0NvdW50SGFuZGxlciBleHRlbmRzIEFic3RyYWN0RmFjZXRTZXRBY3RpdmF0b3JIYW5kbGVyIHsNCisNCisJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIENVU1RPTV9JRCA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWNvcmUuY29yZS5saW5rc0NvdW50IjsgLy8kTk9OLU5MUy0xJA0KKw0KKwlwdWJsaWMgT2JqZWN0IGV4ZWN1dGUoZmluYWwgRXhlY3V0aW9uRXZlbnQgZXZlbnQpIHRocm93cyBFeGVjdXRpb25FeGNlcHRpb24gew0KKwkJcmV0dXJuIGV4ZWN1dGUoZXZlbnQsIENVU1RPTV9JRCk7DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9oYW5kbGVycy9MaW5rc0NvdW50U3RhdGUuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvaGFuZGxlcnMvTGlua3NDb3VudFN0YXRlLmphdmEKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGQzYzU0MgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvaGFuZGxlcnMvTGlua3NDb3VudFN0YXRlLmphdmEKQEAgLTAsMCArMSwyMiBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBTb2Z0LU1haW50Lg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICogDQorICogQ29udHJpYnV0b3JzOg0KKyAqICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjI1NyAtIE5ldyB0b29sYmFyIGFjdGlvbnMgdG8gKGRlcylhY3RpdmF0ZSBjdXN0b21pemF0aW9ucw0KKyAqICAgIFRob21hcyBDaWNvZ25hbmkgKFNvZnQtTWFpbnQpIC0gQnVnIDQ0MjcxNCAtIE5ldyB0b29sYmFyIGFjdGlvbiB0byBzaG93L2hpZGUgZUNvbnRhaW5lciBsaW5rDQorICovDQorcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmhhbmRsZXJzOw0KKw0KK3B1YmxpYyBjbGFzcyBMaW5rc0NvdW50U3RhdGUgZXh0ZW5kcyBBYnN0cmFjdEZhY2V0U2V0QWN0aXZhdG9yVG9nZ2xlU3RhdGUgew0KKw0KKwlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgQ1VTVE9NX0lEID0gIm9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lY29yZS5jb3JlLmxpbmtzQ291bnQiOyAvLyROT04tTkxTLTEkDQorDQorCXB1YmxpYyBMaW5rc0NvdW50U3RhdGUoKSB7DQorCQlzdXBlcihDVVNUT01fSUQpOw0KKwl9DQorDQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvbWVzc2FnZXMucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvbWVzc2FnZXMucHJvcGVydGllcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MmVjNTkzCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9tZXNzYWdlcy5wcm9wZXJ0aWVzCkBAIC0wLDAgKzEsMTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE0IE1pYS1Tb2Z0d2FyZS4NCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorIyANCisjIENvbnRyaWJ1dG9yczoNCisjICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzU4OTE0IC0gW01vdmUgdG8gRU1GIEZhY2V0XVtCcm93c2VyXSBTd2l0Y2ggdG8gRU1GIEZhY2V0DQorIw0KK1Jlc291cmNlQnJvd3Nlck9wZW5lcl9FbWZGYWNldERlZmF1bHRUcmVlQnJvd3Nlcj1FTUYgRmFjZXQgRGVmYXVsdCBUcmVlIEJyb3dzZXINCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL29wZW5lci9SZXNvdXJjZUJyb3dzZXJPcGVuZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci9lZGl0b3IvdWkvaW50ZXJuYWwvb3BlbmVyL1Jlc291cmNlQnJvd3Nlck9wZW5lci5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNmODk2MzgKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL29wZW5lci9SZXNvdXJjZUJyb3dzZXJPcGVuZXIuamF2YQpAQCAtMCwwICsxLDUwIEBACisvKiogDQorICogQ29weXJpZ2h0IChjKSAyMDE0IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHcmVnb2lyZSBEdXBlIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1ODkxNCAtIFtNb3ZlIHRvIEVNRiBGYWNldF1bQnJvd3Nlcl0gU3dpdGNoIHRvIEVNRiBGYWNldA0KKyAqLw0KK3BhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS5pbnRlcm5hbC5vcGVuZXI7DQorDQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuY29yZS5Mb2dnZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmVtZi5jb3JlLklSZXNvdXJjZUJyb3dzZXJPcGVuZXI7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwuQWN0aXZhdG9yOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLk1lc3NhZ2VzOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpLmludGVybmFsLmVkaXRvci5UcmVlRWRpdG9yOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5zd3Qud2lkZ2V0cy5EaXNwbGF5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5JV29ya2JlbmNoOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5JV29ya2JlbmNoUGFnZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuSVdvcmtiZW5jaFdpbmRvdzsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuUGxhdGZvcm1VSTsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuaWRlLklERTsNCisNCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VCcm93c2VyT3BlbmVyIGltcGxlbWVudHMgSVJlc291cmNlQnJvd3Nlck9wZW5lciB7DQorDQorCXB1YmxpYyB2b2lkIG9wZW5SZXNvdXJjZShmaW5hbCBSZXNvdXJjZSByZXNvdXJjZSkgew0KKwkJRGlzcGxheS5nZXREZWZhdWx0KCkuc3luY0V4ZWMobmV3IFJ1bm5hYmxlKCkgew0KKwkJCXB1YmxpYyB2b2lkIHJ1bigpIHsNCisJCQkJdHJ5IHsNCisJCQkJCWZpbmFsIElXb3JrYmVuY2ggd29ya2JlbmNoID0gUGxhdGZvcm1VSS5nZXRXb3JrYmVuY2goKTsNCisJCQkJCWZpbmFsIElXb3JrYmVuY2hXaW5kb3cgd2luZG93ID0gd29ya2JlbmNoDQorCQkJCQkJCS5nZXRBY3RpdmVXb3JrYmVuY2hXaW5kb3coKTsNCisJCQkJCWZpbmFsIElXb3JrYmVuY2hQYWdlIHBhZ2UgPSB3aW5kb3cuZ2V0QWN0aXZlUGFnZSgpOw0KKwkJCQkJSURFLm9wZW5FZGl0b3IocGFnZSwgbmV3IFJlc291cmNlRWRpdG9ySW5wdXQocmVzb3VyY2UpLA0KKwkJCQkJCQlUcmVlRWRpdG9yLmdldEVkaXRvcklkKCksIHRydWUpOw0KKwkJCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KKwkJCQkJTG9nZ2VyLmxvZ0Vycm9yKGUsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KKwkJCQl9DQorCQkJfQ0KKwkJfSk7DQorDQorCX0NCisNCisJcHVibGljIFN0cmluZyBnZXRCcm93c2VyTmFtZSgpIHsNCisJCXJldHVybiBNZXNzYWdlcy5SZXNvdXJjZUJyb3dzZXJPcGVuZXJfRW1mRmFjZXREZWZhdWx0VHJlZUJyb3dzZXI7DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9vcGVuZXIvUmVzb3VyY2VFZGl0b3JJbnB1dC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL2VkaXRvci91aS9pbnRlcm5hbC9vcGVuZXIvUmVzb3VyY2VFZGl0b3JJbnB1dC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEzMGJkMTcKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZWRpdG9yLnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvZWRpdG9yL3VpL2ludGVybmFsL29wZW5lci9SZXNvdXJjZUVkaXRvcklucHV0LmphdmEKQEAgLTAsMCArMSw4MCBAQAorLyoqIA0KKyAqIENvcHlyaWdodCAoYykgMjAxNCBNaWEtU29mdHdhcmUuDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KKyAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQorICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCisgKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzNTg5MTQgLSBbTW92ZSB0byBFTUYgRmFjZXRdW0Jyb3dzZXJdIFN3aXRjaCB0byBFTUYgRmFjZXQNCisgKi8NCitwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5lZGl0b3IudWkuaW50ZXJuYWwub3BlbmVyOw0KKw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnJlc291cmNlLkltYWdlRGVzY3JpcHRvcjsNCitpbXBvcnQgb3JnLmVjbGlwc2UudWkuSUVkaXRvcklucHV0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS51aS5JUGVyc2lzdGFibGVFbGVtZW50Ow0KKw0KKy8qKg0KKyAqIEEgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiB7QGxpbmsgSVJlc291cmNlRWRpdG9ySW5wdXR9LiBGb3IgZWRpdG9ycyB0aGF0DQorICogY2FuIHRha2UgYSB7QGxpbmsgUmVzb3VyY2V9IGFzIGFuIGlucHV0IChzdXBwb3J0ZWQgYnkgdGhlIEVtZkZhY2V0IG1vZGVsDQorICogYnJvd3NlcikNCisgKi8NCitwdWJsaWMgY2xhc3MgUmVzb3VyY2VFZGl0b3JJbnB1dCBpbXBsZW1lbnRzIElFZGl0b3JJbnB1dCB7DQorDQorCXByaXZhdGUgZmluYWwgUmVzb3VyY2UgcmVzb3VyY2U7DQorDQorCXB1YmxpYyBSZXNvdXJjZUVkaXRvcklucHV0KGZpbmFsIFJlc291cmNlIHJlc291cmNlKSB7DQorCQl0aGlzLnJlc291cmNlID0gcmVzb3VyY2U7DQorCX0NCisNCisJcHVibGljIGJvb2xlYW4gZXhpc3RzKCkgew0KKwkJcmV0dXJuIGZhbHNlOw0KKwl9DQorDQorCXB1YmxpYyBJbWFnZURlc2NyaXB0b3IgZ2V0SW1hZ2VEZXNjcmlwdG9yKCkgew0KKwkJcmV0dXJuIG51bGw7DQorCX0NCisNCisJcHVibGljIFN0cmluZyBnZXROYW1lKCkgew0KKwkJU3RyaW5nIGxhc3RTZWdtZW50ID0gdGhpcy5yZXNvdXJjZS5nZXRVUkkoKS5sYXN0U2VnbWVudCgpOw0KKwkJaWYgKGxhc3RTZWdtZW50ID09IG51bGwpIHsNCisJCQlsYXN0U2VnbWVudCA9ICIiOyAvLyROT04tTkxTLTEkDQorCQl9DQorCQlyZXR1cm4gbGFzdFNlZ21lbnQ7DQorCX0NCisNCisJcHVibGljIElQZXJzaXN0YWJsZUVsZW1lbnQgZ2V0UGVyc2lzdGFibGUoKSB7DQorCQlyZXR1cm4gbnVsbDsNCisJfQ0KKw0KKwlwdWJsaWMgU3RyaW5nIGdldFRvb2xUaXBUZXh0KCkgew0KKwkJcmV0dXJuIGdldE5hbWUoKTsNCisJfQ0KKw0KKwlwdWJsaWMgT2JqZWN0IGdldEFkYXB0ZXIoQFN1cHByZXNzV2FybmluZ3MoInJhd3R5cGVzIikgZmluYWwgQ2xhc3MgYWRhcHRlcikgew0KKwkJLy8gQFN1cHByZXNzV2FybmluZ3MoInJhd3R5cGVzIikgOiBpbXBvc2VkIGJ5IHRoZSBpbXBsZW1lbnRlZCBpbnRlcmZhY2UuDQorCQlyZXR1cm4gbnVsbDsNCisJfQ0KKw0KKwlwdWJsaWMgUmVzb3VyY2UgZ2V0UmVzb3VyY2UoKSB7DQorCQlyZXR1cm4gdGhpcy5yZXNvdXJjZTsNCisJfQ0KKw0KKwlAT3ZlcnJpZGUNCisJcHVibGljIGJvb2xlYW4gZXF1YWxzKGZpbmFsIE9iamVjdCBvdGhlcikgew0KKwkJYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsNCisJCWlmIChvdGhlciBpbnN0YW5jZW9mIFJlc291cmNlRWRpdG9ySW5wdXQpIHsNCisJCQlmaW5hbCBSZXNvdXJjZUVkaXRvcklucHV0IG90aGVyRWRpdG9ySW5wdXQgPSAoUmVzb3VyY2VFZGl0b3JJbnB1dCkgb3RoZXI7DQorCQkJZmluYWwgUmVzb3VyY2Ugb3RoZXJSZXNvdXJjZSA9IG90aGVyRWRpdG9ySW5wdXQuZ2V0UmVzb3VyY2UoKTsNCisJCQlyZXN1bHQgPSBvdGhlclJlc291cmNlLmVxdWFscyhnZXRSZXNvdXJjZSgpKTsNCisJCX0NCisJCXJldHVybiByZXN1bHQ7DQorCX0NCisNCisJQE92ZXJyaWRlDQorCXB1YmxpYyBpbnQgaGFzaENvZGUoKSB7DQorCQlyZXR1cm4gdGhpcy5yZXNvdXJjZS5oYXNoQ29kZSgpOw0KKwl9DQorDQorfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmUvLnByb2plY3QKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjMxNWMxZgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlLy5wcm9qZWN0CkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPHByb2plY3REZXNjcmlwdGlvbj4NCisJPG5hbWU+b3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmU8L25hbWU+DQorCTxjb21tZW50PjwvY29tbWVudD4NCisJPHByb2plY3RzPg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5wZGUuRmVhdHVyZUJ1aWxkZXI8L25hbWU+DQorCQkJPGFyZ3VtZW50cz4NCisJCQk8L2FyZ3VtZW50cz4NCisJCTwvYnVpbGRDb21tYW5kPg0KKwk8L2J1aWxkU3BlYz4NCisJPG5hdHVyZXM+DQorCQk8bmF0dXJlPm9yZy5lY2xpcHNlLnBkZS5GZWF0dXJlTmF0dXJlPC9uYXR1cmU+DQorCTwvbmF0dXJlcz4NCis8L3Byb2plY3REZXNjcmlwdGlvbj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZmVhdHVyZS8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDgyNGI4MAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpAQCAtMCwwICsxLDIgQEAKK2VjbGlwc2UucHJlZmVyZW5jZXMudmVyc2lvbj0xDQorZW5jb2RpbmcvPHByb2plY3Q+PVVURi04DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmUvYnVpbGQucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzEwNGQ2ZAotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlL2J1aWxkLnByb3BlcnRpZXMKQEAgLTAsMCArMSwyIEBACitiaW4uaW5jbHVkZXMgPSBmZWF0dXJlLnhtbCxcDQorICAgICAgICAgICAgICAgZmVhdHVyZS5wcm9wZXJ0aWVzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmUvZmVhdHVyZS5wcm9wZXJ0aWVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMGYzZDgKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZmVhdHVyZS9mZWF0dXJlLnByb3BlcnRpZXMKQEAgLTAsMCArMSwxNiBAQAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KKyMgQ29weXJpZ2h0IChjKSAyMDE0IE1pYS1Tb2Z0d2FyZS4NCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorIw0KKyMgQ29udHJpYnV0b3JzOg0KKyMgICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkNCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQorDQorZmVhdHVyZU5hbWU9TW9EaXNjbyBCcm93c2VyIChJbmN1YmF0aW9uKQ0KK3Byb3ZpZGVyTmFtZT1FY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCitkZXNjcmlwdGlvbj1Nb0Rpc2NvIGlzIGEgZnJhbWV3b3JrIGZvciBtb2RlbCBkcml2ZW4gcmV2ZXJzZSBlbmdpbmVlcmluZyBhbmQgXA0KK3NvZnR3YXJlIG1vZGVybml6YXRpb24uIFRoaXMgZmVhdHVyZSBwcm92aWRlcyB0aGUgTW9EaXNjbyBicm93c2VyIChjb21wbGlhbnQgd2l0aCBFTUYgRmFjZXQpLg0KK01vZGVsaW5nVXBkYXRlU2l0ZU5hbWU9RWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0IFVwZGF0ZXMNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlL2ZlYXR1cmUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0YjkxYWIKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMCwwICsxLDQxIEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzxmZWF0dXJlDQorICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlIg0KKyAgICAgIGxhYmVsPSIlZmVhdHVyZU5hbWUiDQorICAgICAgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciINCisgICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIg0KKyAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSINCisgICAgICBsaWNlbnNlLWZlYXR1cmUtdmVyc2lvbj0iMC4wLjAiPg0KKw0KKyAgIDxkZXNjcmlwdGlvbiB1cmw9Imh0dHBzOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vIj4NCisgICAgICAlZGVzY3JpcHRpb24NCisgICA8L2Rlc2NyaXB0aW9uPg0KKw0KKyAgIDxjb3B5cmlnaHQ+DQorICAgICAgQ29weXJpZ2h0IChjKSAyMDE0IE1pYS1Tb2Z0d2FyZS4KK0FsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMKK2FyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UKK3YxLjAKK3doaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0CitodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAgIDwvY29weXJpZ2h0Pg0KKw0KKyAgIDxsaWNlbnNlIHVybD0iJWxpY2Vuc2VVUkwiPg0KKyAgICAgICVsaWNlbnNlDQorICAgPC9saWNlbnNlPg0KKw0KKyAgIDxwbHVnaW4NCisgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVjb3JlLmNvcmUiDQorICAgICAgICAgZG93bmxvYWQtc2l6ZT0iMCINCisgICAgICAgICBpbnN0YWxsLXNpemU9IjAiDQorICAgICAgICAgdmVyc2lvbj0iMC4wLjAiDQorICAgICAgICAgdW5wYWNrPSJmYWxzZSIvPg0KKw0KKyAgIDxwbHVnaW4NCisgICAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmVkaXRvci51aSINCisgICAgICAgICBkb3dubG9hZC1zaXplPSIwIg0KKyAgICAgICAgIGluc3RhbGwtc2l6ZT0iMCINCisgICAgICAgICB2ZXJzaW9uPSIwLjAuMCINCisgICAgICAgICB1bnBhY2s9ImZhbHNlIi8+DQorDQorPC9mZWF0dXJlPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBkNTQ3ZmI2Li45NTNmM2I0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5zd3Rib3Quc3d0LmZpbmRlcjtyZXNvbHV0aW9uOj1vcHRpb25hbCwKICBvcmcuZWNsaXBzZS5zd3Rib3QuZWNsaXBzZS5maW5kZXIsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL3Rlc3RzL0FsbFRlc3RzTm90SW5VSVRocmVhZC5qYXZhCnNpbWlsYXJpdHkgaW5kZXggOTUlCnJlbmFtZSBmcm9tIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCnJlbmFtZSB0byBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9BbGxUZXN0c05vdEluVUlUaHJlYWQuamF2YQppbmRleCA4NjJlNjRiLi42ZmQ0NTczIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9BbGxUZXN0c05vdEluVUlUaHJlYWQuamF2YQpAQCAtMjMsNiArMjMsNiBAQAogCVRlc3RVUklEaWFsb2cuY2xhc3MNCiAJfSkNCiAvLyBOTyBKYXZhU2NhbGFiaWxpdHlUZXN0ICENCi1wdWJsaWMgY2xhc3MgQWxsVGVzdHNJblVJVGhyZWFkIHsNCitwdWJsaWMgY2xhc3MgQWxsVGVzdHNOb3RJblVJVGhyZWFkIHsKIAkvLyBKVW5pdCA0IHRlc3Qgc3VpdGUNCiB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdGVzdHMvVGVzdE1ldGFjbGFzc2VzLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0TWV0YWNsYXNzZXMuamF2YQppbmRleCAxMDRjZDRlLi5kYThkNGIyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0TWV0YWNsYXNzZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0TWV0YWNsYXNzZXMuamF2YQpAQCAtNDAsNiArNDAsNyBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dGJvdC5zd3QuZmluZGVyLndpZGdldHMuU1dUQm90VHJlZUl0ZW07DQogaW1wb3J0IG9yZy5qdW5pdC5BZnRlckNsYXNzOw0KIGltcG9ydCBvcmcuanVuaXQuQmVmb3JlQ2xhc3M7DQoraW1wb3J0IG9yZy5qdW5pdC5JZ25vcmU7DQogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIGltcG9ydCBvcmcuanVuaXQucnVubmVyLlJ1bldpdGg7DQogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlBhcmFtZXRlcml6ZWQ7DQpAQCAtNDgsNiArNDksNyBAQAogLyoqDQogICogVGVzdHMgYWJvdXQgbWV0YWNsYXNzZXMgYW5kIHRoZSBtZXRhY2xhc3MgcGFuZS4NCiAgKi8NCitASWdub3JlIC8vY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zNTkyNTcNCiBAU3VwcHJlc3NXYXJuaW5ncygicmVzdHJpY3Rpb24iKQ0KIEBSdW5XaXRoKFBhcmFtZXRlcml6ZWQuY2xhc3MpDQogcHVibGljIGNsYXNzIFRlc3RNZXRhY2xhc3NlcyB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdGVzdHMvVGVzdE5hdmlnYXRlLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0TmF2aWdhdGUuamF2YQppbmRleCBhOTc0ZDljLi42YjdjYzBlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0TmF2aWdhdGUuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0TmF2aWdhdGUuamF2YQpAQCAtMTQsOCArMTQsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMudXRpbHMuVGVzdFV0aWxzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Rib3QuZWNsaXBzZS5maW5kZXIuU1dUV29ya2JlbmNoQm90Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Rib3Quc3d0LmZpbmRlci53YWl0cy5EZWZhdWx0Q29uZGl0aW9uOw0KK2ltcG9ydCBvcmcuanVuaXQuSWdub3JlOw0KIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiANCitASWdub3JlIC8vY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NjgxNTkNCiAvKiogVGVzdHMgZm9yIHRoZSBzZWFyY2ggZnVuY3Rpb24uICovDQogcHVibGljIGNsYXNzIFRlc3ROYXZpZ2F0ZSBleHRlbmRzIEFic3RyYWN0VGVzdCB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdGVzdHMvVGVzdE9wZW5Nb2RlbC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdGVzdHMvVGVzdE9wZW5Nb2RlbC5qYXZhCmluZGV4IDI3ODg1ZTcuLjBmZWZmZjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL3Rlc3RzL1Rlc3RPcGVuTW9kZWwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0T3Blbk1vZGVsLmphdmEKQEAgLTMxLDExICszMSwxMyBAQAogaW1wb3J0IG9yZy5qdW5pdC5BZnRlcjsNCiBpbXBvcnQgb3JnLmp1bml0LkFmdGVyQ2xhc3M7DQogaW1wb3J0IG9yZy5qdW5pdC5CZWZvcmVDbGFzczsNCitpbXBvcnQgb3JnLmp1bml0Lklnbm9yZTsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXIuUnVuV2l0aDsNCiBpbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMuUGFyYW1ldGVyaXplZDsNCiBpbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMuUGFyYW1ldGVyaXplZC5QYXJhbWV0ZXJzOw0KIA0KK0BJZ25vcmUgLy9jZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ2ODE1OQ0KIEBSdW5XaXRoKFBhcmFtZXRlcml6ZWQuY2xhc3MpDQogcHVibGljIGNsYXNzIFRlc3RPcGVuTW9kZWwgew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL3Rlc3RzL1Rlc3RTZWFyY2guamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL3Rlc3RzL1Rlc3RTZWFyY2guamF2YQppbmRleCA3NTE1ZWRiLi43YWQ4ZGM2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0U2VhcmNoLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdGVzdHMvVGVzdFNlYXJjaC5qYXZhCkBAIC0xOSw4ICsxOSwxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dGJvdC5lY2xpcHNlLmZpbmRlci5TV1RXb3JrYmVuY2hCb3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dGJvdC5zd3QuZmluZGVyLndpZGdldHMuU1dUQm90VGV4dDsNCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0Ym90LnN3dC5maW5kZXIud2lkZ2V0cy5TV1RCb3RUcmVlSXRlbTsNCitpbXBvcnQgb3JnLmp1bml0Lklnbm9yZTsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogDQorQElnbm9yZSAvL2NmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDY4MTU5DQogLyoqIFRlc3RzIGZvciB0aGUgc2VhcmNoIGZ1bmN0aW9uLiAqLw0KIHB1YmxpYyBjbGFzcyBUZXN0U2VhcmNoIGV4dGVuZHMgQWJzdHJhY3RUZXN0IHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0VVJJRGlhbG9nLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvYnJvd3Nlci90ZXN0cy9UZXN0VVJJRGlhbG9nLmphdmEKaW5kZXggMmUxZWIwNC4uNTc2MzQ1ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Jyb3dzZXIvdGVzdHMvVGVzdFVSSURpYWxvZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9icm93c2VyL3Rlc3RzL1Rlc3RVUklEaWFsb2cuamF2YQpAQCAtMjksOCArMjksMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5zd3Rib3Quc3d0LmZpbmRlci53aWRnZXRzLlNXVEJvdFRvb2xiYXJCdXR0b247DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dGJvdC5zd3QuZmluZGVyLndpZGdldHMuU1dUQm90VHJlZTsNCiBpbXBvcnQgb3JnLmp1bml0LkJlZm9yZUNsYXNzOw0KK2ltcG9ydCBvcmcuanVuaXQuSWdub3JlOw0KIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiANCitASWdub3JlIC8vY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NjgxNTkNCiBwdWJsaWMgY2xhc3MgVGVzdFVSSURpYWxvZyB7DQogDQogCXByb3RlY3RlZCBzdGF0aWMgU1dUV29ya2JlbmNoQm90IGJvdCA9IG5ldyBTV1RXb3JrYmVuY2hCb3QoKTsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmNkby5kZXJieS5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5jZG8uZGVyYnkuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCBjODE5OWU3Li5kZDRiNzAzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmNkby5kZXJieS5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY2RvLmRlcmJ5LmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKIDxmZWF0dXJlDQogICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY2RvLmRlcmJ5LmZlYXR1cmUiDQogICAgICAgbGFiZWw9Ik1vRGlzY28gQ0RPIHNlcnZlciB3aXRoIERlcmJ5IChJbmN1YmF0aW9uKSINCi0gICAgICB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIg0KKyAgICAgIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiDQogICAgICAgcHJvdmlkZXItbmFtZT0iJXByb3ZpZGVyTmFtZSINCiAgICAgICBsaWNlbnNlLWZlYXR1cmU9Im9yZy5lY2xpcHNlLmxpY2Vuc2UiDQogICAgICAgbGljZW5zZS1mZWF0dXJlLXZlcnNpb249IjAuMC4wIj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA3ZTg5MGI0Li5kZDQxNWZmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUudGVzdHM7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQogUmVxdWlyZS1CdW5kbGU6IG9yZy5qdW5pdDtidW5kbGUtdmVyc2lvbj0iNC43LjAiLA0KICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZTtidW5kbGUtdmVyc2lvbj0iMC44LjAiLA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvY29tbW9uL2NvcmUvdGVzdHMvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2NvbW1vbi9jb3JlL3Rlc3RzL0FjdGl2YXRvci5qYXZhCmluZGV4IDgxYWFkZmMuLjJmMjJmNjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvY29tbW9uL2NvcmUvdGVzdHMvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9jb21tb24vY29yZS90ZXN0cy9BY3RpdmF0b3IuamF2YQpAQCAtMTMsNiArMTMsMTAgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuUGx1Z2luOw0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KKyAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQogCXByaXZhdGUgc3RhdGljIEFjdGl2YXRvciBwbHVnaW47DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBlYjllZjM4Li5lMmE2ODk1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApAQCAtMjMsNSArMjMsNiBAQAogIG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQubWV0YW1vZGVsO2J1bmRsZS12ZXJzaW9uPSIwLjEwLjAiCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5Ci1FeHBvcnQtUGFja2FnZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQ7eC1mcmllbmRzOj0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnVpIgorRXhwb3J0LVBhY2thZ2U6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmV4cG9ydGVkO3gtZnJpZW5kczo9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay51aSIsCisgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwucmVwb3J0aW5nLmludGVybmFsO3gtaW50ZXJuYWw6PXRydWUKIApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9pbXBsL0Rpc2NvdmVyZXJCZW5jaG1hcmtEaXNjb3ZlcmVyLmphdmEKaW5kZXggNDA3YjdlZS4uYjMzNjMwZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL2ltcGwvRGlzY292ZXJlckJlbmNobWFya0Rpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvaW1wbC9EaXNjb3ZlcmVyQmVuY2htYXJrRGlzY292ZXJlci5qYXZhCkBAIC0xLDExICsxLDE1IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAqIENvcHlyaWdodCAoYykgMjAxMiBJTlJJQS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEsIGFuZCBNaWEtU29mdHdhcmUuDQorICogDQorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUNCiAgKiBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UNCiAgKiBQdWJsaWMgTGljZW5zZSB2MS4wIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQogICogaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCiAgKiANCi0gKiBDb250cmlidXRvcnM6IEd1aWxsYXVtZSBEb3V4IC0gSU5SSUEgLSBJbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCi0gKiANCisgKiBDb250cmlidXRvcnM6DQorICogICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI2NzIgLSBCZW5jaG1hcmsgY29tbWFuZCBsaW5lIGludGVyZmFjZQ0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI4NTcgLSBEaXNjb3ZlcmVyIEJlbmNobWFyayBSZXBvcnQgOiB3cm9uZyBuYW1lc3BhY2VzDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLmltcGw7DQogDQpAQCAtMjYsNiArMzAsOCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklGb2xkZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklQcm9qZWN0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUmVzb3VyY2U7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklXb3Jrc3BhY2U7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLklXb3Jrc3BhY2VSb290Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5SZXNvdXJjZXNQbHVnaW47DQogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5Db3JlRXhjZXB0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUuSVByb2dyZXNzTW9uaXRvcjsNCkBAIC0zNCw2ICs0MCw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlRyZWVJdGVyYXRvcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLlVSSTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVPYmplY3Q7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5FUGFja2FnZTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLkVQYWNrYWdlLlJlZ2lzdHJ5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZVNldDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLmltcGwuUmVzb3VyY2VTZXRJbXBsOw0KQEAgLTUwLDYgKzU4LDcgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5CZW5jaG1hcms7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFya0ZhY3Rvcnk7DQoraW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkJlbmNobWFya1BhY2thZ2U7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwuaW50ZXJuYWwuYmVuY2htYXJrLkRpc2NvdmVyeTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC5pbnRlcm5hbC5iZW5jaG1hcmsuRGlzY292ZXJ5SXRlcmF0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsLmludGVybmFsLmJlbmNobWFyay5FbmRFdmVudDsNCkBAIC0xODEsOSArMTkwLDkgQEAKIAkJCQlzZXRMYXVuY2hQYXJhbWV0ZXIoZGlzY28sIGRpc2NvdmVyZXIpOw0KIAkJCQlTdHJpbmcgc2VyaWFsaXphdGlvbkxvY2F0aW9uOw0KIAkJCQlpZiAoZGlzY292ZXJlci5nZXRUYXJnZXRVUkkoKSAhPSBudWxsKSB7DQotCQkJCQlzZXJpYWxpemF0aW9uTG9jYXRpb24gPSBkaXNjb3ZlcmVyLmdldFRhcmdldFVSSSgpLnRyaW1GaWxlRXh0ZW5zaW9uKCkudG9QbGF0Zm9ybVN0cmluZyhmYWxzZSk7DQorCQkJCQlzZXJpYWxpemF0aW9uTG9jYXRpb24gPSBkaXNjb3ZlcmVyLmdldFRhcmdldFVSSSgpLnRyaW1GaWxlRXh0ZW5zaW9uKCkudG9TdHJpbmcoKTsNCiAJCQkJfSBlbHNlIHsNCi0JCQkJCXNlcmlhbGl6YXRpb25Mb2NhdGlvbiA9IHRoaXMuZ2V0VGFyZ2V0VVJJKCkudHJpbUZpbGVFeHRlbnNpb24oKS50b1BsYXRmb3JtU3RyaW5nKGZhbHNlKTsNCisJCQkJCXNlcmlhbGl6YXRpb25Mb2NhdGlvbiA9IHRoaXMuZ2V0VGFyZ2V0VVJJKCkudHJpbUZpbGVFeHRlbnNpb24oKS50b1N0cmluZygpOw0KIAkJCQl9DQogCQkJCWZvciAoaW50IGkgPSAxOyBpIDw9IHRoaXMuaXRlcmF0aW9uczsgIGkrKykgew0KIAkJCQkJVVJJIHJlc3VsdFNlcmlhbGl6YXRpb25Mb2NhdGlvbiA9ICBVUkkuY3JlYXRlVVJJKHNlcmlhbGl6YXRpb25Mb2NhdGlvbik7DQpAQCAtMTk0LDI4ICsyMDMsMzEgQEAKIAkJCQkJaWYgKElFdmVudE5vdGlmaWVyLmNsYXNzLmlzSW5zdGFuY2UoZGlzY292ZXJlcikpIHsNCiAJCQkJCQkoKElFdmVudE5vdGlmaWVyKSBkaXNjb3ZlcmVyKS5hZGRMaXN0ZW5lcih0aGlzLnJlY29yZGVyKTsNCiAJCQkJCX0NCi0NCiAJCQkJCXByb2dyZXNzTW9uaXRvci5zdWJUYXNrKCJQcm9qZWN0IGRpc2NvdmVyeTogaXRlcmF0aW9uICIgKyBTdHJpbmcudmFsdWVPZihnZXRJdGVyYXRpb25zKCkpKTsNCiAJCQkJCXRoaXMucmVjb3JkZXIuc3RhcnQoKTsNCi0NCiAJCQkJCXRyeSB7DQogCQkJCQkJaWYgKGRpc2NvdmVyZXIuaXNBcHBsaWNhYmxlVG8ocHJvamVjdCkpIHsNCiAJCQkJCQkJSVByb2dyZXNzTW9uaXRvciBzdWJQcm9ncmVzc01vbml0b3IgPSBuZXcgU3ViUHJvZ3Jlc3NNb25pdG9yKHByb2dyZXNzTW9uaXRvciwgRUlHSFQpOw0KIAkJCQkJCQlkaXNjb3ZlcmVyLmRpc2NvdmVyRWxlbWVudChwcm9qZWN0LCBzdWJQcm9ncmVzc01vbml0b3IpOw0KIAkJCQkJCX0gZWxzZSB7DQotCQkJCQkJCU1vRGlzY29Mb2dnZXIubG9nV2FybmluZygiRGlzY292ZXJlciAiICsgZGlzY292ZXJlcklkICsgIiBpcyBub3QgYXBwbGljYWJsZSBvbiBwcm9qZWN0ICIgKyBwcm9qZWN0LmdldE5hbWUoKSwNCi0JCQkJCQkJCQlvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCisJCQkJCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KA0KKwkJCQkJCQkJCSJEaXNjb3ZlcmVyICclcycgaXMgbm90IGFwcGxpY2FibGUgb24gcHJvamVjdCAnJXMnIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQkJCQkJCWRpc2NvdmVyZXJJZCwNCisJCQkJCQkJCQlwcm9qZWN0LmdldE5hbWUoKQ0KKwkJCQkJCQkJCSk7DQorCQkJCQkJCU1vRGlzY29Mb2dnZXIubG9nV2FybmluZygNCisJCQkJCQkJCQltZXNzYWdlLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCiAJCQkJCQl9DQotCQkJCQl9IGNhdGNoIChEaXNjb3ZlcnlFeGNlcHRpb24gZSkgew0KKwkJCQkJfSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsNCiAJCQkJCQlmYWlsdXJlID0gdHJ1ZTsNCiAJCQkJCQlkaXNjb3ZlcnlFcnJvcnMuYXBwZW5kKGUuZ2V0U3RhY2tUcmFjZSgpLnRvU3RyaW5nKCkpOw0KKwkJCQkJCWZpbmFsIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nLmZvcm1hdCgNCisJCQkJCQkJCSJCZW5jaG1hcmsgb2YgZGlzY292ZXJlciAnJXMnIGZhaWxzIG9uIHByb2plY3QgJyVzJyIsIC8vJE5PTi1OTFMtMSQNCisJCQkJCQkJCWRpc2NvdmVyZXJJZCwNCisJCQkJCQkJCXByb2plY3QuZ2V0TmFtZSgpDQorCQkJCQkJCQkpOw0KIAkJCQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCQkJCSJCZW5jaG1hcmsgb2YgZGlzY292ZXJlciAiICsgZGlzY292ZXJlcklkICsgIiBmYWlscyBvbiBwcm9qZWN0IiArIHByb2plY3QuZ2V0TmFtZSgpLCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsgLy8kTk9OLU5MUy0xJA0KLQkJCQkJfSBjYXRjaCAoQ2xhc3NDYXN0RXhjZXB0aW9uIGUpIHsNCi0JCQkJCQlmYWlsdXJlID0gdHJ1ZTsNCi0JCQkJCQlkaXNjb3ZlcnlFcnJvcnMuYXBwZW5kKGUuZ2V0U3RhY2tUcmFjZSgpLnRvU3RyaW5nKCkpOw0KLQkJCQkJCU1vRGlzY29Mb2dnZXIubG9nRXJyb3IoZSwNCi0JCQkJCQkJCSJCZW5jaG1hcmsgb2YgZGlzY292ZXJlciAiICsgZGlzY292ZXJlcklkICsgIiBmYWlscyBvbiBwcm9qZWN0IiArIHByb2plY3QuZ2V0TmFtZSgpLCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsgLy8kTk9OLU5MUy0xJA0KKwkJCQkJCQkJbWVzc2FnZSwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQogCQkJCQl9DQogCQkJCQl0aGlzLnJlY29yZGVyLnN0b3AoKTsNCiAJCQkJCXRoaXMuZXZlbnRzLmFkZEFsbCh0aGlzLnJlY29yZGVyLmdldEV2ZW50cygpKTsNCkBAIC0yMjksOSArMjQxLDcgQEAKIAkJCQkJCWRpc2NvdmVyeUl0ZXJhdGlvbi5zZXREaXNjb3ZlcnlFcnJvcnMoZGlzY292ZXJ5RXJyb3JzLnRvU3RyaW5nKCkpOw0KIAkJCQkJfQ0KIAkJCQkJZGlzY28uZ2V0SXRlcmF0aW9ucygpLmFkZChkaXNjb3ZlcnlJdGVyYXRpb24pOw0KLQ0KIAkJCQl9DQotDQogCQkJCXBvc3REaXNjb3ZlcnlEaXNjb0luaXQoZGlzY28sIGRpc2NvdmVyZXIpOw0KIAkJCQlpZiAodGhpcy5pc1RhcmdldFNlcmlhbGl6YXRpb25DaG9zZW4oKSkgew0KIAkJCQkJdHJ5IHsNCkBAIC0yODUsNyArMjk1LDcgQEAKIAkJCQlzaXplKys7DQogCQkJfQ0KIAkJfSBlbHNlIHsNCi0JCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoIlVuYWJsZSB0byBjb21wdXRlIHRoZSBudW1iZXIgb2YgZWxlbWVudCBvZiBhbiB1bmV4aXN0aW5nIG1vZGVsIiwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQorCQkJTW9EaXNjb0xvZ2dlci5sb2dXYXJuaW5nKCJVbmFibGUgdG8gY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGVsZW1lbnQgb2YgYW4gdW5leGlzdGluZyBtb2RlbDogIit0YXJnZXRNb2RlbC5nZXRVUkkoKS50b1N0cmluZygpLCBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCiAJCX0NCiAJCXJldHVybiBzaXplOw0KIAl9DQpAQCAtMzA2LDM0ICszMTYsNDggQEAKIAkJCXRhcmdldFVSSSA9IHRoaXMuZ2V0VGFyZ2V0VVJJKCk7DQogCQl9DQogCQlpZiAodGFyZ2V0VVJJID09IG51bGwpIHsNCi0JCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoIlRoZSBIVE1MX1JFUE9SVF9MT0NBVElPTiBvciB0aGUgVEFSR0VUX1VSSSBwYXJhbWV0ZXIgc2hvdWxkIG5vdCBiZSBudWxsIiwgQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQorCQkJTW9EaXNjb0xvZ2dlci5sb2dXYXJuaW5nKA0KKwkJCQkJIlRoZSBIVE1MX1JFUE9SVF9MT0NBVElPTiBvciB0aGUgVEFSR0VUX1VSSSBwYXJhbWV0ZXIgc2hvdWxkIG5vdCBiZSBudWxsIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQogCQkJcmV0dXJuOw0KIAkJfQ0KLQkJSUNvbnRhaW5lciBsb2NhdGlvbiA9IFJlc291cmNlc1BsdWdpbi5nZXRXb3Jrc3BhY2UoKS5nZXRSb290KCkuZ2V0RmlsZShuZXcgUGF0aCh0YXJnZXRVUkkucGF0aCgpLnJlcGxhY2UoIi9yZXNvdXJjZSIsICIiKSkpLmdldFBhcmVudCgpOw0KLQkJU3RyaW5nIGxvY2F0aW9uU3RyaW5nID0gIiI7DQotCQlpZiAodGFyZ2V0VVJJID09IHRoaXMuZ2V0VGFyZ2V0VVJJKCkpIHsNCi0JCQlsb2NhdGlvblN0cmluZyA9IFJlc291cmNlc1BsdWdpbi5nZXRXb3Jrc3BhY2UoKS5nZXRSb290KCkuZ2V0TG9jYXRpb24oKS50b1N0cmluZygpIA0KLQkJCQkJKyB0YXJnZXRVUkkudHJpbVNlZ21lbnRzKDEpLnRvU3RyaW5nKCkucmVwbGFjZSgicGxhdGZvcm06L3Jlc291cmNlIiwgIiIpICsgIi9IVE1MUmVwb3J0IjsNCisJCWZpbmFsIElXb3Jrc3BhY2Ugd29ya3NwYWNlID0gUmVzb3VyY2VzUGx1Z2luLmdldFdvcmtzcGFjZSgpOw0KKwkJZmluYWwgSVdvcmtzcGFjZVJvb3Qgd3NSb290ID0gd29ya3NwYWNlLmdldFJvb3QoKTsNCisJCWphdmEuaW8uRmlsZSBmaWxlID0gbnVsbDsNCisJCUlGaWxlIGlGaWxlID0gbnVsbDsNCisJCVN0cmluZyB0YXJnZXRVcmlTdHIgPSB0YXJnZXRVUkkudG9TdHJpbmcoKTsNCisJCWlmICh0YXJnZXRVUkkuaXNQbGF0Zm9ybVJlc291cmNlKCkpIHsNCisJCQlmaW5hbCBTdHJpbmcgcGF0aFN0ciA9IA0KKwkJCQkJdGFyZ2V0VXJpU3RyLnJlcGxhY2VBbGwoInBsYXRmb3JtOi9yZXNvdXJjZSIsICIiKTsgLy8kTk9OLU5MUy0xJC8vJE5PTi1OTFMtMiQNCisJCQlpRmlsZSA9IHdzUm9vdC5nZXRGaWxlKG5ldyBQYXRoKHBhdGhTdHIpKTsNCisJCQlpRmlsZS5nZXRMb2NhdGlvbigpLnRvRmlsZSgpOw0KKwkJfSBlbHNlIGlmICh0YXJnZXRVUkkuaXNGaWxlKCkpIHsNCisJCQlmaWxlID0gbmV3IGphdmEuaW8uRmlsZShqYXZhLm5ldC5VUkkuY3JlYXRlKHRhcmdldFVyaVN0cikpOw0KIAkJfSBlbHNlIHsNCi0JCQlsb2NhdGlvblN0cmluZyA9IFJlc291cmNlc1BsdWdpbi5nZXRXb3Jrc3BhY2UoKS5nZXRSb290KCkuZ2V0TG9jYXRpb24oKS50b1N0cmluZygpIA0KLQkJCQkJKyB0YXJnZXRVUkkudG9TdHJpbmcoKS5yZXBsYWNlKCJwbGF0Zm9ybTovcmVzb3VyY2UiLCAiIik7DQorCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmcuZm9ybWF0KA0KKwkJCQkJIlRoZSBmb2xsb3dpbmcgdGFyZ2V0IFVSSSAnJXMnIGlzIG5vdCBtYW5hZ2VkLiAncGxhdGZvcm06L3Jlc291cmNlJyBvciAnZmlsZTovJyBhcmUgZXhwZWN0ZWQuIiwgLy8kTk9OLU5MUy0xJA0KKwkJCQkJdGFyZ2V0VVJJLnRvU3RyaW5nKCkpOw0KKwkJCXRocm93IG5ldyBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24obWVzc2FnZSk7DQogCQl9DQotCQlqYXZhLm5ldC5VUkkgdXJpID0gamF2YS5uZXQuVVJJLmNyZWF0ZShsb2NhdGlvblN0cmluZyk7DQotCQlqYXZhLmlvLkZpbGUgZmlsZSA9IG5ldyBqYXZhLmlvLkZpbGUodXJpLnRvU3RyaW5nKCkpOw0KLQ0KLQkJQXJyYXlMaXN0PE9iamVjdD4gYXJndW1lbnRzID0gbmV3IEFycmF5TGlzdDxPYmplY3Q+KCk7DQorCQlmaW5hbCBBcnJheUxpc3Q8T2JqZWN0PiBhcmd1bWVudHMgPSBuZXcgQXJyYXlMaXN0PE9iamVjdD4oKTsNCiAJCS8vR2VuZXJhdGlvbiBvZiB0aGUgSFRNTCByZXBvcnQNCiAJCXRyeSB7DQogCQkJSHRtbFJlcG9ydCByZXBvcnQgPSBuZXcgSHRtbFJlcG9ydChiZW5jaG1hcmssIGZpbGUsIGFyZ3VtZW50cyk7DQogCQkJcmVwb3J0LmRvR2VuZXJhdGUobnVsbCk7DQogCQl9IGNhdGNoIChFeGNlcHRpb24gZSkgew0KLQkJCU1vRGlzY29Mb2dnZXIubG9nV2FybmluZyhlLCAiQWNjZWxlbyBleGNlcHRpb24iLCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IuZ2V0RGVmYXVsdCgpKTsNCisJCQlNb0Rpc2NvTG9nZ2VyLmxvZ1dhcm5pbmcoZSwNCisJCQkJCSJBY2NlbGVvIGV4Y2VwdGlvbiIsIC8vJE5PTi1OTFMtMSQNCisJCQkJCUFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KIAkJfQ0KIAkJLy9HZW5lcmF0aW9uIG9mIHRoZSBjaGFydHMNCi0JCUJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbiBjaGFydEdlbmVyYXRvciA9IG5ldyBCZW5jaG1hcmtDaGFydEdlbmVyYXRpb24oZmlsZSwgdGhpcy5tZWFzdXJlTWVtb3J5VXNlKTsNCisJCWZpbmFsIEJlbmNobWFya0NoYXJ0R2VuZXJhdGlvbiBjaGFydEdlbmVyYXRvciA9IA0KKwkJCQluZXcgQmVuY2htYXJrQ2hhcnRHZW5lcmF0aW9uKGZpbGUsIHRoaXMubWVhc3VyZU1lbW9yeVVzZSk7DQogCQljaGFydEdlbmVyYXRvci5nZW5lcmF0ZUFsbChiZW5jaG1hcmspOw0KIA0KLQkJbG9jYXRpb24ucmVmcmVzaExvY2FsKElSZXNvdXJjZS5ERVBUSF9JTkZJTklURSwgcHJvZ3Jlc3NNb25pdG9yKTsNCisJCWlmIChpRmlsZSAhPSBudWxsKSB7DQorCQkJZmluYWwgSUNvbnRhaW5lciBsb2NhdGlvbiA9IGlGaWxlLmdldFBhcmVudCgpOw0KKwkJCWxvY2F0aW9uLnJlZnJlc2hMb2NhbChJUmVzb3VyY2UuREVQVEhfSU5GSU5JVEUsIHByb2dyZXNzTW9uaXRvcik7DQorCQl9DQogCX0NCiANCiAJLyoqDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9IdG1sUmVwb3J0LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQuamF2YQppbmRleCA3OWM5Yjg5Li44MzE2NDlmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQuamF2YQpAQCAtOCw2ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoKICAqICAgICBPYmVvIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCiAgKiAgICAgR3VpbGxhdW1lIERvdXggLSBJTlJJQQorICogICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI4NTcgLSBEaXNjb3ZlcmVyIEJlbmNobWFyayBSZXBvcnQgOiB3cm9uZyBuYW1lc3BhY2VzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUuaW50ZXJuYWwucmVwb3J0aW5nOwogCkBAIC0zNiw3ICszNyw3IEBACiAgICAgICoKICAgICAgKiBAZ2VuZXJhdGVkCiAgICAgICovCi0gICAgcHVibGljIHN0YXRpYyBmaW5hbCBTdHJpbmcgTU9EVUxFX0ZJTEVfTkFNRSA9ICIvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL3JlcG9ydGluZy9IdG1sUmVwb3J0IjsKKyAgICBwdWJsaWMgc3RhdGljIGZpbmFsIFN0cmluZyBNT0RVTEVfRklMRV9OQU1FID0gIi9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvSHRtbFJlcG9ydCI7CiAgICAgCiAgICAgLyoqCiAgICAgICogVGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlcyB0aGF0IGFyZSB0byBiZSBnZW5lcmF0ZWQuCkBAIC0xMzAsNiArMTMxLDEzIEBACiAgICAgICAgICAgICAgICAgTGlzdDxTdHJpbmc+IGFyZ3VtZW50cyA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAgICAgICogSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50IG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiCisgICAgICAgICAgICAgICAgICogdGFnIGluIHRoZSBKYXZhZG9jIG9mIHRoaXMgbWV0aG9kIHRvICJAZ2VuZXJhdGVkIE5PVCIuIFdpdGhvdXQgdGhpcyBuZXcgdGFnLCBhbnkgY29tcGlsYXRpb24KKyAgICAgICAgICAgICAgICAgKiBvZiB0aGUgQWNjZWxlbyBtb2R1bGUgd2l0aCB0aGUgbWFpbiB0ZW1wbGF0ZSB0aGF0IGhhcyBjYXVzZWQgdGhlIGNyZWF0aW9uIG9mIHRoaXMgY2xhc3Mgd2lsbAorICAgICAgICAgICAgICAgICAqIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuCisgICAgICAgICAgICAgICAgICovCisKKyAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICAqIEFkZCBpbiB0aGlzIGxpc3QgYWxsIHRoZSBhcmd1bWVudHMgdXNlZCBieSB0aGUgc3RhcnRpbmcgcG9pbnQgb2YgdGhlIGdlbmVyYXRpb24KICAgICAgICAgICAgICAgICAgKiBJZiB5b3VyIG1haW4gdGVtcGxhdGUgaXMgY2FsbGVkIG9uIGFuIGVsZW1lbnQgb2YgeW91ciBtb2RlbCBhbmQgYSBTdHJpbmcsIHlvdSBjYW4KICAgICAgICAgICAgICAgICAgKiBhZGQgaW4gImFyZ3VtZW50cyIgdGhpcyAiU3RyaW5nIiBhdHRyaWJ1dGUuCkBAIC0xMzksMTQgKzE0NywxMiBAQAogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgICogQWRkIHRoZSBwcm9wZXJ0aWVzIGZyb20gdGhlIGxhdW5jaCBhcmd1bWVudHMuCi0gICAgICAgICAgICAgICAgICogSWYgeW91IHdhbnQgdG8gcHJvZ3JhbW1hdGljYWxseSBhZGQgbmV3IGFyZ3VtZW50cywgYWRkIHRoZW0gaW4gInByb3BlcnRpZXNGaWxlcyIKKyAgICAgICAgICAgICAgICAgKiBJZiB5b3Ugd2FudCB0byBwcm9ncmFtbWF0aWNhbGx5IGFkZCBuZXcgcHJvcGVydGllcywgYWRkIHRoZW0gaW4gInByb3BlcnRpZXNGaWxlcyIKICAgICAgICAgICAgICAgICAgKiBZb3UgY2FuIGFkZCB0aGUgYWJzb2x1dGUgcGF0aCBvZiBhIHByb3BlcnRpZXMgZmlsZXMsIG9yIGV2ZW4gYSBwcm9qZWN0IHJlbGF0aXZlIHBhdGguCiAgICAgICAgICAgICAgICAgICogSWYgeW91IHdhbnQgdG8gYWRkIGFub3RoZXIgInByb3RvY29sIiBmb3IgeW91ciBwcm9wZXJ0aWVzIGZpbGVzLCBwbGVhc2Ugb3ZlcnJpZGUgCiAgICAgICAgICAgICAgICAgICogImdldFByb3BlcnRpZXNMb2FkZXJTZXJ2aWNlKEFjY2VsZW9TZXJ2aWNlKSIgaW4gb3JkZXIgdG8gcmV0dXJuIGEgbmV3IHByb3BlcnR5IGxvYWRlci4KLSAgICAgICAgICAgICAgICAgKiBUaGUgYmFzaWMgcHJvcGVydGllcyBsb2FkZXIgd2lsbCBsb29rIGZvciBwcm9wZXJ0aWVzIGluIHRoZSBjdXJyZW50IHByb2plY3QgaWYgdGhlIHBhdGgKLSAgICAgICAgICAgICAgICAgKiBvZiB0aGUgcHJvcGVydGllcyBmaWxlIGlzIGxpa2UgdGhpcyAicGFja2FnZWEucGFja2FnZWIucGFja2FnZWMuZGVmYXVsdCIgZm9yIGEgcHJvcGVydGllcwotICAgICAgICAgICAgICAgICAqIGZpbGUgbmFtZWQgZGVmYXVsdC5wcm9wZXJ0aWVzLCBvciBpZiB0aGUgcGF0aCBpcyBhbiBhYnNvbHV0ZSBwYXRoLiBXaXRoIGEgbmV3IHByb3BlcnR5Ci0gICAgICAgICAgICAgICAgICogbG9hZGVyIHlvdSBjb3VsZCBmb3IgZXhhbXBsZSwgbG9vayBmb3IgcHJvcGVydGllcyBmaWxlcyBpbiBhIGJ1bmRsZS4KKyAgICAgICAgICAgICAgICAgKiBUaGUgYmVoYXZpb3Igb2YgdGhlIHByb3BlcnRpZXMgbG9hZGVyIHNlcnZpY2UgaXMgZXhwbGFpbmVkIGluIHRoZSBBY2NlbGVvIGRvY3VtZW50YXRpb24KKyAgICAgICAgICAgICAgICAgKiAoSGVscCAtPiBIZWxwIENvbnRlbnRzKS4KICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDI7IGkgPCBhcmdzLmxlbmd0aDsgaSsrKSB7CkBAIC0xODMsNiArMTg5LDExIEBACiAKICAgICAgICAgLy9vcmcuZWNsaXBzZS5lbWYuZWNvcmUudXRpbC5FY29yZVV0aWwucmVzb2x2ZUFsbChtb2RlbCk7CiAKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgeW91IHdhbnQgdG8gY2hlY2sgZm9yIHBvdGVudGlhbCBlcnJvcnMgaW4geW91ciBtb2RlbHMgYmVmb3JlIHRoZSBsYXVuY2ggb2YgdGhlIGdlbmVyYXRpb24sIHlvdQorICAgICAgICAgKiB1c2UgdGhlIGNvZGUgYmVsb3cuCisgICAgICAgICAqLworCiAgICAgICAgIC8vaWYgKG1vZGVsICE9IG51bGwgJiYgbW9kZWwuZVJlc291cmNlKCkgIT0gbnVsbCkgewogICAgICAgICAvLyAgICBMaXN0PG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5SZXNvdXJjZS5EaWFnbm9zdGljPiBlcnJvcnMgPSBtb2RlbC5lUmVzb3VyY2UoKS5nZXRFcnJvcnMoKTsKICAgICAgICAgLy8gICAgZm9yIChvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2UuRGlhZ25vc3RpYyBkaWFnbm9zdGljIDogZXJyb3JzKSB7CkBAIC0yNjEsMTMgKzI3MiwzOCBAQAogICAgIEBPdmVycmlkZQogICAgIHB1YmxpYyBMaXN0PFN0cmluZz4gZ2V0UHJvcGVydGllcygpIHsKICAgICAgICAgLyoKKyAgICAgICAgICogSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50IG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiCisgICAgICAgICAqIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0byAiQGdlbmVyYXRlZCBOT1QiLiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uCisgICAgICAgICAqIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24gb2YgdGhpcyBjbGFzcyB3aWxsCisgICAgICAgICAqIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuCisgICAgICAgICAqLworCisgICAgICAgIC8qCiAgICAgICAgICAqIFRPRE8gaWYgeW91ciBnZW5lcmF0aW9uIG1vZHVsZSByZXF1aXJlcyBhY2Nlc3MgdG8gcHJvcGVydGllcyBmaWxlcywgYWRkIHRoZWlyIHF1YWxpZmllZCBwYXRoIHRvIHRoZSBsaXN0IGhlcmUuCi0gICAgICAgICAqIFByb3BlcnRpZXMgZmlsZXMgYXJlIGV4cGVjdGVkIHRvIGJlIGluIHNvdXJjZSBmb2xkZXJzLCBhbmQgdGhlIHBhdGggaGVyZSB0byBiZSB0aGUgcXVhbGlmaWVkIHBhdGggYXMgaWYgcmVmZXJyaW5nCi0gICAgICAgICAqIHRvIGEgSmF2YSBjbGFzcy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIGEgZmlsZSBuYW1lZCAibWVzc2FnZXMucHJvcGVydGllcyIgaW4gcGFja2FnZSAib3JnLmVjbGlwc2UuYWNjZWxlby5zYW1wbGUiLAotICAgICAgICAgKiB0aGUgcGF0aCB0aGF0IG5lZWRzIGJlIGFkZGVkIHRvIHRoaXMgbGlzdCBpcyAib3JnLmVjbGlwc2UuYWNjZWxlby5zYW1wbGUubWVzc2FnZXMiLiBJZiB5b3Ugd2FudCB0byBjaGFuZ2UgdGhlIGNvbnRlbnQKLSAgICAgICAgICogb2YgdGhpcyBtZXRob2QsIGRvIE5PVCBmb3JnZXQgdG8gY2hhbmdlIHRoZSAiQGdlbmVyYXRlZCIgdGFnIGluIHRoZSBKYXZhZG9jIG9mIHRoaXMgbWV0aG9kIHRvICJAZ2VuZXJhdGVkIE5PVCIuCi0gICAgICAgICAqIFdpdGhvdXQgdGhpcyBuZXcgdGFnLCBhbnkgY29tcGlsYXRpb24gb2YgdGhlIEFjY2VsZW8gbW9kdWxlIHdpdGggdGhlIG1haW4gdGVtcGxhdGUgdGhhdCBoYXMgY2F1c2VkIHRoZSBjcmVhdGlvbiBvZiAKLSAgICAgICAgICogdGhpcyBjbGFzcyB3aWxsIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuCisgICAgICAgICAqIAorICAgICAgICAgKiBQcm9wZXJ0aWVzIGZpbGVzIGNhbiBiZSBsb2NhdGVkIGluIGFuIEVjbGlwc2UgcGx1Zy1pbiBvciBpbiB0aGUgZmlsZSBzeXN0ZW0gKGFsbCBBY2NlbGVvIHByb2plY3RzIGFyZSBFY2xpcHNlCisgICAgICAgICAqIHBsdWctaW4pLiBJbiBvcmRlciB0byB1c2UgcHJvcGVydGllcyBmaWxlcyBsb2NhdGVkIGluIGFuIEVjbGlwc2UgcGx1Z2luLCB5b3UgbmVlZCB0byBhZGQgdGhlIHBhdGggb2YgdGhlIHByb3BlcnRpZXMKKyAgICAgICAgICogZmlsZXMgdG8gdGhlICJwcm9wZXJ0aWVzRmlsZXMiIGxpc3Q6CisgICAgICAgICAqIAorICAgICAgICAgKiBmaW5hbCBTdHJpbmcgcHJlZml4ID0gInBsYXRmb3JtOi9wbHVnaW4vIjsKKyAgICAgICAgICogZmluYWwgU3RyaW5nIHBsdWdpbk5hbWUgPSAib3JnLmVjbGlwc2UuYWNjZWxlby5tb2R1bGUuc2FtcGxlIjsKKyAgICAgICAgICogZmluYWwgU3RyaW5nIHBhY2thZ2VQYXRoID0gIi9vcmcvZWNsaXBzZS9hY2NlbGVvL21vZHVsZS9zYW1wbGUvcHJvcGVydGllcy8iOworICAgICAgICAgKiBmaW5hbCBTdHJpbmcgZmlsZU5hbWUgPSAiZGVmYXVsdC5wcm9wZXJ0aWVzIjsKKyAgICAgICAgICogcHJvcGVydGllc0ZpbGVzLmFkZChwcmVmaXggKyBwbHVnaW5OYW1lICsgcGFja2FnZVBhdGggKyBmaWxlTmFtZSk7CisgICAgICAgICAqIAorICAgICAgICAgKiBXaXRoIHRoaXMgbWVjaGFuaXNtLCB5b3UgY2FuIGxvYWQgcHJvcGVydGllcyBmaWxlcyBmcm9tIHlvdXIgcGx1Z2luIG9yIGZyb20gYW5vdGhlciBwbHVnaW4uCisgICAgICAgICAqIAorICAgICAgICAgKiBZb3UgbWF5IHdhbnQgdG8gbG9hZCBwcm9wZXJ0aWVzIGZpbGVzIGZyb20gdGhlIGZpbGUgc3lzdGVtLCBmb3IgdGhhdCB5b3UgbmVlZCB0byBhZGQgdGhlIGFic29sdXRlIHBhdGggb2YgdGhlIGZpbGU6CisgICAgICAgICAqIAorICAgICAgICAgKiBwcm9wZXJ0aWVzRmlsZXMuYWRkKCJDOlxVc2Vyc1xNeU5hbWVcTXlGaWxlLnByb3BlcnRpZXMiKTsKKyAgICAgICAgICogCisgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGxldCB5b3VyIHVzZXJzIGFkZCBwcm9wZXJ0aWVzIGZpbGVzIGxvY2F0ZWQgaW4gdGhlIHNhbWUgZm9sZGVyIGFzIHRoZSBtb2RlbDoKKyAgICAgICAgICoKKyAgICAgICAgICogaWYgKEVNRlBsdWdpbi5JU19FQ0xJUFNFX1JVTk5JTkcgJiYgbW9kZWwgIT0gbnVsbCAmJiBtb2RlbC5lUmVzb3VyY2UoKSAhPSBudWxsKSB7IAorICAgICAgICAgKiAgICAgcHJvcGVydGllc0ZpbGVzLmFkZEFsbChBY2NlbGVvRW5naW5lVXRpbHMuZ2V0UHJvcGVydGllc0ZpbGVzTmVhck1vZGVsKG1vZGVsLmVSZXNvdXJjZSgpKSk7CisgICAgICAgICAqIH0KKyAgICAgICAgICogCisgICAgICAgICAqIFRvIGxlYXJuIG1vcmUgYWJvdXQgUHJvcGVydGllcyBGaWxlcywgaGF2ZSBhIGxvb2sgYXQgdGhlIEFjY2VsZW8gZG9jdW1lbnRhdGlvbiAoSGVscCAtPiBIZWxwIENvbnRlbnRzKS4KICAgICAgICAgICovCiAgICAgICAgIHJldHVybiBwcm9wZXJ0aWVzRmlsZXM7CiAgICAgfQpAQCAtMzE3LDIzICszNTMsMzcgQEAKICAgICAgICAgICAgIHJlc291cmNlU2V0LmdldFBhY2thZ2VSZWdpc3RyeSgpLnB1dChvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5sYXVuY2guTGF1bmNoUGFja2FnZS5lSU5TVEFOQ0UuZ2V0TnNVUkkoKSwgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkubGF1bmNoLkxhdW5jaFBhY2thZ2UuZUlOU1RBTkNFKTsKICAgICAgICAgfQogICAgICAgICAqLworICAgICAgICAKICAgICAgICAgLyoKLSAgICAgICAgICogVE9ETyBJZiB5b3UgbmVlZCBhZGRpdGlvbmFsIHBhY2thZ2UgcmVnaXN0cmF0aW9ucywgeW91IGNhbiByZWdpc3RlciB0aGVtIGhlcmUuIFRoZSBmb2xsb3dpbmcgbGluZQotICAgICAgICAgKiAoaW4gY29tbWVudCkgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcGFja2FnZSByZWdpc3RyYXRpb24gZm9yIFVNTC4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50Ci0gICAgICAgICAqIG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0bwotICAgICAgICAgKiAiQGdlbmVyYXRlZCBOT1QiLiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlCi0gICAgICAgICAqIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24gb2YgdGhpcyBjbGFzcyB3aWxsIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuIFlvdSBjYW4gdXNlIHRoZSBtZXRob2QKLSAgICAgICAgICogImlzSW5Xb3Jrc3BhY2UoQ2xhc3MgYykiIHRvIGNoZWNrIGlmIHRoZSBwYWNrYWdlIHRoYXQgeW91IGFyZSBhYm91dCB0byByZWdpc3RlciBpcyBpbiB0aGUgd29ya3NwYWNlLgotICAgICAgICAgKiBUbyByZWdpc3RlciBhIHBhY2thZ2UgcHJvcGVybHksIHBsZWFzZSBmb2xsb3cgdGhlIGZvbGxvd2luZyBjb252ZW50aW9uczoKKyAgICAgICAgICogSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50IG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiCisgICAgICAgICAqIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0byAiQGdlbmVyYXRlZCBOT1QiLiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uCisgICAgICAgICAqIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24gb2YgdGhpcyBjbGFzcyB3aWxsCisgICAgICAgICAqIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuCisgICAgICAgICAqLworICAgICAgICAKKyAgICAgICAgLyoKKyAgICAgICAgICogSWYgeW91IG5lZWQgYWRkaXRpb25hbCBwYWNrYWdlIHJlZ2lzdHJhdGlvbnMsIHlvdSBjYW4gcmVnaXN0ZXIgdGhlbSBoZXJlLiBUaGUgZm9sbG93aW5nIGxpbmUKKyAgICAgICAgICogKGluIGNvbW1lbnQpIGlzIGFuIGV4YW1wbGUgb2YgdGhlIHBhY2thZ2UgcmVnaXN0cmF0aW9uIGZvciBVTUwuCiAgICAgICAgICAqIAorICAgICAgICAgKiBZb3UgY2FuIHVzZSB0aGUgbWV0aG9kICAiaXNJbldvcmtzcGFjZShDbGFzcyBjKSIgdG8gY2hlY2sgaWYgdGhlIHBhY2thZ2UgdGhhdCB5b3UgYXJlIGFib3V0IHRvCisgICAgICAgICAqIHJlZ2lzdGVyIGlzIGluIHRoZSB3b3Jrc3BhY2UuCisgICAgICAgICAqIAorICAgICAgICAgKiBUbyByZWdpc3RlciBhIHBhY2thZ2UgcHJvcGVybHksIHBsZWFzZSBmb2xsb3cgdGhlIGZvbGxvd2luZyBjb252ZW50aW9uczoKKyAgICAgICAgICoKKyAgICAgICAgICogSWYgdGhlIHBhY2thZ2UgaXMgbG9jYXRlZCBpbiBhbm90aGVyIHBsdWctaW4sIGFscmVhZHkgaW5zdGFsbGVkIGluIEVjbGlwc2UuIFRoZSBmb2xsb3dpbmcgY29udGVudCBzaG91bGQKKyAgICAgICAgICogaGF2ZSBiZWVuIGdlbmVyYXRlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoaXMgbWV0aG9kLiBEbyBub3QgcmVnaXN0ZXIgdGhlIHBhY2thZ2UgdXNpbmcgdGhpcyBtZWNoYW5pc20gaWYKKyAgICAgICAgICogdGhlIG1ldGFtb2RlbCBpcyBsb2NhdGVkIGluIHRoZSB3b3Jrc3BhY2UuCisgICAgICAgICAqICAKICAgICAgICAgICogaWYgKCFpc0luV29ya3NwYWNlKFVNTFBhY2thZ2UuY2xhc3MpKSB7CiAgICAgICAgICAqICAgICAvLyBUaGUgbm9ybWFsIHBhY2thZ2UgcmVnaXN0cmF0aW9uIGlmIHlvdXIgbWV0YW1vZGVsIGlzIGluIGEgcGx1Z2luLgogICAgICAgICAgKiAgICAgcmVzb3VyY2VTZXQuZ2V0UGFja2FnZVJlZ2lzdHJ5KCkucHV0KFVNTFBhY2thZ2UuZU5TX1VSSSwgVU1MUGFja2FnZS5lSU5TVEFOQ0UpOwotICAgICAgICAgKiB9IGVsc2UgewotICAgICAgICAgKiAgICAgLy8gVGhlIHBhY2thZ2UgcmVnaXN0cmF0aW9uIHRoYXQgd2lsbCBiZSB1c2VkIGlmIHRoZSBtZXRhbW9kZWwgaXMgbm90IGRlcGxveWVkIGluIGEgcGx1Z2luLgotICAgICAgICAgKiAgICAgLy8gVGhpcyBzaG91bGQgYmUgdXNlZCBpZiB5b3VyIG1ldGFtb2RlbCBpcyBpbiB5b3VyIHdvcmtzcGFjZSBhbmQgaWYgeW91IGFyZSB1c2luZyBiaW5hcnkgcmVzb3VyY2Ugc2VyaWFsaXphdGlvbi4KLSAgICAgICAgICogICAgIHJlc291cmNlU2V0LmdldFBhY2thZ2VSZWdpc3RyeSgpLnB1dCgiL215cHJvamVjdC9teWZvbGRlci9teXN1YmZvbGRlci9NeVVNTE1ldGFtb2RlbC5lY29yZSIsIFVNTFBhY2thZ2UuZUlOU1RBTkNFKTsKICAgICAgICAgICogfQorICAgICAgICAgKiAKKyAgICAgICAgICogSWYgdGhlIHBhY2thZ2UgaXMgbG9jYXRlZCBpbiBhbm90aGVyIHByb2plY3QgaW4geW91ciB3b3Jrc3BhY2UsIHRoZSBwbHVnaW4gY29udGFpbmluZyB0aGUgcGFja2FnZSBoYXMgbm90CisgICAgICAgICAqIGJlZW4gcmVnaXN0ZXIgYnkgRU1GIGFuZCBBY2NlbGVvIHNob3VsZCByZWdpc3RlciBpdCBhdXRvbWF0aWNhbGx5LiBJZiB5b3Ugd2FudCB0byB1c2UgdGhlIGdlbmVyYXRvciBpbgorICAgICAgICAgKiBzdGFuZCBhbG9uZSwgdGhlIHJlZ3VsYXIgcmVnaXN0cmF0aW9uIChzZWVuIGEgY291cGxlIGxpbmVzIGJlZm9yZSkgaXMgbmVlZGVkLgorICAgICAgICAgKiAKKyAgICAgICAgICogVG8gbGVhcm4gbW9yZSBhYm91dCBQYWNrYWdlIFJlZ2lzdHJhdGlvbiwgaGF2ZSBhIGxvb2sgYXQgdGhlIEFjY2VsZW8gZG9jdW1lbnRhdGlvbiAoSGVscCAtPiBIZWxwIENvbnRlbnRzKS4KICAgICAgICAgICovCiAgICAgfQogCkBAIC0zNDgsMTEgKzM5OCwxOSBAQAogICAgIHB1YmxpYyB2b2lkIHJlZ2lzdGVyUmVzb3VyY2VGYWN0b3JpZXMoUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQpIHsKICAgICAgICAgc3VwZXIucmVnaXN0ZXJSZXNvdXJjZUZhY3RvcmllcyhyZXNvdXJjZVNldCk7CiAgICAgICAgIC8qCisgICAgICAgICAqIElmIHlvdSB3YW50IHRvIGNoYW5nZSB0aGUgY29udGVudCBvZiB0aGlzIG1ldGhvZCwgZG8gTk9UIGZvcmdldCB0byBjaGFuZ2UgdGhlICJAZ2VuZXJhdGVkIgorICAgICAgICAgKiB0YWcgaW4gdGhlIEphdmFkb2Mgb2YgdGhpcyBtZXRob2QgdG8gIkBnZW5lcmF0ZWQgTk9UIi4gV2l0aG91dCB0aGlzIG5ldyB0YWcsIGFueSBjb21waWxhdGlvbgorICAgICAgICAgKiBvZiB0aGUgQWNjZWxlbyBtb2R1bGUgd2l0aCB0aGUgbWFpbiB0ZW1wbGF0ZSB0aGF0IGhhcyBjYXVzZWQgdGhlIGNyZWF0aW9uIG9mIHRoaXMgY2xhc3Mgd2lsbAorICAgICAgICAgKiByZXZlcnQgeW91ciBtb2RpZmljYXRpb25zLgorICAgICAgICAgKi8KKyAgICAgICAgCisgICAgICAgIC8qCiAgICAgICAgICAqIFRPRE8gSWYgeW91IG5lZWQgYWRkaXRpb25hbCByZXNvdXJjZSBmYWN0b3JpZXMgcmVnaXN0cmF0aW9ucywgeW91IGNhbiByZWdpc3RlciB0aGVtIGhlcmUuIHRoZSBmb2xsb3dpbmcgbGluZQotICAgICAgICAgKiAoaW4gY29tbWVudCkgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcmVzb3VyY2UgZmFjdG9yeSByZWdpc3RyYXRpb24gZm9yIFVNTC4gSWYgeW91IHdhbnQgdG8gY2hhbmdlIHRoZSBjb250ZW50Ci0gICAgICAgICAqIG9mIHRoaXMgbWV0aG9kLCBkbyBOT1QgZm9yZ2V0IHRvIGNoYW5nZSB0aGUgIkBnZW5lcmF0ZWQiIHRhZyBpbiB0aGUgSmF2YWRvYyBvZiB0aGlzIG1ldGhvZCB0byAiQGdlbmVyYXRlZCBOT1QiLgotICAgICAgICAgKiBXaXRob3V0IHRoaXMgbmV3IHRhZywgYW55IGNvbXBpbGF0aW9uIG9mIHRoZSBBY2NlbGVvIG1vZHVsZSB3aXRoIHRoZSBtYWluIHRlbXBsYXRlIHRoYXQgaGFzIGNhdXNlZCB0aGUgY3JlYXRpb24KLSAgICAgICAgICogb2YgdGhpcyBjbGFzcyB3aWxsIHJldmVydCB5b3VyIG1vZGlmaWNhdGlvbnMuIAorICAgICAgICAgKiAoaW4gY29tbWVudCkgaXMgYW4gZXhhbXBsZSBvZiB0aGUgcmVzb3VyY2UgZmFjdG9yeSByZWdpc3RyYXRpb24gZm9yIFVNTC4KKyAgICAgICAgICoKKyAgICAgICAgICogSWYgeW91IHdhbnQgdG8gdXNlIHRoZSBnZW5lcmF0b3IgaW4gc3RhbmQgYWxvbmUsIHRoZSByZXNvdXJjZSBmYWN0b3J5IHJlZ2lzdHJhdGlvbiB3aWxsIGJlIHJlcXVpcmVkLgorICAgICAgICAgKiAgCisgICAgICAgICAqIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlIHJlZ2lzdHJhdGlvbiBvZiBSZXNvdXJjZSBGYWN0b3JpZXMsIGhhdmUgYSBsb29rIGF0IHRoZSBBY2NlbGVvIGRvY3VtZW50YXRpb24gKEhlbHAgLT4gSGVscCBDb250ZW50cykuIAogICAgICAgICAgKi8gCiAgICAgICAgIAogICAgICAgICAvLyByZXNvdXJjZVNldC5nZXRSZXNvdXJjZUZhY3RvcnlSZWdpc3RyeSgpLmdldEV4dGVuc2lvblRvRmFjdG9yeU1hcCgpLnB1dChVTUxSZXNvdXJjZS5GSUxFX0VYVEVOU0lPTiwgVU1MUmVzb3VyY2UuRmFjdG9yeS5JTlNUQU5DRSk7CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQubXRsIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2JlbmNobWFyay9jb3JlL2ludGVybmFsL3JlcG9ydGluZy9IdG1sUmVwb3J0Lm10bAppbmRleCAxZGQ1YjYwLi5hNjk0YzRjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrL2NvcmUvaW50ZXJuYWwvcmVwb3J0aW5nL0h0bWxSZXBvcnQubXRsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9iZW5jaG1hcmsvY29yZS9pbnRlcm5hbC9yZXBvcnRpbmcvSHRtbFJlcG9ydC5tdGwKQEAgLTUsMTUgKzUsMTcgQEAKICAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKICAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCiAgKiAKLSAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbgotICogCisgKiBDb250cmlidXRvcnM6CisgKiAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uCisgKiAgICBHcsOpZ29pcmUgRHVww6kgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgNDgyNjcyIC0gQmVuY2htYXJrIGNvbW1hbmQgbGluZSBpbnRlcmZhY2UKKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI4NTcgLSBEaXNjb3ZlcmVyIEJlbmNobWFyayBSZXBvcnQgOiB3cm9uZyBuYW1lc3BhY2VzCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLyAvXQotW21vZHVsZSBIdG1sUmVwb3J0KCdodHRwOi8vd3d3LmVjbGlwc2Uub3JnL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2JlbmNobWFyaycsJ2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9EaXNjb3ZlcnkvMC4xLmluY3ViYXRpb24vZGlzY292ZXJ5L2NhdGFsb2cnLCdodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vRGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2Rpc2NvdmVyeS9sYXVuY2gnKS9dCitbbW9kdWxlIEh0bWxSZXBvcnQoJ2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvYmVuY2htYXJrLzAuMTEuaW5jdWJhdGlvbi9pbnRlcm5hbC9iZW5jaG1hcmsnLCdodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vRGlzY292ZXJ5LzAuMS5pbmN1YmF0aW9uL2Rpc2NvdmVyeS9jYXRhbG9nJywnaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0Rpc2NvdmVyeS8wLjEuaW5jdWJhdGlvbi9kaXNjb3ZlcnkvbGF1bmNoJykvXQogCi1bcXVlcnkgcHVibGljIG1heEV4ZWN1dGlvblRpbWUgKGl0ZXJhdGlvbnMgOiBTZXQoRGlzY292ZXJ5SXRlcmF0aW9uKSkgOiBSZWFsID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsucmVwb3J0aW5nLmludGVybmFsLlJlcG9ydGluZ1V0aWxpdGllcycsICdtYXhFeGVjdXRpb25UaW1lKGphdmEudXRpbC5Db2xsZWN0aW9uKScsIFNlcXVlbmNle2l0ZXJhdGlvbnN9KS9dCi1bcXVlcnkgcHVibGljIG1heFNhdmVUaW1lIChpdGVyYXRpb25zIDogU2V0KERpc2NvdmVyeUl0ZXJhdGlvbikpIDogUmVhbCA9IGludm9rZSgnb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAnbWF4U2F2ZVRpbWUoamF2YS51dGlsLkNvbGxlY3Rpb24pJywgU2VxdWVuY2V7aXRlcmF0aW9uc30pL10KLVtxdWVyeSBwdWJsaWMgc2l6ZVdpdGhVbml0ICh2YWx1ZSA6IFJlYWwpIDogU3RyaW5nID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsucmVwb3J0aW5nLmludGVybmFsLlJlcG9ydGluZ1V0aWxpdGllcycsICdzaXplV2l0aFVuaXQoamF2YS5sYW5nLkRvdWJsZSknLCBTZXF1ZW5jZXt2YWx1ZX0pL10KLVtxdWVyeSBwdWJsaWMgdGltZVdpdGhVbml0ICh2YWx1ZSA6IFJlYWwpIDogU3RyaW5nID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsucmVwb3J0aW5nLmludGVybmFsLlJlcG9ydGluZ1V0aWxpdGllcycsICd0aW1lV2l0aFVuaXQoamF2YS5sYW5nLkRvdWJsZSknLCBTZXF1ZW5jZXt2YWx1ZX0pL10KK1txdWVyeSBwdWJsaWMgbWF4RXhlY3V0aW9uVGltZSAoaXRlcmF0aW9ucyA6IFNldChEaXNjb3ZlcnlJdGVyYXRpb24pKSA6IFJlYWwgPSBpbnZva2UoJ29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAnbWF4RXhlY3V0aW9uVGltZShqYXZhLnV0aWwuQ29sbGVjdGlvbiknLCBTZXF1ZW5jZXtpdGVyYXRpb25zfSkvXQorW3F1ZXJ5IHB1YmxpYyBtYXhTYXZlVGltZSAoaXRlcmF0aW9ucyA6IFNldChEaXNjb3ZlcnlJdGVyYXRpb24pKSA6IFJlYWwgPSBpbnZva2UoJ29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAnbWF4U2F2ZVRpbWUoamF2YS51dGlsLkNvbGxlY3Rpb24pJywgU2VxdWVuY2V7aXRlcmF0aW9uc30pL10KK1txdWVyeSBwdWJsaWMgc2l6ZVdpdGhVbml0ICh2YWx1ZSA6IFJlYWwpIDogU3RyaW5nID0gaW52b2tlKCdvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuY29yZS5pbnRlcm5hbC5yZXBvcnRpbmcuaW50ZXJuYWwuUmVwb3J0aW5nVXRpbGl0aWVzJywgJ3NpemVXaXRoVW5pdChqYXZhLmxhbmcuRG91YmxlKScsIFNlcXVlbmNle3ZhbHVlfSkvXQorW3F1ZXJ5IHB1YmxpYyB0aW1lV2l0aFVuaXQgKHZhbHVlIDogUmVhbCkgOiBTdHJpbmcgPSBpbnZva2UoJ29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5jb3JlLmludGVybmFsLnJlcG9ydGluZy5pbnRlcm5hbC5SZXBvcnRpbmdVdGlsaXRpZXMnLCAndGltZVdpdGhVbml0KGphdmEubGFuZy5Eb3VibGUpJywgU2VxdWVuY2V7dmFsdWV9KS9dCiAKIFt0ZW1wbGF0ZSBwdWJsaWMgSHRtbFJlcG9ydChiIDogQmVuY2htYXJrKV0KIAkKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5kb2MuYXJjaGkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuZG9jLmFyY2hpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGFiNWNmMzUuLjMwZmIzOTUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5kb2MuYXJjaGkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmRvYy5hcmNoaS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmRvYy5hcmNoaTtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmRvYy5hcmNoaS5pbnRlcm5hbC5BY3RpdmF0b3INCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5mZWF0dXJlL2ZlYXR1cmUueG1sCmluZGV4IDlhZGQxZTQuLmVmODI3NDkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0yLDcgKzIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmZlYXR1cmUiDQogICAgICAgbGFiZWw9Ik1vRGlzY28gSW5mcmFzdHJ1Y3R1cmUgRGlzY292ZXJ5IEJlbmNobWFyayAoSW5jdWJhdGlvbikiDQotICAgICAgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciINCisgICAgICB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIg0KICAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIwLjAuMCI+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5tZXRhbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNWE3ZDg0Mi4uOGQ2MGQzZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsubWV0YW1vZGVsL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLm1ldGFtb2RlbDtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUNsYXNzUGF0aDogLgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnVpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGQ2ZjY5ZDMuLmIyMzk2YTYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay51aS5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKICBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNjZiMjQxZS4uYzQ2MGZlYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyaztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUNsYXNzUGF0aDogLgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYWQ4OGY2Ni4uZWU5ZThjNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0cztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0cy5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvY29yZS90ZXN0cy9UZXN0RGlzY292ZXJlcnNSZWZlcmVudGlhbC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvY29yZS90ZXN0cy9UZXN0RGlzY292ZXJlcnNSZWZlcmVudGlhbC5qYXZhCmluZGV4IDJlYjlhNWIuLjA3MDlmN2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2NvcmUvdGVzdHMvVGVzdERpc2NvdmVyZXJzUmVmZXJlbnRpYWwuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9jb3JlL3Rlc3RzL1Rlc3REaXNjb3ZlcmVyc1JlZmVyZW50aWFsLmphdmEKQEAgLTcsNiArNyw3IEBACiAgKg0KICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBGYWJpZW4gR2lxdWVsIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NTM0NzYgLSBTdG9wIHVzaW5nIEVNRiBGYWNldCdzIGRlcHJlY2F0ZWQgQVBJcw0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS50ZXN0czsNCiANCkBAIC0xOSw4ICsyMCwxMSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5OdWxsUHJvZ3Jlc3NNb25pdG9yOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRUxpc3Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5jb21tb24udXRpbC5VUkk7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsLlJlc291cmNlU2V0SW1wbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNhdGFsb2cuQ2F0YWxvZzsNCi1pbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNvcmUuSUNhdGFsb2dTZXRNYW5hZ2VyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY2F0YWxvZy5DYXRhbG9nU2V0Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY29yZS5JQ2F0YWxvZ1NldE1hbmFnZXIyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5lbWYuY29yZS5JQ2F0YWxvZ1NldE1hbmFnZXJGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jYXRhbG9nLkRpcmVjdGlvbktpbmQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlckNhdGFsb2c7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlckRlc2NyaXB0aW9uOw0KQEAgLTQ0LDggKzQ4LDEwIEBACiANCiAJCS8vIHRlc3QgZGlzY292ZXJlcnMgY2F0YWxvZyByZWdpc3RyYXRpb24NCiAJCWJvb2xlYW4gY2F0YWxvZ0ZvdW5kID0gZmFsc2U7DQotCQlmb3IgKENhdGFsb2cgYUNhdGFsb2cgOiBJQ2F0YWxvZ1NldE1hbmFnZXIuSU5TVEFOQ0UuZ2V0Q2F0YWxvZ1NldCgpDQotCQkJCS5nZXRDYXRhbG9ncygpKSB7DQorCQlmaW5hbCBJQ2F0YWxvZ1NldE1hbmFnZXIyIGNhdGFsb2dTZXRNYW5hZ2VyID0gSUNhdGFsb2dTZXRNYW5hZ2VyRmFjdG9yeS5ERUZBVUxUDQorCQkJCS5jcmVhdGVJQ2F0YWxvZ1NldE1hbmFnZXIobmV3IFJlc291cmNlU2V0SW1wbCgpKTsNCisJCWZpbmFsIENhdGFsb2dTZXQgY2F0YWxvZ1NldCA9IGNhdGFsb2dTZXRNYW5hZ2VyLmdldENhdGFsb2dTZXQoKTsNCisJCWZvciAoQ2F0YWxvZyBhQ2F0YWxvZyA6IGNhdGFsb2dTZXQuZ2V0Q2F0YWxvZ3MoKSkgew0KIAkJCWlmIChhQ2F0YWxvZyBpbnN0YW5jZW9mIERpc2NvdmVyZXJDYXRhbG9nKSB7DQogCQkJCWNhdGFsb2dGb3VuZCA9IHRydWU7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZTIwNmZkZi4uOTk1MzAxMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvY29yZS9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvY29yZS9NZXNzYWdlcy5qYXZhCmluZGV4IDJjMjI0NTIuLjUzYjZjMjMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L2NvcmUvTWVzc2FnZXMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS9jb3JlL01lc3NhZ2VzLmphdmEKQEAgLTE0LDYgKzE0LDExIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiANCisvKioNCisqIEBkZXByZWNhdGVkIFdpbGwgYmUgcmVtb3ZlZCwNCisqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNzAxDQorKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5jb3JlLm1lc3NhZ2VzIjsgLy8kTk9OLU5MUy0xJA0KIAlwdWJsaWMgc3RhdGljIFN0cmluZyBBYnN0cmFjdERpc2NvdmVyZXJfQ2Fubm90Q2hlY2s7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2Yjg4MmI0Li5jMDk3MmI5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS50ZXN0cy5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL3Rlc3RzL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL3Rlc3RzL0FjdGl2YXRvci5qYXZhCmluZGV4IGI2YjFlNjguLjdjOWNmZWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS90ZXN0cy9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvdGVzdHMvQWN0aXZhdG9yLmphdmEKQEAgLTEzLDYgKzEzLDEwIEBACiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUFjdGl2YXRvcjsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZUNvbnRleHQ7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgaW1wbGVtZW50cyBCdW5kbGVBY3RpdmF0b3Igew0KIA0KIAlwcml2YXRlIHN0YXRpYyBCdW5kbGVDb250ZXh0IGNvbnRleHQ7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2NDZmMjdkLi42OGQyMjZmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCkBAIC0xNyw3ICsxNyw2IEBACiAgb3JnLmVjbGlwc2UuamR0LmNvcmU7YnVuZGxlLXZlcnNpb249IjMuNi4wIiwKICBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuY29tbW9uLnVpO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCIsCiAgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LndpZGdldHMuY2VsbGVkaXRvcnM7YnVuZGxlLXZlcnNpb249IjAuMS4wIiwKLSBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuaW5mcmEuY29tbW9uLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuMS4wIiwKICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeTtidW5kbGUtdmVyc2lvbj0iMC45LjAiLAogIG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmVtZi51aTtidW5kbGUtdmVyc2lvbj0iMC4xLjAiLAogIG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmVtZi5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCIsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvQWN0aXZhdG9yLmphdmEKaW5kZXggNmZkNDFiMC4uMTU3YjA4OCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9BY3RpdmF0b3IuamF2YQpAQCAtMTYsNyArMTYsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvTWVzc2FnZXMuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9NZXNzYWdlcy5qYXZhCmluZGV4IDViZjQyNmQuLjA4N2FjMmMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9NZXNzYWdlcy5qYXZhCkBAIC0xMiw2ICsxMiwxMCBAQAogDQogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5OTFM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgQ29udHJpYnV0aW9uSXRlbUZvck1vRGlzY29NZW51X2Rpc2NvdmVyZXJzTWVudUxhYmVsOw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9pbnRlcm5hbC9jZWxsZWRpdG9ycy9jb21wb3NpdGUvQ29tcG9zZWRDZWxsRWRpdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvaW50ZXJuYWwvY2VsbGVkaXRvcnMvY29tcG9zaXRlL0NvbXBvc2VkQ2VsbEVkaXRvci5qYXZhCmluZGV4IDcxM2ExOTMuLjcxMTY3YWIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9pbnRlcm5hbC9jZWxsZWRpdG9ycy9jb21wb3NpdGUvQ29tcG9zZWRDZWxsRWRpdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL2ludGVybmFsL2NlbGxlZGl0b3JzL2NvbXBvc2l0ZS9Db21wb3NlZENlbGxFZGl0b3IuamF2YQpAQCAtOCw2ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBGYWJpZW4gR2lxdWVsIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpDQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NTM0NzYgLSBTdG9wIHVzaW5nIEVNRiBGYWNldCdzIGRlcHJlY2F0ZWQgQVBJcw0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkuaW50ZXJuYWwuY2VsbGVkaXRvcnMuY29tcG9zaXRlOw0KIA0KQEAgLTE3LDcgKzE4LDcgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5BYnN0cmFjdENlbGxFZGl0b3JDb21wb3NpdGU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLklDb21wb3NpdGVFZGl0b3JGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5JTGlzdGVuZXI7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLklXaWRnZXQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLklXaWRnZXQyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZmFjZS52aWV3ZXJzLkNlbGxFZGl0b3I7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC5TV1Q7DQogaW1wb3J0IG9yZy5lY2xpcHNlLnN3dC53aWRnZXRzLkNvbXBvc2l0ZTsNCkBAIC0zNiw3ICszNyw3IEBACiANCiAJQE92ZXJyaWRlDQogCXByb3RlY3RlZCB2b2lkIGRvU2V0VmFsdWUoZmluYWwgT2JqZWN0IHZhbHVlKSB7DQotCQkoKElXaWRnZXQ8T2JqZWN0PikgZ2V0Q29udHJvbCgpKS5zZXRWYWx1ZSh2YWx1ZSk7DQorCQkoKElXaWRnZXQyPE9iamVjdD4pIGdldENvbnRyb2woKSkuc2V0VmFsdWUodmFsdWUpOw0KIAl9DQogDQogCUBPdmVycmlkZQ0KQEAgLTQ2LDcgKzQ3LDcgQEAKIA0KIAlAT3ZlcnJpZGUNCiAJcHJvdGVjdGVkIE9iamVjdCBkb0dldFZhbHVlKCkgew0KLQkJcmV0dXJuICgoSVdpZGdldDxPYmplY3Q+KSBnZXRDb250cm9sKCkpLmdldFZhbHVlKCk7DQorCQlyZXR1cm4gKChJV2lkZ2V0MjxPYmplY3Q+KSBnZXRDb250cm9sKCkpLmdldFZhbHVlKCk7DQogCX0NCiANCiAJQE92ZXJyaWRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL2ludGVybmFsL2RpYWxvZ3MvUGFyYW1ldGVyVmFsdWVFZGl0aW5nU3VwcG9ydC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL2ludGVybmFsL2RpYWxvZ3MvUGFyYW1ldGVyVmFsdWVFZGl0aW5nU3VwcG9ydC5qYXZhCmluZGV4IGEzZTg0YzAuLjgzMzdjZTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9pbnRlcm5hbC9kaWFsb2dzL1BhcmFtZXRlclZhbHVlRWRpdGluZ1N1cHBvcnQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvaW50ZXJuYWwvZGlhbG9ncy9QYXJhbWV0ZXJWYWx1ZUVkaXRpbmdTdXBwb3J0LmphdmEKQEAgLTgsMTEgKzgsMTIgQEAKICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAgKiAgICBOaWNvbGFzIEd1eW9tYXIgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzM5NTcxIC0gQ29tcGlsYXRpb24gZXJyb3JzIGR1ZSB0byBFTUYgRmFjZXQgQVBJIGNsZWFuaW5nDQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NTM0NzYgLSBTdG9wIHVzaW5nIEVNRiBGYWNldCdzIGRlcHJlY2F0ZWQgQVBJcw0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkuaW50ZXJuYWwuZGlhbG9nczsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LndpZGdldHMuY2VsbGVkaXRvcnMuSUNvbXBvc2l0ZUVkaXRvckZhY3Rvcnk7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLmNvcmUuY29tcG9zaXRlLnJlZ2lzdHJpZXMuSUNvbXBvc2l0ZUVkaXRvckZhY3Rvcmllc1JlZ2lzdHJ5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5jb3JlLmNvbXBvc2l0ZS5yZWdpc3RyeS5JQ29tcG9zaXRlRWRpdG9yRmFjdG9yaWVzUmVnaXN0cnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuQ2VsbEVkaXRvcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uudmlld2Vycy5Db2x1bW5WaWV3ZXI7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuRWRpdGluZ1N1cHBvcnQ7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL2ludGVybmFsL2xhdW5jaC9EaXNjb3ZlcmVyc01haW5UYWIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9pbnRlcm5hbC9sYXVuY2gvRGlzY292ZXJlcnNNYWluVGFiLmphdmEKaW5kZXggNzhmZjFmYS4uZGJlNTliNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL2ludGVybmFsL2xhdW5jaC9EaXNjb3ZlcmVyc01haW5UYWIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvaW50ZXJuYWwvbGF1bmNoL0Rpc2NvdmVyZXJzTWFpblRhYi5qYXZhCkBAIC0xMyw2ICsxMyw3IEBACiAgKiAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzQyODI0IC0gU1dURXhjZXB0aW9uIHdoZW4gY2xvc2luZyB0aGUgRGlzY292ZXJ5IGxhdW5jaCBjb25maWd1cmF0aW9uIGRpYWxvZw0KICAqICAgIE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzNDI4MzIgLSBbRGlzY292ZXJ5XSBWYWx1ZXMgbG9zdCB3aGVuIGNsaWNraW5nIGFueXdoZXJlIGluIHRoZSBsYXVuY2ggY29uZmlnIGRpYWxvZw0KICAqICAgIEZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzQ0MDgyIC0gW0phdmEgRGlzY292ZXJ5XSBJbGxlZ2FsQXJndW1lbnRFeGNlcHRpb24gaW4gbGF1bmNoIGNvbmZpZ3VyYXRpb25zDQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NTM0NzYgLSBTdG9wIHVzaW5nIEVNRiBGYWNldCdzIGRlcHJlY2F0ZWQgQVBJcw0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkuaW50ZXJuYWwubGF1bmNoOw0KIA0KQEAgLTI1LDcgKzI2LDcgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5BYnN0cmFjdENlbGxFZGl0b3JDb21wb3NpdGU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLklDb21wb3NpdGVFZGl0b3JGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5JTGlzdGVuZXI7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLmNvcmUuY29tcG9zaXRlLnJlZ2lzdHJpZXMuSUNvbXBvc2l0ZUVkaXRvckZhY3Rvcmllc1JlZ2lzdHJ5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5jb3JlLmNvbXBvc2l0ZS5yZWdpc3RyeS5JQ29tcG9zaXRlRWRpdG9yRmFjdG9yaWVzUmVnaXN0cnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmxvZ2dpbmcuTW9EaXNjb0xvZ2dlcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY2F0YWxvZy5EaXNjb3ZlcmVyRGVzY3JpcHRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNhdGFsb2cuRGlzY292ZXJlclBhcmFtZXRlcjsNCkBAIC0xNDcsOSArMTQ4LDkgQEAKIAkJCXBsYWNlaG9sZGVyLnNldEVuYWJsZWQoZmFsc2UpOw0KIAkJCXBsYWNlaG9sZGVyLnNldExheW91dERhdGEobmV3IEdyaWREYXRhKEdyaWREYXRhLkZJTEwsIEdyaWREYXRhLkZJTEwsIHRydWUsIGZhbHNlKSk7DQogCQl9IGVsc2Ugew0KLQkJCUlDb21wb3NpdGVFZGl0b3JGYWN0b3J5PE9iamVjdD4gY29tcG9zaXRlRWRpdG9yRmFjdG9yeSA9IChJQ29tcG9zaXRlRWRpdG9yRmFjdG9yeTxPYmplY3Q+KSBJQ29tcG9zaXRlRWRpdG9yRmFjdG9yaWVzUmVnaXN0cnkuSU5TVEFOQ0UNCi0JCQkJCS5nZXRDb21wb3NpdGVFZGl0b3JGYWN0b3J5KGRpc2NvdmVyZXIuZ2V0U291cmNlVHlwZSgpKTsNCi0NCisJCQlmaW5hbCBDbGFzczw/PiBzb3VyY2VUeXBlID0gZGlzY292ZXJlci5nZXRTb3VyY2VUeXBlKCk7DQorCQkJZmluYWwgSUNvbXBvc2l0ZUVkaXRvckZhY3Rvcnk8T2JqZWN0PiBjb21wb3NpdGVFZGl0b3JGYWN0b3J5ID0gKElDb21wb3NpdGVFZGl0b3JGYWN0b3J5PE9iamVjdD4pIElDb21wb3NpdGVFZGl0b3JGYWN0b3JpZXNSZWdpc3RyeS5JTlNUQU5DRQ0KKwkJCQkJLmdldENvbXBvc2l0ZUVkaXRvckZhY3Rvcnkoc291cmNlVHlwZSk7DQogCQkJaWYgKGNvbXBvc2l0ZUVkaXRvckZhY3RvcnkgIT0gbnVsbCkgew0KIAkJCQl0aGlzLnNvdXJjZUNlbGxFZGl0b3JDb21wb3NpdGUgPSBjb21wb3NpdGVFZGl0b3JGYWN0b3J5LmNyZWF0ZUNvbXBvc2l0ZUVkaXRvcigNCiAJCQkJCQl0aGlzLnNvdXJjZUdyb3VwLCBTV1QuQk9SREVSKTsNCkBAIC0xNjYsOCArMTY3LDcgQEAKIAkJCQlwbGFjZWhvbGRlci5zZXRFbmFibGVkKGZhbHNlKTsNCiANCiAJCQkJcGxhY2Vob2xkZXIuc2V0VGV4dChOTFMuYmluZCgNCi0JCQkJCQlNZXNzYWdlcy5EaXNjb3ZlcmVyc01haW5UYWJfbm9DZWxsRWRpdG9yUmVnaXN0ZXJlZEZvclR5cGUsIGRpc2NvdmVyZXINCi0JCQkJCQkJCS5nZXRTb3VyY2VUeXBlKCkuZ2V0TmFtZSgpKSk7DQorCQkJCQkJTWVzc2FnZXMuRGlzY292ZXJlcnNNYWluVGFiX25vQ2VsbEVkaXRvclJlZ2lzdGVyZWRGb3JUeXBlLCBzb3VyY2VUeXBlLmdldE5hbWUoKSkpOw0KIAkJCQlwbGFjZWhvbGRlci5zZXRGb3JlZ3JvdW5kKERpc3BsYXkuZ2V0RGVmYXVsdCgpLmdldFN5c3RlbUNvbG9yKFNXVC5DT0xPUl9EQVJLX1JFRCkpOw0KIAkJCX0NCiAJCX0NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvaW50ZXJuYWwvbGF1bmNoL3BhcmFtZXRlcnNkaXNwbGF5L1BhcmFtZXRlcnNUYWJsZUVkaXRpbmdTdXBwb3J0LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS51aS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdWkvaW50ZXJuYWwvbGF1bmNoL3BhcmFtZXRlcnNkaXNwbGF5L1BhcmFtZXRlcnNUYWJsZUVkaXRpbmdTdXBwb3J0LmphdmEKaW5kZXggZTIyMjk0ZC4uNDZkOGYwZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3VpL2ludGVybmFsL2xhdW5jaC9wYXJhbWV0ZXJzZGlzcGxheS9QYXJhbWV0ZXJzVGFibGVFZGl0aW5nU3VwcG9ydC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LnVpL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS91aS9pbnRlcm5hbC9sYXVuY2gvcGFyYW1ldGVyc2Rpc3BsYXkvUGFyYW1ldGVyc1RhYmxlRWRpdGluZ1N1cHBvcnQuamF2YQpAQCAtOSw2ICs5LDcgQEAKICAqICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICAqICAgIEZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkNCiAgKiAgICBOaWNvbGFzIEd1eW9tYXIgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzM5NTcxIC0gQ29tcGlsYXRpb24gZXJyb3JzIGR1ZSB0byBFTUYgRmFjZXQgQVBJIGNsZWFuaW5nDQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NTM0NzYgLSBTdG9wIHVzaW5nIEVNRiBGYWNldCdzIGRlcHJlY2F0ZWQgQVBJcw0KICAqLw0KIA0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudWkuaW50ZXJuYWwubGF1bmNoLnBhcmFtZXRlcnNkaXNwbGF5Ow0KQEAgLTE3LDcgKzE4LDcgQEAKIGltcG9ydCBqYXZhLnV0aWwuTGlzdDsNCiANCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LndpZGdldHMuY2VsbGVkaXRvcnMuSUNvbXBvc2l0ZUVkaXRvckZhY3Rvcnk7DQotaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzLmNvcmUuY29tcG9zaXRlLnJlZ2lzdHJpZXMuSUNvbXBvc2l0ZUVkaXRvckZhY3Rvcmllc1JlZ2lzdHJ5Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cy5jZWxsZWRpdG9ycy5jb3JlLmNvbXBvc2l0ZS5yZWdpc3RyeS5JQ29tcG9zaXRlRWRpdG9yRmFjdG9yaWVzUmVnaXN0cnk7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmpmYWNlLnZpZXdlcnMuQ2VsbEVkaXRvcjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uudmlld2Vycy5FZGl0aW5nU3VwcG9ydDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuamZhY2Uudmlld2Vycy5UYWJsZVZpZXdlcjsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGRiZGU4YmUuLmFlNTMwN2QgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUNsYXNzUGF0aDogLgogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCkBAIC0xNCw2ICsxNCw1IEBACiAgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNhdGFsb2c7YnVuZGxlLXZlcnNpb249IjAuMS4wIiwKICBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcztidW5kbGUtdmVyc2lvbj0iMy42LjAiLAogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIsCi0gb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmluZnJhLmNvbW1vbi5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCIsCiAgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuZW1mLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuMS4wIgogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5yZXNvdXJjZXMucHJlZnMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4MjRiODAKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCkBAIC0wLDAgKzEsMiBAQAorZWNsaXBzZS5wcmVmZXJlbmNlcy52ZXJzaW9uPTENCitlbmNvZGluZy88cHJvamVjdD49VVRGLTgNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZWYwOTU2YS4uY2EzYzk2MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cwotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS50ZXN0cy5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCiAgb3JnLmVjbGlwc2UuamZhY2U7YnVuZGxlLXZlcnNpb249IjMuNi4wIiwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggYWQyYjAxYi4uZDM2MWNkZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKQEAgLTEwLDQgKzEwLDQgQEAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQotQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIGRpc2NvdmVyeSBtYW5hZ2VyIHRlc3RzIChJbmN1YmF0aW9uKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK0J1bmRsZS1OYW1lID0gTW9EaXNjbyBkaXNjb3ZlcnkgbWFuYWdlciB0ZXN0cyAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS90ZXN0cy9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdGVzdHMvQWN0aXZhdG9yLmphdmEKaW5kZXggMmMwZDA3NS4uZTZmOWRkMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS90ZXN0cy9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3Rlc3RzL0FjdGl2YXRvci5qYXZhCkBAIC0xMyw2ICsxMywxMCBAQAogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVBY3RpdmF0b3I7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzQzODQwDQorICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGltcGxlbWVudHMgQnVuZGxlQWN0aXZhdG9yIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgQnVuZGxlQ29udGV4dCBjb250ZXh0Ow0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCmluZGV4IDY1MjEzZjAuLjA0ZGVhMjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQpAQCAtMTQsNiArMTQsMTAgQEAKIGltcG9ydCBvcmcuanVuaXQucnVubmVycy5TdWl0ZTsNCiBpbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMuU3VpdGUuU3VpdGVDbGFzc2VzOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9MzQzODQwDQorICovDQorQERlcHJlY2F0ZWQNCiBAUnVuV2l0aChTdWl0ZS5jbGFzcykNCiBAU3VpdGVDbGFzc2VzKHsgQm9vbGVhbkNlbGxFZGl0b3JUZXN0LmNsYXNzIH0pDQogcHVibGljIGNsYXNzIEFsbFRlc3RzSW5VSVRocmVhZCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS90ZXN0cy9Cb29sZWFuQ2VsbEVkaXRvclRlc3QuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdGVzdHMvQm9vbGVhbkNlbGxFZGl0b3JUZXN0LmphdmEKaW5kZXggZGZlZTY2NS4uMWY3MjRjZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS90ZXN0cy9Cb29sZWFuQ2VsbEVkaXRvclRlc3QuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3Rlc3RzL0Jvb2xlYW5DZWxsRWRpdG9yVGVzdC5qYXZhCkBAIC03LDYgKzcsNyBAQAogICoNCiAgKiBDb250cmlidXRvcnM6DQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ2ODM0MyAtIFtVbml0IFRlc3QgRmFpbHVyZV0gb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudGVzdHMuQm9vbGVhbkNlbGxFZGl0b3JUZXN0LnRlc3RCb29sZWFuQ2VsbEVkaXRvcg0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkudGVzdHM7DQogDQpAQCAtMTQsMTIgKzE1LDE4IEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuRGlzcGxheTsNCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0Ym90LmVjbGlwc2UuZmluZGVyLlNXVFdvcmtiZW5jaEJvdDsNCitpbXBvcnQgb3JnLmp1bml0Lklnbm9yZTsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zNDM4NDANCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCb29sZWFuQ2VsbEVkaXRvclRlc3Qgew0KIA0KIAlwcml2YXRlIHN0YXRpYyBTV1RXb3JrYmVuY2hCb3QgYm90ID0gbmV3IFNXVFdvcmtiZW5jaEJvdCgpOw0KIA0KKwlASWdub3JlIC8vRmFpbGluZyB0ZXN0IGFuZCB0byBjb21wbGV4IHRvIGZpeCBxdWlja2x5Lg0KIAlAVGVzdA0KIAlwdWJsaWMgdm9pZCB0ZXN0Qm9vbGVhbkNlbGxFZGl0b3IoKSB7DQogCQlTV1RXb3JrYmVuY2hCb3QgYm90ID0gQm9vbGVhbkNlbGxFZGl0b3JUZXN0LmJvdDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3Rlc3RzL0Jvb2xlYW5DZWxsRWRpdG9yVGVzdERpYWxvZy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2Rpc2NvdmVyeS90ZXN0cy9Cb29sZWFuQ2VsbEVkaXRvclRlc3REaWFsb2cuamF2YQppbmRleCAxZjk0NTQxLi4yYzc3OWFhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeW1hbmFnZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZGlzY292ZXJ5L3Rlc3RzL0Jvb2xlYW5DZWxsRWRpdG9yVGVzdERpYWxvZy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9kaXNjb3ZlcnkvdGVzdHMvQm9vbGVhbkNlbGxFZGl0b3JUZXN0RGlhbG9nLmphdmEKQEAgLTMwLDYgKzMwLDEwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuQ29udHJvbDsNCiBpbXBvcnQgb3JnLmVjbGlwc2Uuc3d0LndpZGdldHMuU2hlbGw7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD0zNDM4NDANCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCb29sZWFuQ2VsbEVkaXRvclRlc3REaWFsb2cgZXh0ZW5kcyBEaWFsb2cgew0KIA0KIAlwcm90ZWN0ZWQgQm9vbGVhbkNlbGxFZGl0b3JUZXN0RGlhbG9nKGZpbmFsIFNoZWxsIHBhcmVudFNoZWxsKSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kb2MudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRvYy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA3N2U1NjA4Li40NDUwNzk3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRvYy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRvYy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZG9jLnRlc3RzCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZG9jLnRlc3RzLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2Njg3NzI2Li5kNGQ3NGE2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZmFjZXQudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVwbHVnaW5OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cztzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCkBAIC0xOSw3ICsxOSw5IEBACiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZTtidW5kbGUtdmVyc2lvbj0iMC44LjAiLA0KICBvcmcuanVuaXQ7YnVuZGxlLXZlcnNpb249IjQuNy4wIiwNCiAgb3JnLmVjbGlwc2UudWkuaWRlO2J1bmRsZS12ZXJzaW9uPSIzLjYuMCIsDQotIG9yZy5lY2xpcHNlLmpmYWNlO2J1bmRsZS12ZXJzaW9uPSIzLjYuMCINCisgb3JnLmVjbGlwc2UuamZhY2U7YnVuZGxlLXZlcnNpb249IjMuNi4wIiwNCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwucGRlLmNvcmU7YnVuZGxlLXZlcnNpb249IjEuMC4wIiwNCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuY29yZTtidW5kbGUtdmVyc2lvbj0iMS4wLjAiDQogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkNCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzLkFjdGl2YXRvcg0KIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9mYWNldC90ZXN0cy9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZmFjZXQudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvZmFjZXQvdGVzdHMvQWN0aXZhdG9yLmphdmEKaW5kZXggNDc2ZjU1MC4uNjc1ZTJiZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9mYWNldC90ZXN0cy9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2ZhY2V0L3Rlc3RzL0FjdGl2YXRvci5qYXZhCkBAIC0xNiw3ICsxNiw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9mYWNldC90ZXN0cy9GYWNldFRlc3RzLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2ZhY2V0L3Rlc3RzL0ZhY2V0VGVzdHMuamF2YQppbmRleCAyMDUxZjdkLi4xODFhYTA0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2ZhY2V0L3Rlc3RzL0ZhY2V0VGVzdHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmZhY2V0LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2ZhY2V0L3Rlc3RzL0ZhY2V0VGVzdHMuamF2YQpAQCAtMSw1ICsxLDUgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDA5LTIwMTAgTWlhLVNvZnR3YXJlLg0KKyAqIENvcHlyaWdodCAoYykgMjAwOSwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQpAQCAtOCw2ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpDQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3MDU3OCAtIFtEZXBlcmNhdGVkXSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeQ0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5mYWNldC50ZXN0czsNCiANCkBAIC00NCw2ICs0NSw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsLlJlc291cmNlU2V0SW1wbDsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwucGRlLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQuVGFyZ2V0UGxhdGZvcm1VdGlsczsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwucGRlLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQuZXhjZXB0aW9uLlBkZUNvcmVVdGlsc0V4Y2VwdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUuaW50ZXJuYWwuYnVpbGRlci5BYnN0cmFjdE1vRGlzY29DYXRhbG9nOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS5pbnRlcm5hbC5idWlsZGVyLkVjb3JlQ2F0YWxvZzsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUuaW50ZXJuYWwucmVzb3VyY2UuTW9EaXNjb1Jlc291cmNlU2V0Ow0KQEAgLTY0LDYgKzY3LDggQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlLk1vZGVsUXVlcnlTZXRDYXRhbG9nOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzLlV0aWxzOw0KIGltcG9ydCBvcmcuanVuaXQuQXNzZXJ0Ow0KK2ltcG9ydCBvcmcuanVuaXQuQmVmb3JlQ2xhc3M7DQoraW1wb3J0IG9yZy5qdW5pdC5JZ25vcmU7DQogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlOw0KIA0KQEAgLTczLDYgKzc4LDcgQEAKICAqLw0KIEBTdXBwcmVzc1dhcm5pbmdzKHsgIm5scyIgfSkNCiBwdWJsaWMgY2xhc3MgRmFjZXRUZXN0cyB7DQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQl9NQVJLRVJfR0VUU1VCQ0xBU1NFUyA9IDY7DQogCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIEZJTEVfRVhUID0gIi5mYWNldFNldCI7DQogCXB1YmxpYyBzdGF0aWMgZmluYWwgU3RyaW5nIFFVRVJZX0VYVCA9ICIucXVlcnlTZXQiOw0KIA0KQEAgLTgwLDYgKzg2LDExIEBACiAJcHJpdmF0ZSBmaW5hbCBFUGFja2FnZSBlY29yZVBhY2thZ2UgPSB0aGlzLnV0aWxzLmdldEVjb3JlUGFja2FnZSgpOw0KIAlwcml2YXRlIGZpbmFsIFJlc291cmNlU2V0IHJlc291cmNlU2V0ID0gbmV3IFJlc291cmNlU2V0SW1wbCgpOw0KIA0KKwlAQmVmb3JlQ2xhc3MNCisJcHVibGljIHN0YXRpYyB2b2lkIGxvYWRUYXJnZXQoKSB0aHJvd3MgUGRlQ29yZVV0aWxzRXhjZXB0aW9uIHsNCisJCVRhcmdldFBsYXRmb3JtVXRpbHMubG9hZFRhcmdldFBsYXRmb3JtKCk7DQorCX0NCisJDQogCS8qKg0KIAkgKiBAcmV0dXJuIHRoZSB1dGlscw0KIAkgKi8NCkBAIC0xMDIsNyArMTEzLDcgQEAKIAkJCQkiL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL2ZhY2V0L3Rlc3RzL3NhbXBsZXMvR2V0U3ViQ2xhc3Nlcy5qYXZhIiwNCiAJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKS5nZXRCdW5kbGUoKSk7DQogCQlQcm9qZWN0VXRpbHMucmVmcmVzaChwcm9qZWN0VG9DcmVhdGUpOw0KLQkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihqYXZhRmlsZSk7DQorCQlGaWxlVXRpbHMuY2hlY2tOb01vcmVNYXJrZXJPbihqYXZhRmlsZSwgTkJfTUFSS0VSX0dFVFNVQkNMQVNTRVMpOw0KIAkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihxdWVyeUZpbGUpOw0KIAkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihmYWNldEZpbGUpOw0KIAkJRmFjZXRTZXQgZmFjZXRTZXQgPSBGYWNldFNldENhdGFsb2cuZ2V0U2luZ2xldG9uKCkuZ2V0RmFjZXRTZXQobmFtZSk7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5vbWcuZG9jL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5vbWcuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGViMDM4NjcuLjliZjliMzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEub21nLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLm9tZy5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEub21nLmRvYztzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLA0KICBvcmcuZWNsaXBzZS5oZWxwDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5vbWcuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEub21nLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggYTc2MmE4YS4uOWM3N2JkZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5vbWcuZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLm9tZy5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0xMiw3ICsxMiw3IEBACiA8ZmVhdHVyZQ0KICAgICAgIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLm9tZy5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIE9NRyBtZXRhLW1vZGVscyBpbXBsZW1lbnRhdGlvbnMgYW5kIHRvb2xzIChJbmN1YmF0aW9uKSINCi0gICAgICB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIg0KKyAgICAgIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiDQogICAgICAgcHJvdmlkZXItbmFtZT0iJXByb3ZpZGVyTmFtZSINCiAgICAgICBsaWNlbnNlLWZlYXR1cmU9Im9yZy5lY2xpcHNlLmxpY2Vuc2UiDQogICAgICAgbGljZW5zZS1mZWF0dXJlLXZlcnNpb249IjAuMC4wIj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA1ZjQzNTc2Li4zOGRlYWI0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEucXVlcnkudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24udWk7YnVuZGxlLXZlcnNpb249IjAuNi4wIiwKQEAgLTExLDcgKzExLDkgQEAKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZTtidW5kbGUtdmVyc2lvbj0iMC43LjAiLAogIG9yZy5lY2xpcHNlLnVpLmlkZTtidW5kbGUtdmVyc2lvbj0iMy41LjAiLAogIG9yZy5qdW5pdDtidW5kbGUtdmVyc2lvbj0iNC43LjAiLAotIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZTtidW5kbGUtdmVyc2lvbj0iMy41LjAiCisgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lO2J1bmRsZS12ZXJzaW9uPSIzLjUuMCIsCisgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwucGRlLmNvcmU7YnVuZGxlLXZlcnNpb249IjEuMC4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlO2J1bmRsZS12ZXJzaW9uPSIxLjAuMCIKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEucXVlcnkudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvcXVlcnkvdGVzdHMvQWN0aXZhdG9yLmphdmEKaW5kZXggODkzZmRiZC4uMGJkYjdjZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3Rlc3RzL0FjdGl2YXRvci5qYXZhCkBAIC0xNiw3ICsxNiw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9Vbml0VGVzdHMuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEucXVlcnkudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vaW5mcmEvcXVlcnkvdGVzdHMvVW5pdFRlc3RzLmphdmEKaW5kZXggMDBkMmViNi4uNjVmNGYxYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9Vbml0VGVzdHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2luZnJhL3F1ZXJ5L3Rlc3RzL1VuaXRUZXN0cy5qYXZhCkBAIC0xLDUgKzEsNSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQpAQCAtOCw2ICs4LDcgQEAKICAqIENvbnRyaWJ1dG9yczoNCiAgKiAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpDQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3MDU3OCAtIFtEZXBlcmNhdGVkXSBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeQ0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5xdWVyeS50ZXN0czsNCiANCkBAIC0zNyw2ICszOCw5IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmVjb3JlLnJlc291cmNlLlJlc291cmNlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZWNvcmUucmVzb3VyY2UuUmVzb3VyY2VTZXQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5lY29yZS5yZXNvdXJjZS5pbXBsLlJlc291cmNlU2V0SW1wbDsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnV0aWwuY29yZS5EZWJ1Z1V0aWxzOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5wZGUuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5UYXJnZXRQbGF0Zm9ybVV0aWxzOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5wZGUuY29yZS5pbnRlcm5hbC5leHBvcnRlZC5leGNlcHRpb24uUGRlQ29yZVV0aWxzRXhjZXB0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZS5pbnRlcm5hbC5idWlsZGVyLkFic3RyYWN0TW9EaXNjb0NhdGFsb2c7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlLmludGVybmFsLnV0aWxzLkZpbGVVdGlsczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUuaW50ZXJuYWwudXRpbHMuUHJvamVjdFV0aWxzOw0KQEAgLTU1LDYgKzU5LDggQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5ydW50aW1lLlJ1bnRpbWVGYWN0b3J5Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLnF1ZXJ5LnRlc3RzLnNhbXBsZXMuQnVnMzAzMDM2VGVzdDAwM1F1ZXJ5Ow0KIGltcG9ydCBvcmcuanVuaXQuQXNzZXJ0Ow0KK2ltcG9ydCBvcmcuanVuaXQuQmVmb3JlQ2xhc3M7DQoraW1wb3J0IG9yZy5qdW5pdC5JZ25vcmU7DQogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIA0KIEBTdXBwcmVzc1dhcm5pbmdzKCJubHMiKQ0KQEAgLTYyLDExICs2OCwxOCBAQAogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBGSUxFX0VYVCA9ICIucXVlcnlTZXQiOyAvLyROT04tTkxTLTEkDQogDQorCXByaXZhdGUgc3RhdGljIGZpbmFsIGludCBOQl9NQVJLRVJTX1FfRklMRSA9IDY7DQorDQogCXByaXZhdGUgZmluYWwgUmVzb3VyY2VTZXQgcmVzb3VyY2VTZXQgPSBuZXcgUmVzb3VyY2VTZXRJbXBsKCk7DQogDQogCXByaXZhdGUgZmluYWwgVXRpbHMgdXRpbHMgPSBuZXcgVXRpbHMoQWN0aXZhdG9yLmdldERlZmF1bHQoKSk7DQogCXByaXZhdGUgZmluYWwgRVBhY2thZ2UgZWNvcmVQYWNrYWdlID0gdGhpcy51dGlscy5nZXRFY29yZVBhY2thZ2UoKTsNCiANCisJQEJlZm9yZUNsYXNzDQorCXB1YmxpYyBzdGF0aWMgdm9pZCBsb2FkVGFyZ2V0KCkgdGhyb3dzIFBkZUNvcmVVdGlsc0V4Y2VwdGlvbiB7DQorCQlUYXJnZXRQbGF0Zm9ybVV0aWxzLmxvYWRUYXJnZXRQbGF0Zm9ybSgpOw0KKwl9DQorCQ0KIAlAVGVzdA0KIAlwdWJsaWMgdm9pZCB0ZXN0MDAxKCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQogCQlmaW5hbCBTdHJpbmcgbmFtZSA9ICJ0ZXN0MDAxIjsgLy8kTk9OLU5MUy0xJA0KQEAgLTgwLDcgKzkzLDcgQEAKIAkJCQlBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpLmdldEJ1bmRsZSgpKTsNCiAJCVByb2plY3RVdGlscy5yZWZyZXNoKHByb2plY3RUb0NyZWF0ZSk7DQogCQlNb2RlbFF1ZXJ5U2V0Q2F0YWxvZy5nZXRTaW5nbGV0b24oKS53YWl0VW50aWxCdWlsdCgpOw0KLQkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihqYXZhRmlsZSk7DQorCQlGaWxlVXRpbHMuY2hlY2tOb01vcmVNYXJrZXJPbihqYXZhRmlsZSwgTkJfTUFSS0VSU19RX0ZJTEUpOw0KIAkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihmaWxlKTsNCiAJCUxpc3Q8TW9kZWxRdWVyeVJlc3VsdD4gcmVzdWx0ID0gZXhlY3V0ZUphdmFRdWVyeShuYW1lKTsNCiAJCUFzc2VydC5hc3NlcnRUcnVlKCgoU3RyaW5nKSByZXN1bHQuZ2V0KDApLmdldFZhbHVlKCkpID09ICJUZXN0MDAxIik7IC8vJE5PTi1OTFMtMSQNCkBAIC05MSw3ICsxMDQsNyBAQAogCQkJCQkJcHJvamVjdFRvQ3JlYXRlLA0KIAkJCQkJCSJzcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9zYW1wbGVzL1Rlc3QwMDIuamF2YSIsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkpOyAvLyROT04tTkxTLTEkDQogCQlQcm9qZWN0VXRpbHMucmVmcmVzaChwcm9qZWN0VG9DcmVhdGUpOw0KLQkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihqYXZhRmlsZSk7DQorCQlGaWxlVXRpbHMuY2hlY2tOb01vcmVNYXJrZXJPbihqYXZhRmlsZSwgTkJfTUFSS0VSU19RX0ZJTEUpOw0KIAkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihmaWxlKTsNCiAJCUxpc3Q8TW9kZWxRdWVyeVJlc3VsdD4gcmVzdWx0MiA9IGV4ZWN1dGVKYXZhUXVlcnkobmFtZSk7DQogCQlBc3NlcnQuYXNzZXJ0VHJ1ZSgoKFN0cmluZykgcmVzdWx0Mi5nZXQoMCkuZ2V0VmFsdWUoKSkgPT0gIlRlc3QwMDIiKTsgLy8kTk9OLU5MUy0xJA0KQEAgLTEwMSw3ICsxMTQsNyBAQAogCQkJCQkJcHJvamVjdFRvQ3JlYXRlLA0KIAkJCQkJCSJzcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9pbmZyYS9xdWVyeS90ZXN0cy9zYW1wbGVzL1Rlc3QwMDIuamF2YSIsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkpOyAvLyROT04tTkxTLTEkDQogCQlQcm9qZWN0VXRpbHMucmVmcmVzaChwcm9qZWN0VG9DcmVhdGUpOw0KLQkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihqYXZhRmlsZSk7DQorCQlGaWxlVXRpbHMuY2hlY2tOb01vcmVNYXJrZXJPbihqYXZhRmlsZSwgTkJfTUFSS0VSU19RX0ZJTEUpOw0KIAkJRmlsZVV0aWxzLmNoZWNrTm9NYXJrZXJPbihmaWxlKTsNCiAJCUxpc3Q8TW9kZWxRdWVyeVJlc3VsdD4gcmVzdWx0MyA9IGV4ZWN1dGVKYXZhUXVlcnkobmFtZSk7DQogCQlBc3NlcnQuYXNzZXJ0VHJ1ZSgoKFN0cmluZykgcmVzdWx0My5nZXQoMCkuZ2V0VmFsdWUoKSkgPT0gIlRlc3QwMDJiaXMiKTsgLy8kTk9OLU5MUy0xJA0KQEAgLTExOSw3ICsxMzIsNyBAQAogCQkJCUFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkpOw0KIAkJUHJvamVjdFV0aWxzLnJlZnJlc2gocHJvamVjdFRvQ3JlYXRlKTsNCiAJCU1vZGVsUXVlcnlTZXRDYXRhbG9nLmdldFNpbmdsZXRvbigpLndhaXRVbnRpbEJ1aWx0KCk7DQotCQlGaWxlVXRpbHMuY2hlY2tOb01hcmtlck9uKGphdmFGaWxlKTsNCisJCUZpbGVVdGlscy5jaGVja05vTW9yZU1hcmtlck9uKGphdmFGaWxlLCBOQl9NQVJLRVJTX1FfRklMRSk7DQogCQlGaWxlVXRpbHMuY2hlY2tOb01hcmtlck9uKGZpbGUpOw0KIAkJTW9kZWxRdWVyeVNldENhdGFsb2cgY2F0YWxvZyA9IE1vZGVsUXVlcnlTZXRDYXRhbG9nLmdldFNpbmdsZXRvbigpOw0KIAkJTW9kZWxRdWVyeVNldCBtcXMgPSBjYXRhbG9nLmdldE1vZGVsUXVlcnlTZXQobmFtZSk7DQpAQCAtMjI4LDcgKzI0MSw3IEBACiAJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKS5nZXRCdW5kbGUoKSk7DQogCQlQcm9qZWN0VXRpbHMucmVmcmVzaChwcm9qZWN0VG9DcmVhdGUpOw0KIAkJTW9kZWxRdWVyeVNldENhdGFsb2cuZ2V0U2luZ2xldG9uKCkud2FpdFVudGlsQnVpbHQoKTsNCi0JCUZpbGVVdGlscy5jaGVja05vTWFya2VyT24oamF2YUZpbGUpOw0KKwkJRmlsZVV0aWxzLmNoZWNrTm9Nb3JlTWFya2VyT24oamF2YUZpbGUsIE5CX01BUktFUlNfUV9GSUxFKTsNCiAJCUZpbGVVdGlscy5jaGVja05vTWFya2VyT24oZmlsZSk7DQogCQlBYnN0cmFjdE1vZGVsUXVlcnkgbW9kZWxRdWVyeUluc3QgPSBudWxsOw0KIAkJQXNzZXJ0LmFzc2VydFRydWUoIlF1ZXJ5IGNhdGFsb2cgbXVzdCBub3QgYmUgZW1wdHkuIiwgLy8kTk9OLU5MUy0xJA0KQEAgLTI1MSw3ICsyNjQsNyBAQAogCQkJCUFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkpOw0KIAkJUHJvamVjdFV0aWxzLnJlZnJlc2gocHJvamVjdFRvQ3JlYXRlKTsNCiAJCU1vZGVsUXVlcnlTZXRDYXRhbG9nLmdldFNpbmdsZXRvbigpLndhaXRVbnRpbEJ1aWx0KCk7DQotCQlGaWxlVXRpbHMuY2hlY2tOb01hcmtlck9uKGphdmFGaWxlKTsNCisJCUZpbGVVdGlscy5jaGVja05vTW9yZU1hcmtlck9uKGphdmFGaWxlLCBOQl9NQVJLRVJTX1FfRklMRSk7DQogCQlMaXN0PE1vZGVsUXVlcnlSZXN1bHQ+IHJlc3VsdDMgPSBleGVjdXRlSmF2YVF1ZXJ5KG5hbWUpOw0KIAkJQXNzZXJ0LmFzc2VydFRydWUoKChTdHJpbmcpIHJlc3VsdDMuZ2V0KDApLmdldFZhbHVlKCkpID09ICJUZXN0MDAyYmlzIik7IC8vJE5PTi1OTFMtMSQNCiAJCU1vZGVsUXVlcnlDb250ZXh0IGNvbnRleHQyID0gUnVudGltZUZhY3RvcnkuZUlOU1RBTkNFLmNyZWF0ZU1vZGVsUXVlcnlDb250ZXh0KCk7DQpAQCAtMzM0LDcgKzM0Nyw3IEBACiAJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKS5nZXRCdW5kbGUoKSk7DQogCQlQcm9qZWN0VXRpbHMucmVmcmVzaChwcm9qZWN0VG9DcmVhdGUpOw0KIAkJTW9kZWxRdWVyeVNldENhdGFsb2cuZ2V0U2luZ2xldG9uKCkud2FpdFVudGlsQnVpbHQoKTsNCi0JCUZpbGVVdGlscy5jaGVja05vTWFya2VyT24oamF2YUZpbGUpOw0KKwkJRmlsZVV0aWxzLmNoZWNrTm9Nb3JlTWFya2VyT24oamF2YUZpbGUsIE5CX01BUktFUlNfUV9GSUxFKTsNCiAJCUZpbGVVdGlscy5jaGVja05vTWFya2VyT24oZmlsZSk7DQogCQlNb2RlbFF1ZXJ5U2V0Q2F0YWxvZyBjYXRhbG9nID0gTW9kZWxRdWVyeVNldENhdGFsb2cuZ2V0U2luZ2xldG9uKCk7DQogCQlNb2RlbFF1ZXJ5U2V0IG1vZGVsUXVlcnlTZXQgPSBjYXRhbG9nLmdldE1vZGVsUXVlcnlTZXQobmFtZSk7DQpAQCAtNTM5LDcgKzU1Miw3IEBACiAJCQkJQWN0aXZhdG9yLmdldERlZmF1bHQoKS5nZXRCdW5kbGUoKSk7DQogCQlQcm9qZWN0VXRpbHMucmVmcmVzaChwcm9qZWN0VG9DcmVhdGUpOw0KIAkJTW9kZWxRdWVyeVNldENhdGFsb2cuZ2V0U2luZ2xldG9uKCkud2FpdFVudGlsQnVpbHQoKTsNCi0JCUZpbGVVdGlscy5jaGVja05vTWFya2VyT24oamF2YUZpbGUpOw0KKwkJRmlsZVV0aWxzLmNoZWNrTm9Nb3JlTWFya2VyT24oamF2YUZpbGUsIE5CX01BUktFUlNfUV9GSUxFKTsNCiAJCUZpbGVVdGlscy5jaGVja05vTWFya2VyT24oZmlsZSk7DQogCQlNb2RlbFF1ZXJ5U2V0IG1xcyA9IE1vZGVsUXVlcnlTZXRDYXRhbG9nLmdldFNpbmdsZXRvbigpLmdldE1vZGVsUXVlcnlTZXQobmFtZSk7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5kb2MuYXJjaGkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmRvYy5hcmNoaS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAwMDYyOTJmLi4xMDMyMTJjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmRvYy5hcmNoaS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmRvYy5hcmNoaS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5kb2MuYXJjaGk7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwNCiAgb3JnLmVjbGlwc2UuaGVscA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmFzdHJ1Y3R1cmUuZG9jL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNjA3YTQ0Mi4uYzA1M2YwZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmFzdHJ1Y3R1cmUuZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQogIG9yZy5lY2xpcHNlLmhlbHANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggNjIzNTc3Mi4uMDJmYjZiNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmFzdHJ1Y3R1cmUuZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMTIsNyArMTIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIEluZnJhc3RydWN0dXJlIChJbmN1YmF0aW9uKSINCi0gICAgICB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIg0KKyAgICAgIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiDQogICAgICAgcHJvdmlkZXItbmFtZT0iJXByb3ZpZGVyTmFtZSINCiAgICAgICBwbHVnaW49Im9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmluZnJhLmNvbW1vbi5jb3JlIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSINCkBAIC0zNSw2ICszNSwxMCBAQAogICAgICAgJWxpY2Vuc2UNCiAgICA8L2xpY2Vuc2U+DQogDQorICAgPGluY2x1ZGVzDQorICAgICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5mZWF0dXJlIg0KKyAgICAgICAgIHZlcnNpb249IjAuMC4wIi8+DQorDQogICAgPHBsdWdpbg0KICAgICAgICAgIGlkPSJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyIg0KICAgICAgICAgIGRvd25sb2FkLXNpemU9IjAiDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOWFiN2NiMS4uZmRkNWM0YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0LkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9icm93c2VyL2N1c3RvbWl6YXRpb24vdGVzdC9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9icm93c2VyL2N1c3RvbWl6YXRpb24vdGVzdC9BY3RpdmF0b3IuamF2YQppbmRleCA3YmM1MjIxLi5iNzAyZWJhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvYnJvd3Nlci9jdXN0b21pemF0aW9uL3Rlc3QvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi90ZXN0L0FjdGl2YXRvci5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIEFic3RyYWN0VUlQbHVnaW4gew0KIA0KIAkvLyBUaGUgcGx1Zy1pbiBJRA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5icm93c2VyLmN1c3RvbWl6YXRpb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9icm93c2VyL2N1c3RvbWl6YXRpb24vdGVzdC9UZXN0cy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi90ZXN0L1Rlc3RzLmphdmEKaW5kZXggM2E4YjhjZi4uYTMzZmY3NCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi90ZXN0L1Rlc3RzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmJyb3dzZXIuY3VzdG9taXphdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Jyb3dzZXIvY3VzdG9taXphdGlvbi90ZXN0L1Rlc3RzLmphdmEKQEAgLTMwLDYgKzMwLDcgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5mYWNldC5GYWNldFNldDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZmFjZXQuY29yZS5GYWNldFNldENhdGFsb2c7DQogaW1wb3J0IG9yZy5qdW5pdC5Bc3NlcnQ7DQoraW1wb3J0IG9yZy5qdW5pdC5JZ25vcmU7DQogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIA0KIHB1YmxpYyBjbGFzcyBUZXN0cyB7DQpAQCAtOTcsNiArOTgsNyBAQAogCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChmYWNldDI1KTsNCiAJfQ0KIA0KKwlASWdub3JlIC8vY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzAzNTANCiAJQFRlc3QNCiAJcHVibGljIHZvaWQgYnVnMzA4OTkxKCkgdGhyb3dzIENvcmVFeGNlcHRpb24sIElPRXhjZXB0aW9uLA0KIAkJCUludGVycnVwdGVkRXhjZXB0aW9uIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY2RvLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY2RvLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggYmE0MjVkZS4uMmI4MDA5YSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNkby5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jZG8uZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMTIsNyArMTIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNkby5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIENETyBKYXZhIERpc2NvdmVyZXIgZmVhdHVyZSAoSW5jdWJhdGlvbikiDQotICAgICAgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciINCisgICAgICB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIg0KICAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiDQogICAgICAgcGx1Z2luPSJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmNkbyINCiAgICAgICBsaWNlbnNlLWZlYXR1cmU9Im9yZy5lY2xpcHNlLmxpY2Vuc2UiDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5icm93c2VyLmN1c3RvbWl6YXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYWFmYjE1Ny4uODUzYTU4ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uYnJvd3Nlci5jdXN0b21pemF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmJyb3dzZXIuY3VzdG9taXphdGlvbjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmJyb3dzZXIuY3VzdG9taXphdGlvbi5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOTU3MjdiOC4uMTAwZmI2MCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIuYmVuY2htYXJrL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLmJlbmNobWFyay9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLmJlbmNobWFyaztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIuYmVuY2htYXJrLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlcjtidW5kbGUtdmVyc2lvbj0iMC4wLjkiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIuYmVuY2htYXJrL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9iZW5jaG1hcmsvQmVuY2htYXJrLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL2JlbmNobWFyay9CZW5jaG1hcmsuamF2YQppbmRleCBkZTQwMzQ4Li4yYTU5MjEwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL2JlbmNobWFyay9CZW5jaG1hcmsuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL2JlbmNobWFyay9CZW5jaG1hcmsuamF2YQpAQCAtMzYsNiArMzYsNyBAQAogDQogLyoqDQogICogVGhpcyBjbGFzcyBwcm92aWRlcyBhIHdheSB0byBtb25pdG9yIGEgSmF2YSBDb21wb3NpdGlvbiBEaXNjb3ZlcnkuDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MTgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBCZW5jaG1hcmsgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5iZW5jaG1hcmsvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL2JlbmNobWFyay9hY3Rpb25zL0Rpc2NvdmVySmF2YUFwcGxpY2F0aW9uTW9kZWwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2FjdGlvbnMvRGlzY292ZXJKYXZhQXBwbGljYXRpb25Nb2RlbC5qYXZhCmluZGV4IDliYjRlMWEuLmQ5ZjdjNWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2FjdGlvbnMvRGlzY292ZXJKYXZhQXBwbGljYXRpb25Nb2RlbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLmJlbmNobWFyay9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvYmVuY2htYXJrL2FjdGlvbnMvRGlzY292ZXJKYXZhQXBwbGljYXRpb25Nb2RlbC5qYXZhCkBAIC0zMCw3ICszMCw4IEBACiAgKiBUaGlzIGNsYXNzIGV4dGVuZHMgdGhlIERpc2NvdmVyS0RNU291cmNlQW5kSmF2YU1vZGVsIHRvIGluc3RydW1lbnQgaXQgd2l0aCBiZW5jaG1hcmsNCiAgKiBjYXBhYmlsaXRpZXMuIE1lbW9yeSB1c2VkIGR1cmluZyB0aGUgZGlzY292ZXJ5IGFuZCBzYXZpbmcgc3RlcHMgYXJlIHJlcG9ydGVkIGluIGFuIGh0bWwgZmlsZQ0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudA0KKyAqIEBkZXByZWNhdGVkIHVzZSBtYXRjaGluZyBvcmcuZWNsaXBzZS5tb2Rpc2NvLngueS56IGNvbXBvbmVudCwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDcxOA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVySmF2YUFwcGxpY2F0aW9uTW9kZWwgZXh0ZW5kcyBEaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbCB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAzMjg2NDhjLi5hZTQ5YjVjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy5KVW5pdFBsdWdpbgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS51aTtidW5kbGUtdmVyc2lvbj0iMy42LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQppbmRleCA4M2FkMTk4Li5iMTQ4ODk1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQpAQCAtMTUsNiArMTUsOSBAQAogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlOw0KIGltcG9ydCBvcmcuanVuaXQucnVubmVycy5TdWl0ZS5TdWl0ZUNsYXNzZXM7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MTgNCisgKi8NCiBAU3VwcHJlc3NXYXJuaW5ncygiZGVwcmVjYXRpb24iKQ0KIEBSdW5XaXRoKFN1aXRlLmNsYXNzKQ0KIEBEZXByZWNhdGVkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvQ29tcG9zaXRlRGlzY292ZXJ5VGVzdHMuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L0NvbXBvc2l0ZURpc2NvdmVyeVRlc3RzLmphdmEKaW5kZXggYjNhODk5MC4uNmRlNjJkOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvQ29tcG9zaXRlRGlzY292ZXJ5VGVzdHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9Db21wb3NpdGVEaXNjb3ZlcnlUZXN0cy5qYXZhCkBAIC0zNCw3ICszNCw3IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIEdCYXJiaWVyDQotICogDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MTgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBDb21wb3NpdGVEaXNjb3ZlcnlUZXN0cyB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvU3RyYXRlZ3lTb3VyY2VKYXZhVGVzdHMuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1N0cmF0ZWd5U291cmNlSmF2YVRlc3RzLmphdmEKaW5kZXggOTMwZWRmYy4uY2I2MTI0YyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvU3RyYXRlZ3lTb3VyY2VKYXZhVGVzdHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9TdHJhdGVneVNvdXJjZUphdmFUZXN0cy5qYXZhCkBAIC0zOCw3ICszOCw3IEBACiANCiAvKioNCiAgKiBAYXV0aG9yIEdCYXJiaWVyDQotICogDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MTgNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBTdHJhdGVneVNvdXJjZUphdmFUZXN0cyB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEphdmFBcHAuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RKYXZhQXBwLmphdmEKaW5kZXggZDVjZDc4OS4uNmRhOGY2OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEphdmFBcHAuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0SmF2YUFwcC5qYXZhCkBAIC01MCw2ICs1MCw5IEBACiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MTgNCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0SmF2YUFwcCB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE1lbW9yeVVzYWdlLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0TWVtb3J5VXNhZ2UuamF2YQppbmRleCA4MWI1MDgyLi5jNjlhMjY3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0TWVtb3J5VXNhZ2UuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0TWVtb3J5VXNhZ2UuamF2YQpAQCAtNDcsNiArNDcsOSBAQAogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NzE4DQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdE1lbW9yeVVzYWdlIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGVkZDllM2QuLmYyMTA0MGMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyLnVpLmludGVybmFsLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYTZhMGMyNi4uNzM5NzRiOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlcjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApAQCAtMTcsNyArMTcsOCBAQAogIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmNvcmU7YnVuZGxlLXZlcnNpb249IjAuOS4wIiwKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXI7YnVuZGxlLXZlcnNpb249IjAuOS4wIiwKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIsCi0gb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIKKyBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXI7YnVuZGxlLXZlcnNpb249IjAuOS4wIiwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlO2J1bmRsZS12ZXJzaW9uPSIxLjAuMCIKIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkKIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlcgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggNTNhYmY4Yi4uMjdlYzZkMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC04LDYgKzgsNiBAQAogIyBDb250cmlidXRvcnM6DQogIyAgICAgTmljb2xhcyBHdXlvbWFyIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw0KLWRpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIEphdmEgYW5kIEludmVudG9yeSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdC4uLg0KK2Rpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIEphdmEgYW5kIEludmVudG9yeSBtb2RlbCBmcm9tIEphdmEgcHJvamVjdC4uLiAoRGVwcmVjYXRlZCkNCiBCdW5kbGUtVmVuZG9yID0gRWNsaXBzZSBNb2RlbGluZyBQcm9qZWN0DQogQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEphdmEgQ29tcG9zaXRpb24gRGlzY292ZXJlciAoSW5jdWJhdGlvbikKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvQWN0aXZhdG9yLmphdmEKaW5kZXggZGExOTgzNS4uZTdiMWQzMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9BY3RpdmF0b3IuamF2YQpAQCAtMTgsNyArMTgsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvRGlzY292ZXJLRE1Tb3VyY2VBbmRKYXZhTW9kZWwuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9EaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbC5qYXZhCmluZGV4IDg5Y2M5NGYuLmFiY2M3ODkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9EaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9EaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbC5qYXZhCkBAIC03MCw3ICs3MCw4IEBACiAgKiBTZWUgSGVscCBjb250ZW50cyBvciBodHRwOi8vd2lraS5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0NvbXBvbmVudHMvSmF2YS9Db21wb3NpdGlvbg0KICAqDQogICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBEaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbEZyb21Qcm9qZWN0fSBvcg0KLSAqICAgICAgICAgICAgIHtAbGluayBEaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbEZyb21KYXZhUHJvamVjdH0NCisgKiAgICAgICAgICAgICB7QGxpbmsgRGlzY292ZXJLRE1Tb3VyY2VBbmRKYXZhTW9kZWxGcm9tSmF2YVByb2plY3R9LA0KKyAqICAgICAgICAgICAgIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NzE4DQogICoNCiAgKi8NCiBARGVwcmVjYXRlZA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9EaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbEZyb21Qcm9qZWN0LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2NvbXBvc2l0aW9uL2Rpc2NvdmVyZXIvRGlzY292ZXJLRE1Tb3VyY2VBbmRKYXZhTW9kZWxGcm9tUHJvamVjdC5qYXZhCmluZGV4IGU3YTZmYmUuLmI1NDY0NjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9EaXNjb3ZlcktETVNvdXJjZUFuZEphdmFNb2RlbEZyb21Qcm9qZWN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL0Rpc2NvdmVyS0RNU291cmNlQW5kSmF2YU1vZGVsRnJvbVByb2plY3QuamF2YQpAQCAtMSw1ICsxLDUgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDExIE1pYS1Tb2Z0d2FyZS4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMTEsIDIwMTUgTWlhLVNvZnR3YXJlLg0KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KQEAgLTcsMTAgKzcsMTMgQEAKICAqDQogICogQ29udHJpYnV0b3JzOg0KICAqICAgIE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzMzUwMDMgLSBbRGlzY292ZXJlcl0gOiBFeGlzdGluZyBEaXNjb3ZlcmVycyBSZWZhY3RvcmluZyBiYXNlZCBvbiBuZXcgZnJhbWV3b3JrDQorICogICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ3MjE5NCAtIERpc2NvdmVyeUV4Y2VwdGlvbiBpbiBBYnN0cmFjdERpc2NvdmVyZXIuZGlzY292ZXJFbGVtZW50ICg3MCkNCiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyOw0KIA0KIGltcG9ydCBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5JUHJvamVjdDsNCitpbXBvcnQgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLkNvcmVFeGNlcHRpb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmNvcmUuTG9nZ2VyOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5qZHQuY29yZS5KYXZhQ29yZTsNCiBpbXBvcnQgb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuY29yZS5hbm5vdGF0aW9ucy5QYXJhbWV0ZXJJbml0aWFsVmFsdWU7DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLkFic3RyYWN0RGlzY292ZXJKYXZhTW9kZWxGcm9tUHJvamVjdDsNCkBAIC0zMCw3ICszMywxNyBAQAogCQlBYnN0cmFjdERpc2NvdmVyS0RNU291cmNlQW5kSmF2YU1vZGVsPElQcm9qZWN0PiB7DQogDQogCXB1YmxpYyBib29sZWFuIGlzQXBwbGljYWJsZVRvKGZpbmFsIElQcm9qZWN0IHNvdXJjZSkgew0KLQkJcmV0dXJuIHNvdXJjZS5pc0FjY2Vzc2libGUoKTsNCisJCWJvb2xlYW4gaXNKYXZhUHJvamVjdCA9IGZhbHNlOw0KKwkJdHJ5IHsNCisJCQlpc0phdmFQcm9qZWN0ID0gc291cmNlLmhhc05hdHVyZShKYXZhQ29yZS5OQVRVUkVfSUQpOw0KKwkJfSBjYXRjaCAoQ29yZUV4Y2VwdGlvbiBlKSB7DQorCQkJZmluYWwgU3RyaW5nIG1lc3NhZ2VzID0gU3RyaW5nLmZvcm1hdCgNCisJCQkJCSJTb21ldGhpbmcgd3JvbmcgaGFwcGVuZCB3aGVuIHRlc3RpbmcgdGhlIG5hdHVyZSBvZiAlcy4gV2UgYXNzdW0gdGhhdCB0aGlzIHByb2plY3QgaXMgbm90IGEgSkRUIChKYXZhKSBwcm9qZWN0LiIsIC8vJE5PTi1OTFMtMSQNCisJCQkJCXNvdXJjZS5nZXROYW1lKCkNCisJCQkJKTsNCisJCQlMb2dnZXIubG9nRXJyb3IoZSwgbWVzc2FnZXMsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KKwkJfQ0KKwkJcmV0dXJuIHNvdXJjZS5pc0FjY2Vzc2libGUoKSAmJiBpc0phdmFQcm9qZWN0Ow0KIAl9DQogDQogCUBPdmVycmlkZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvY29tcG9zaXRpb24vZGlzY292ZXJlci9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKaW5kZXggMTRkZDhkYy4uOTEzNDFmMCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9jb21wb3NpdGlvbi9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKQEAgLTE1LDYgKzE1LDExIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MDENCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24uZGlzY292ZXJlci5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgRGlzY292ZXJLRE1Tb3VyY2VBbmRKYXZhTW9kZWxfMDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZGYzYjcxMy4uMjA5NDFkYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uLnVpLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLnVpLmlkZTtidW5kbGUtdmVyc2lvbj0iMy42LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGVlODQ4ZDEuLjBiYjUzZDkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jb21wb3NpdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuY29tcG9zaXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTksNyArOSw3IEBACiAgZnJhLnF1ZXJ5LmNvcmU7YnVuZGxlLXZlcnNpb249IjAuOS4wIgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1DbGFzc1BhdGg6IC4KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNvbXBvc2l0aW9uO3NpbmdsZXRvbjo9dHJ1ZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCA1N2YyYTc4Li5lMTNiMTM5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsuZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsuZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMTIsNyArMTIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmZlYXR1cmUiDQogICAgICAgbGFiZWw9Ik1vRGlzY28gSmF2YSBEaXNjb3ZlcmVyIEJlbmNobWFyayBmZWF0dXJlIChJbmN1YmF0aW9uKSINCi0gICAgICB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIg0KKyAgICAgIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiDQogICAgICAgcHJvdmlkZXItbmFtZT0iJXByb3ZpZGVyTmFtZSINCiAgICAgICBwbHVnaW49Im9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay5qYXZhQmVuY2htYXJrL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmphdmFCZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZWY0Nzc1Yy4uMmUyODhmNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmphdmFCZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLmphdmFCZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay5qYXZhQmVuY2htYXJrO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBPU0dJLUlORi9sMTBuL2J1bmRsZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5NmM4NmIxLi41NTgzYzQ3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay90ZXN0cy9KYXZhRGlzY292ZXJlckJlbmNobWFya1Rlc3QuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3Rlc3RzL0phdmFEaXNjb3ZlcmVyQmVuY2htYXJrVGVzdC5qYXZhCmluZGV4IDY5ZTIyNWEuLmJiNWQwOWMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3Rlc3RzL0phdmFEaXNjb3ZlcmVyQmVuY2htYXJrVGVzdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3Rlc3RzL0phdmFEaXNjb3ZlcmVyQmVuY2htYXJrVGVzdC5qYXZhCkBAIC0xMCw2ICsxMCw3IEBACiAgKiAgICBGYWJpZW4gR2lxdWVsIChNaWEtU29mdHdhcmUpIC0gQnVnIDMzOTcyMCA6IE1vRGlzY28gRGlzY292ZXJlcnMgKGluZnJhICsgdGVjaG5vKSBBUEkgY2xlYW4NCiAgKiAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzM1MDAzIC0gW0Rpc2NvdmVyZXJdIDogRXhpc3RpbmcgRGlzY292ZXJlcnMgUmVmYWN0b3JpbmcgYmFzZWQgb24gbmV3IGZyYW1ld29yaw0KICAqICAgIEdyZWdvaXJlIER1cGUgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzQ2MDg3IC0gUmVncmVzc2lvbiBvZiB0aGUgcmVwb3J0IG9mIHRoZSBKYXZhIGRpc2NvdmVyZXIgYmVuY2htYXJrDQorICogICAgR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA1MTE3NDUgLSBbVW5pdCBUZXN0IEZhaWx1cmVdIG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy5KYXZhRGlzY292ZXJlckJlbmNobWFya1Rlc3QudGVzdDAwMQ0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzOw0KIA0KQEAgLTU3LDcgKzU4LDcgQEAKIAkJQWNjZWxlb0VuZ2luZVBsdWdpbi5nZXREZWZhdWx0KCkuZ2V0TG9nKCkuYWRkTG9nTGlzdGVuZXIodGhpcy5saXN0ZW5lcik7DQogCX0NCiANCi0JQFRlc3QodGltZW91dCA9IDE1ICogNjAgKiAxMDAwKQ0KKwlAVGVzdCh0aW1lb3V0ID0gMjUgKiA2MCAqIDEwMDApDQogCXB1YmxpYyB2b2lkIHRlc3QwMDEoKSB0aHJvd3MgQ29yZUV4Y2VwdGlvbiwgSU9FeGNlcHRpb24gew0KIAkJaWYgKEJvb2xlYW4ucGFyc2VCb29sZWFuKFN5c3RlbS5nZXRlbnYoKS5nZXQoInNraXAubG9uZy5qdW5pdC50ZXN0cyIpKSkgew0KIAkJCXRocm93IG5ldyBSdW50aW1lRXhjZXB0aW9uKCJza2lwcGVkIik7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLy5leHRlcm5hbFRvb2xCdWlsZGVycy9lbXRsQ29weS5sYXVuY2ggYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2VtdGxDb3B5LmxhdW5jaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGQ4NDk0YS4uMDAwMDAwMAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvLmV4dGVybmFsVG9vbEJ1aWxkZXJzL2VtdGxDb3B5LmxhdW5jaAorKysgL2Rldi9udWxsCkBAIC0xLDI0ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzdGFuZGFsb25lPSJubyI/Pg0KLTxsYXVuY2hDb25maWd1cmF0aW9uIHR5cGU9Im9yZy5lY2xpcHNlLmFudC5BbnRCdWlsZGVyTGF1bmNoQ29uZmlndXJhdGlvblR5cGUiPg0KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpLkFUVFJfVEFSR0VUU19VUERBVEVEIiB2YWx1ZT0idHJ1ZSIvPg0KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuYW50LnVpLkRFRkFVTFRfVk1fSU5TVEFMTCIgdmFsdWU9ImZhbHNlIi8+DQotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLmNvcmUuQVRUUl9SRUZSRVNIX1NDT1BFIiB2YWx1ZT0iJHtwcm9qZWN0fSIvPg0KLTxsaXN0QXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5NQVBQRURfUkVTT1VSQ0VfUEFUSFMiPg0KLTxsaXN0RW50cnkgdmFsdWU9Ii9vcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIi8+DQotPC9saXN0QXR0cmlidXRlPg0KLTxsaXN0QXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcuY29yZS5NQVBQRURfUkVTT1VSQ0VfVFlQRVMiPg0KLTxsaXN0RW50cnkgdmFsdWU9IjQiLz4NCi08L2xpc3RBdHRyaWJ1dGU+DQotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS5kZWJ1Zy5jb3JlLmNhcHR1cmVfb3V0cHV0IiB2YWx1ZT0iZmFsc2UiLz4NCi08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmRlYnVnLnVpLkFUVFJfQ09OU09MRV9PVVRQVVRfT04iIHZhbHVlPSJmYWxzZSIvPg0KLTxib29sZWFuQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuZGVidWcudWkuQVRUUl9MQVVOQ0hfSU5fQkFDS0dST1VORCIgdmFsdWU9InRydWUiLz4NCi08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5DTEFTU1BBVEhfUFJPVklERVIiIHZhbHVlPSJvcmcuZWNsaXBzZS5hbnQudWkuQW50Q2xhc3NwYXRoUHJvdmlkZXIiLz4NCi08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuREVGQVVMVF9DTEFTU1BBVEgiIHZhbHVlPSJ0cnVlIi8+DQotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLmpkdC5sYXVuY2hpbmcuUFJPSkVDVF9BVFRSIiB2YWx1ZT0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrIi8+DQotPGJvb2xlYW5BdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERFUl9FTkFCTEVEIiB2YWx1ZT0idHJ1ZSIvPg0KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfQlVJTERfU0NPUEUiIHZhbHVlPSIke3dvcmtpbmdfc2V0OiZsdDs/eG1sIHZlcnNpb249JnF1b3Q7MS4wJnF1b3Q7IGVuY29kaW5nPSZxdW90O1VURi04JnF1b3Q7PyZndDsmIzEzOyYjMTA7Jmx0O3Jlc291cmNlcyZndDsmIzEzOyYjMTA7Jmx0O2l0ZW0gcGF0aD0mcXVvdDsvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL2JpbiZxdW90OyB0eXBlPSZxdW90OzImcXVvdDsvJmd0OyYjMTM7JiMxMDsmbHQ7L3Jlc291cmNlcyZndDt9Ii8+DQotPHN0cmluZ0F0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9MT0NBVElPTiIgdmFsdWU9IiR7d29ya3NwYWNlX2xvYzovb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL2VtdGxDb3B5LmJ1aWxkLnhtbH0iLz4NCi08c3RyaW5nQXR0cmlidXRlIGtleT0ib3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5BVFRSX1JVTl9CVUlMRF9LSU5EUyIgdmFsdWU9ImZ1bGwsaW5jcmVtZW50YWwsYXV0bywiLz4NCi08Ym9vbGVhbkF0dHJpYnV0ZSBrZXk9Im9yZy5lY2xpcHNlLnVpLmV4dGVybmFsdG9vbHMuQVRUUl9UUklHR0VSU19DT05GSUdVUkVEIiB2YWx1ZT0idHJ1ZSIvPg0KLTxzdHJpbmdBdHRyaWJ1dGUga2V5PSJvcmcuZWNsaXBzZS51aS5leHRlcm5hbHRvb2xzLkFUVFJfV09SS0lOR19ESVJFQ1RPUlkiIHZhbHVlPSIke3dvcmtzcGFjZV9sb2M6L29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFya30iLz4NCi08L2xhdW5jaENvbmZpZ3VyYXRpb24+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLy5wcm9qZWN0CmluZGV4IDQwNzAwNWEuLmNlMGViMDcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay8ucHJvamVjdAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvLnByb2plY3QKQEAgLTI2LDQ2ICsyNiwxMCBAQAogCQkJPC9hcmd1bWVudHM+DQogCQk8L2J1aWxkQ29tbWFuZD4NCiAJCTxidWlsZENvbW1hbmQ+DQotCQkJPG5hbWU+b3JnLmVjbGlwc2UudWkuZXh0ZXJuYWx0b29scy5FeHRlcm5hbFRvb2xCdWlsZGVyPC9uYW1lPg0KLQkJCTx0cmlnZ2Vycz5hdXRvLGZ1bGwsaW5jcmVtZW50YWwsPC90cmlnZ2Vycz4NCi0JCQk8YXJndW1lbnRzPg0KLQkJCQk8ZGljdGlvbmFyeT4NCi0JCQkJCTxrZXk+TGF1bmNoQ29uZmlnSGFuZGxlPC9rZXk+DQotCQkJCQk8dmFsdWU+Jmx0O3Byb2plY3QmZ3Q7Ly5leHRlcm5hbFRvb2xCdWlsZGVycy9lbXRsQ29weS5sYXVuY2g8L3ZhbHVlPg0KLQkJCQk8L2RpY3Rpb25hcnk+DQotCQkJPC9hcmd1bWVudHM+DQotCQk8L2J1aWxkQ29tbWFuZD4NCi0JCTxidWlsZENvbW1hbmQ+DQogCQkJPG5hbWU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVCdWlsZGVyPC9uYW1lPg0KIAkJCTxhcmd1bWVudHM+DQogCQkJPC9hcmd1bWVudHM+DQogCQk8L2J1aWxkQ29tbWFuZD4NCi0JCTxidWlsZENvbW1hbmQ+DQotCQkJPG5hbWU+b3JnLmVjbGlwc2UuYnVja21pbnN0ZXIuYW50LkFudEJ1aWxkZXI8L25hbWU+DQotCQkJPHRyaWdnZXJzPmF1dG8sZnVsbCxpbmNyZW1lbnRhbCw8L3RyaWdnZXJzPg0KLQkJCTxhcmd1bWVudHM+DQotCQkJCTxkaWN0aW9uYXJ5Pg0KLQkJCQkJPGtleT5hdXRvLmtpbmQudGFyZ2V0PC9rZXk+DQotCQkJCQk8dmFsdWU+ZW10bENvcHlCYWNrPC92YWx1ZT4NCi0JCQkJPC9kaWN0aW9uYXJ5Pg0KLQkJCQk8ZGljdGlvbmFyeT4NCi0JCQkJCTxrZXk+YnVpbGQucmVzdWx0LmZvbGRlcjwva2V5Pg0KLQkJCQkJPHZhbHVlPi48L3ZhbHVlPg0KLQkJCQk8L2RpY3Rpb25hcnk+DQotCQkJCTxkaWN0aW9uYXJ5Pg0KLQkJCQkJPGtleT5mdWxsLmtpbmQudGFyZ2V0PC9rZXk+DQotCQkJCQk8dmFsdWU+ZW10bENvcHlCYWNrPC92YWx1ZT4NCi0JCQkJPC9kaWN0aW9uYXJ5Pg0KLQkJCQk8ZGljdGlvbmFyeT4NCi0JCQkJCTxrZXk+aW5jcmVtZW50YWwua2luZC50YXJnZXQ8L2tleT4NCi0JCQkJCTx2YWx1ZT5lbXRsQ29weUJhY2s8L3ZhbHVlPg0KLQkJCQk8L2RpY3Rpb25hcnk+DQotCQkJCTxkaWN0aW9uYXJ5Pg0KLQkJCQkJPGtleT5zY3JpcHQuZmlsZTwva2V5Pg0KLQkJCQkJPHZhbHVlPmVtdGxDb3B5LmJ1aWxkLnhtbDwvdmFsdWU+DQotCQkJCTwvZGljdGlvbmFyeT4NCi0JCQk8L2FyZ3VtZW50cz4NCi0JCTwvYnVpbGRDb21tYW5kPg0KIAk8L2J1aWxkU3BlYz4NCiAJPG5hdHVyZXM+DQogCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmFjY2VsZW8uaWRlLnVpLmFjY2VsZW9OYXR1cmU8L25hdHVyZT4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNWYzNzg2Ny4uMTRmZWExZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyaztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhO2J1bmRsZS12ZXJzaW9uPSIwLjcuMCIsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvZW10bC9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVtcGxhdGUvaHRtbC9odG1sUmVwb3J0LmVtdGwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvZW10bC9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVtcGxhdGUvaHRtbC9odG1sUmVwb3J0LmVtdGwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDJiZGIwNzkuLjAwMDAwMDAKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL2VtdGwvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3RlbXBsYXRlL2h0bWwvaHRtbFJlcG9ydC5lbXRsCisrKyAvZGV2L251bGwKQEAgLTEsMjA3MiArMCwwIEBACi08P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KLTx4bWk6WE1JIHhtaTp2ZXJzaW9uPSIyLjAiIHhtbG5zOnhtaT0iaHR0cDovL3d3dy5vbWcub3JnL1hNSSIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6ZWNvcmU9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUiIHhtbG5zOm10bD0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAiIHhtbG5zOm9jbC5lY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvRWNvcmUiPg0KLSAgPG10bDpNb2R1bGUgbmFtZT0iaHRtbFJlcG9ydCIgbnNVUkk9Im9yZzo6ZWNsaXBzZTo6bW9kaXNjbzo6amF2YTo6ZGlzY292ZXJlcjo6YmVuY2htYXJrOjp0ZW1wbGF0ZTo6aHRtbDo6aHRtbFJlcG9ydCIgc3RhcnRIZWFkZXJQb3NpdGlvbj0iNDcwIiBlbmRIZWFkZXJQb3NpdGlvbj0iNjE2Ij4NCi0gICAgPGlucHV0Pg0KLSAgICAgIDx0YWtlc1R5cGVzRnJvbSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8iLz4NCi0gICAgPC9pbnB1dD4NCi0gICAgPGlucHV0Pg0KLSAgICAgIDx0YWtlc1R5cGVzRnJvbSBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvIi8+DQotICAgIDwvaW5wdXQ+DQotICAgIDxvd25lZE1vZHVsZUVsZW1lbnQgeHNpOnR5cGU9Im10bDpUZW1wbGF0ZSIgbmFtZT0iaHRtbFJlcG9ydCIgdmlzaWJpbGl0eT0iUHVibGljIiBtYWluPSJ0cnVlIj4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4OTsmI3hBOyIvPg0KLSAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6RmlsZUJsb2NrIiBvcGVuTW9kZT0iT3ZlcldyaXRlIj4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7aHRtbD4mI3hBOyZsdDt0aXRsZT5Nb0Rpc2NvIEphdmEgRGlzY292ZXIgQmVuY2htYXJrIC0gIi8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyZWRQcm9qZWN0Ii8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii83L09yZGVyZWRTZXQoRGlzY292ZXJlZFByb2plY3QpIj4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyay9wcm9qZWN0cyIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkludGVnZXJMaXRlcmFsRXhwIiBpbnRlZ2VyU3ltYm9sPSIxIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2F0Ii8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0L25hbWUiLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RpdGxlPiYjeEE7Jmx0O2JvZHk+JiN4QTsmbHQ7aDE+TW9EaXNjbyBKYXZhIERpc2NvdmVyIEJlbmNobWFyayAtICIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcmVkUHJvamVjdCIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvNy9PcmRlcmVkU2V0KERpc2NvdmVyZWRQcm9qZWN0KSI+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyayIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsvcHJvamVjdHMiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpJbnRlZ2VyTGl0ZXJhbEV4cCIgaW50ZWdlclN5bWJvbD0iMSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9hdCIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdC9uYW1lIi8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9oMT4mI3hBOyZsdDtwPk1heGltdW0gSmF2YSBoZWFwIHNpemUgPSAiLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQmVuY2htYXJrL2p2bU1heEhlYXBJbk1pQiIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiBNaUImbHQ7cD4mI3hBOyZsdDtwPkphdmEgcHJvamVjdCBuYW1lID0gIi8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyZWRQcm9qZWN0Ii8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii83L09yZGVyZWRTZXQoRGlzY292ZXJlZFByb2plY3QpIj4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyay9wcm9qZWN0cyIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkludGVnZXJMaXRlcmFsRXhwIiBpbnRlZ2VyU3ltYm9sPSIxIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2F0Ii8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0L25hbWUiLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3A+JiN4QTsmI3hBOyZsdDtoMj5TdW1tYXJ5Jmx0Oy9oMj4mI3hBOyAgJmx0O3RhYmxlIGJvcmRlcj0mcXVvdDsxJnF1b3Q7PiYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+Jmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+VG90YWwgZGlzY292ZXJ5IHRpbWUgKG1uKSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPlNhdmUgdGltZSAobW4pJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+TWF4aW11bSB1c2VkIG1lbW9yeSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPkluaXRpYWxpemF0aW9uIHRpbWUgKG1uKSZsdDsvdGg+JiN4QTsgICAgICZsdDsvdHI+JiN4QTsiLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICAgICAgJmx0O3RyPiYjeEE7ICAgICAgICAmbHQ7dGQ+Jmx0O2EgaHJlZj0mcXVvdDsjIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9uYW1lIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImcXVvdDs+Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpUZW1wbGF0ZUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL2dldE5hbWUiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L2E+Jmx0Oy90ZD4mI3hBOyAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L3RvdGFsRXhlY3V0aW9uVGltZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L3NhdmVUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvbWF4VXNlZE1lbW9yeUluQnl0ZXMiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpMZXRCbG9jayI+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyYjeDk7JiN4OTsgICIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImNkb0Rpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4wL2Nkb0Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0phdmFCZW5jaG1hcmsvMC45LjAvamF2YUJlbmNobWFyayMvL0NET0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQWJzdHJhY3RDRE9EaXNjb3ZlcnkvaW5pdFRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsiLz4NCi0gICAgICAgICAgICAgICAgPGxldFZhcmlhYmxlIG5hbWU9ImNkb0Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8aW5pdEV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQ0RPRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZUV4cCIgZVR5cGU9Ii8yMS9DRE9EaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3Mvb2NsQXNUeXBlIi8+DQotICAgICAgICAgICAgICAgICAgPC9pbml0RXhwcmVzc2lvbj4NCi0gICAgICAgICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvMjEvQ0RPRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbElzS2luZE9mIi8+DQotICAgICAgICAgICAgICA8L2lmRXhwcj4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICZsdDsvdHI+ICAgICYjeEE7Ii8+DQotICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJkaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvNy9PcmRlcmVkU2V0KERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9wcm9qZWN0Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJlZFByb2plY3QiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJlZFByb2plY3QvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJwcm9qZWN0Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcmVkUHJvamVjdCIvPg0KLSAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvNy9PcmRlcmVkU2V0KERpc2NvdmVyZWRQcm9qZWN0KSI+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrL3Byb2plY3RzIi8+DQotICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RhYmxlPiYjeEE7Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeDk7Jmx0O2gyPiZsdDthIG5hbWU9JnF1b3Q7Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvbmFtZSIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJnF1b3Q7Lz4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlRlbXBsYXRlSW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvZ2V0TmFtZSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L2gyPiYjeEE7JiN4OTsmbHQ7dGFibGU+JiN4QTsmI3g5OyAgJmx0O3RyPiYjeEE7JiN4OTsgICAgJmx0O3RkPiYjeEE7JiN4OTsgICAgICAgJmx0O3A+JiN4QTsmI3g5OyAgICAgICAgICAmbHQ7YSBocmVmPSZxdW90OyIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L25hbWUiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5wbmcmcXVvdDs+JiN4QTsmI3g5OyAgICAgICAgICAmbHQ7aW1nIGhlaWdodD0mcXVvdDszMDAmcXVvdDsgc3JjPSZxdW90OyIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L25hbWUiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii5wbmcmcXVvdDsvPiYjeEE7JiN4OTsgICAgICAgICAgJmx0Oy9hPiYjeEE7JiN4OTsgICAgICAgJmx0Oy9wPiYjeEE7JiN4OTsgICAgICZsdDsvdGQ+JiN4QTsmI3g5OyAgICAgJmx0O3RkPiYjeEE7JiN4OTsgICAgICZsdDtoMz5EaXNjb3ZlcnkgcHJvcGVydGllcyZsdDsvaDM+JiN4QTsmI3g5OyAgICAgdG90YWwgZXhlY3V0aW9uIHRpbWUgKG1uKSA9ICIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS90b3RhbEV4ZWN1dGlvblRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmI3g5OyAgICAgc2F2ZSB0aW1lIChtbikgPSAiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3Zlcnkvc2F2ZVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmI3g5OyAgICAgYWxnbyB2YXJpYW50ID0gIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9hbGdvcml0aG1WYXJpYW50Ii8+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9hbGdvcml0aG1WYXJpYW50Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpOdWxsTGl0ZXJhbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6Vm9pZFR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xWb2lkIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZ19DbGFzcy8lM0MlM0UiLz4NCi0gICAgICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyYjeDk7ICAgICBtZXRhLW1vZGVsIHZhcmlhbnQgPSAiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L21ldGFNb2RlbFZhcmlhbnQiLz4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L21ldGFNb2RlbFZhcmlhbnQiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk51bGxMaXRlcmFsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpWb2lkVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFZvaWQiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nX0NsYXNzLyUzQyUzRSIvPg0KLSAgICAgICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4OTsgICAgIGRpY292ZXJlciBjbGFzcyBuYW1lID0gIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlckNsYXNzTmFtZSIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyYjeDk7ICAgICBtYXhpbXVtIHVzZWQgbWVtb3J5ID0gIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L21heFVzZWRNZW1vcnlJbkJ5dGVzIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6TGV0QmxvY2siPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4OTsgICAgICZsdDtoMz5DRE8gcHJvcGVydGllcyZsdDsvaDM+JiN4QTsmI3g5OyAgICAgQ0RPIHZlcnNpb24gPSAiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImNkb0NvbmYiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvY2RvQ29uZiI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0phdmFCZW5jaG1hcmsvMC45LjAvamF2YUJlbmNobWFyayMvL0NET0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQWJzdHJhY3RDRE9EaXNjb3ZlcnkvdmVyc2lvbiIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4OTsgICAgIHJldmlzZWQgTFJVIGNhcGFjaXR5ID0gIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iY2RvQ29uZiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9jZG9Db25mIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQ0RPRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9BYnN0cmFjdENET0Rpc2NvdmVyeS9yZXZpc2VkTHJ1Q2FwYWNpdHkiLz4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyYjeDk7ICAgICBjYWNoZSB0eXBlID0gIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJjZG9Db25mIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL2Nkb0NvbmYiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0phdmFCZW5jaG1hcmsvMC45LjAvamF2YUJlbmNobWFyayMvL0Fic3RyYWN0Q0RPRGlzY292ZXJ5L2NhY2hlVHlwZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4OTsgICAgIHNlcnZlciBkZXNjcmlwdGlvbiA9ICIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iY2RvQ29uZiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9jZG9Db25mIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQ0RPRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9BYnN0cmFjdENET0Rpc2NvdmVyeS9zZXJ2ZXJEZXNjcmlwdGlvbiIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7JiN4OTsgICAgIGN1cnJlbnQgTFJVIGNhcGFjaXR5ID0gIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iY2RvQ29uZiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9jZG9Db25mIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQ0RPRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9BYnN0cmFjdENET0Rpc2NvdmVyeS9jdXJyZW50THJ1Q2FwYWNpdHkiLz4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyYjeDk7ICAgICBjb21tZW50IGRhdGFiYXNlIGluaXRpYWxpc2F0aW9uIHRpbWUgPSBfX2Nkb0NvbmYuaW5pdFRpbWUvX18mbHQ7YnIvPiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgIDxsZXRWYXJpYWJsZSBuYW1lPSJjZG9Db25mIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0phdmFCZW5jaG1hcmsvMC45LjAvamF2YUJlbmNobWFyayMvL0NET0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDxpbml0RXhwcmVzc2lvbiB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZUV4cCIgZVR5cGU9Ii8yMS9DRE9EaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3Mvb2NsQXNUeXBlIi8+DQotICAgICAgICAgICAgICAgICAgPC9pbml0RXhwcmVzc2lvbj4NCi0gICAgICAgICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlRXhwIiBlVHlwZT0iLzIxL0NET0Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQ0RPRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueV9DbGFzcy9vY2xJc0tpbmRPZiIvPg0KLSAgICAgICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3g5OyAgICAgJmx0Oy90ZD4mI3hBOyYjeDk7ICAgJmx0Oy90cj4mI3hBOyYjeDk7Jmx0Oy90YWJsZT4mI3hBOyIvPg0KLSAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0iZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzcvT3JkZXJlZFNldChEaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdCIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL3Byb2plY3QiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcmVkUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcmVkUHJvamVjdC9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9InByb2plY3QiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyZWRQcm9qZWN0Ii8+DQotICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii83L09yZGVyZWRTZXQoRGlzY292ZXJlZFByb2plY3QpIj4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsvcHJvamVjdHMiLz4NCi0gICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoci8+JiN4QTsmbHQ7cD5UaGlzIHJlcG9ydCBoYXMgYmVlbiBnZW5lcmF0ZWQgd2l0aCAmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZ210L21vZGlzY28vJnF1b3Q7Pk1vRGlzY28mbHQ7L2E+IEphdmEgRGlzY292ZXJlciBCZW5jaG1hcmsuJmx0Oy9wPiYjeEE7Jmx0Oy9ib2R5PiZsdDsvaHRtbD4mI3hBOyIvPg0KLSAgICAgICAgPGZpbGVVcmwgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9InJlcG9ydC5odG1sIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9maWxlVXJsPg0KLSAgICAgIDwvYm9keT4NCi0gICAgICA8cGFyYW1ldGVyIG5hbWU9ImIiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICAgICAgPC9wYXJhbWV0ZXI+DQotICAgIDwvb3duZWRNb2R1bGVFbGVtZW50Pg0KLSAgICA8b3duZWRNb2R1bGVFbGVtZW50IHhzaTp0eXBlPSJtdGw6VGVtcGxhdGUiIG5hbWU9ImdldE5hbWUiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJDRE8iLz4NCi0gICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2dldE5hbWUvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvMjEvQ0RPRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbElzS2luZE9mIi8+DQotICAgICAgICA8L2lmRXhwcj4NCi0gICAgICA8L2JvZHk+DQotICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7Ii8+DQotICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgIi8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2dldE5hbWUvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9hbGdvcml0aG1WYXJpYW50Ii8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvZ2V0TmFtZS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L2FsZ29yaXRobVZhcmlhbnQiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk51bGxMaXRlcmFsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpWb2lkVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFZvaWQiLz4NCi0gICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nX0NsYXNzLyUzQyUzRSIvPg0KLSAgICAgICAgPC9pZkV4cHI+DQotICAgICAgPC9ib2R5Pg0KLSAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyIvPg0KLSAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6SWZCbG9jayI+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9nZXROYW1lL2Rpc2NvdmVyeSI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvbWV0YU1vZGVsVmFyaWFudCIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2dldE5hbWUvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9tZXRhTW9kZWxWYXJpYW50Ii8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpOdWxsTGl0ZXJhbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6Vm9pZFR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xWb2lkIi8+DQotICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZ19DbGFzcy8lM0MlM0UiLz4NCi0gICAgICAgIDwvaWZFeHByPg0KLSAgICAgIDwvYm9keT4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsiLz4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOklmQmxvY2siPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAiLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6TGV0QmxvY2siPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iKCIvPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iY2RvQ29uZiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvZ2V0TmFtZS9AYm9keS42L0Bib2R5LjEvY2RvQ29uZiI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0phdmFCZW5jaG1hcmsvMC45LjAvamF2YUJlbmNobWFyayMvL0NET0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQWJzdHJhY3RDRE9EaXNjb3Zlcnkvc2VydmVyRGVzY3JpcHRpb24iLz4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iKSIvPg0KLSAgICAgICAgICA8bGV0VmFyaWFibGUgbmFtZT0iY2RvQ29uZiI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICA8aW5pdEV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vSmF2YUJlbmNobWFyay8wLjkuMC9qYXZhQmVuY2htYXJrIy8vQ0RPRGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImRpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvZ2V0TmFtZS9kaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZUV4cCIgZVR5cGU9Ii8yMS9DRE9EaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnlfQ2xhc3Mvb2NsQXNUeXBlIi8+DQotICAgICAgICAgICAgPC9pbml0RXhwcmVzc2lvbj4NCi0gICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxpZkV4cHIgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2dldE5hbWUvZGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVFeHAiIGVUeXBlPSIvMjEvQ0RPRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55X0NsYXNzL29jbElzS2luZE9mIi8+DQotICAgICAgICA8L2lmRXhwcj4NCi0gICAgICA8L2JvZHk+DQotICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAgIi8+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJkaXNjb3ZlcnkiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgPC9wYXJhbWV0ZXI+DQotICAgIDwvb3duZWRNb2R1bGVFbGVtZW50Pg0KLSAgPC9tdGw6TW9kdWxlPg0KLSAgPGVjb3JlOkVQYWNrYWdlIG5hbWU9ImFkZGl0aW9ucyI+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU3RyaW5nX0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3Vic3RpdHV0ZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0idCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaW5kZXgiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJmaXJzdCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ibiI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9Imxhc3QiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im4iPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzdHJzdHIiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzdHJ0b2siPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InMxIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmbGFnIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3RyY21wIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iczEiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImlzQWxwaGEiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJpc0FscGhhbnVtIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idG9VcHBlckZpcnN0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ0b0xvd2VyRmlyc3QiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InJlcGxhY2UiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzdWJzdHJpbmciPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InJlcGxhY2VtZW50Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJyZXBsYWNlQWxsIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJyZXBsYWNlbWVudCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3Vic3RpdHV0ZUFsbCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InN1YnN0cmluZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0icmVwbGFjZW1lbnQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InN0YXJ0c1dpdGgiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJlbmRzV2l0aCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzdWJzdHJpbmciPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InRyaW0iPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ0b2tlbml6ZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShTdHJpbmcpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZGVsaW1pdGVycyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iY29udGFpbnMiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJtYXRjaGVzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InJlZ2V4Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJsYXN0SW5kZXgiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJlcXVhbHNJZ25vcmVDYXNlIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im90aGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzdWJzdHJpbmciPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzdGFydEluZGV4Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iKyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im90aGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6QW55VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJJbnRlZ2VyX0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InRvU3RyaW5nIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJSZWFsX0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InRvU3RyaW5nIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJFT2JqZWN0X0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImVBbGxDb250ZW50cyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZUFsbENvbnRlbnRzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iYW5jZXN0b3JzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJhbmNlc3RvcnMiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImZpbHRlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsVHlwZSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzaWJsaW5ncyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2libGluZ3MiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImZpbHRlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsVHlwZSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJlSW52ZXJzZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3JkZXJlZFNldFR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL09yZGVyZWRTZXQoT2NsQW55KSIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImVJbnZlcnNlIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpPcmRlcmVkU2V0VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vT3JkZXJlZFNldChPY2xBbnkpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InByZWNlZGluZ1NpYmxpbmdzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJwcmVjZWRpbmdTaWJsaW5ncyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImZvbGxvd2luZ1NpYmxpbmdzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJmb2xsb3dpbmdTaWJsaW5ncyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImVDb250YWluZXIiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9PY2xBbnkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZUNvbnRlbnRzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZUdldCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFRGF0YVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FSmF2YU9iamVjdCIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImZlYXR1cmVOYW1lIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJodG1sUmVwb3J0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJiIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE5hbWUiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZSIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImRpc2NvdmVyeSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPY2xBbnlfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ0b1N0cmluZyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9Imludm9rZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6QW55VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImNsYXNzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJtZXRob2QiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImFyZ3VtZW50cyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJjdXJyZW50Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vT2NsQW55Ii8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iaW5kZXgiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJjdXJyZW50Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vT2NsQW55Ii8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFByb3BlcnR5Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ia2V5Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJnZXRQcm9wZXJ0eSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImtleSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iYXJndW1lbnRzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFByb3BlcnR5Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0icHJvcGVydGllc0ZpbGVOYW1lIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJrZXkiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFByb3BlcnR5Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0icHJvcGVydGllc0ZpbGVOYW1lIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJrZXkiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImFyZ3VtZW50cyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSIrIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ib3RoZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkNvbGxlY3Rpb24oVClfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0NvbGxlY3Rpb24oVCkiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2VwIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzZXBhcmF0b3JTdHJpbmciPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImZpbHRlciI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29sbGVjdGlvblR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Db2xsZWN0aW9uKFQpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNlcXVlbmNlKFQpX0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TZXF1ZW5jZShUKSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJyZXZlcnNlIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TZXF1ZW5jZShUKSIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9Imxhc3RJbmRleE9mIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImVsZW1lbnQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvVCIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJPcmRlcmVkU2V0KFQpX0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InJldmVyc2UiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9yZGVyZWRTZXRUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKSIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9Imxhc3RJbmRleE9mIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImVsZW1lbnQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvVCIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBuYW1lPSJNdWx0aVByb2plY3RCZW5jaG1hcmtfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaHRtbFJlcG9ydCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0Ii8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRGlzY292ZXJ5X0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgIDxyZWZlcmVuY2VzIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldE5hbWUiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZSIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPC9lY29yZTpFUGFja2FnZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxlY29yZTpFUGFja2FnZSBuYW1lPSJjb2xsZWN0aW9ucyI+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpPcmRlcmVkU2V0VHlwZSIgbmFtZT0iT3JkZXJlZFNldChEaXNjb3ZlcmVkUHJvamVjdCkiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlua2VkSGFzaFNldCI+DQotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJlZFByb2plY3QiLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpPcmRlcmVkU2V0VHlwZSIgbmFtZT0iT3JkZXJlZFNldChEaXNjb3ZlcnkpIiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS51dGlsLkxpbmtlZEhhc2hTZXQiPg0KLSAgICAgIDxlbGVtZW50VHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gIDwvZWNvcmU6RVBhY2thZ2U+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9NdWx0aVByb2plY3RCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyZWRQcm9qZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyZWRQcm9qZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxlY29yZTpFUGFja2FnZSBuYW1lPSJ0eXBlcyI+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgbmFtZT0iQ0RPRGlzY292ZXJ5Ij4NCi0gICAgICA8cmVmZXJyZWRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9KYXZhQmVuY2htYXJrLzAuOS4wL2phdmFCZW5jaG1hcmsjLy9DRE9EaXNjb3ZlcnkiLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICA8L2Vjb3JlOkVQYWNrYWdlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJlZFByb2plY3QiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vTXVsdGlQcm9qZWN0QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcmVkUHJvamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcmVkUHJvamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyZWRQcm9qZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL011bHRpUHJvamVjdEJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VPYmplY3QiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxlY29yZTpFQW5ub3RhdGlvbiBzb3VyY2U9InBvc2l0aW9ucyI+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzQ0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNDMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3OTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xL0Bzb3VyY2UvQHNvdXJjZS9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xL0Bzb3VyY2UvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3OTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijg1NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODczIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI4NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMy9Ac291cmNlL0Bzb3VyY2UvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODU3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjMvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4ODAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjkxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjUvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjkxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTE2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijk2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjcvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjcvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iOTY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuNy9Ac291cmNlL0Bzb3VyY2UvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTY3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjcvQHNvdXJjZS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iOTgyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI5OTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxODE2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxODAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzMzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzNyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM4MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTM4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjM4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4zL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEzOTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0MDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDA1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0NjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjUvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQyOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIzOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUxMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuNy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNDk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS44Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTUxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTUzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS45L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1MzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE1NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjEwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTU2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTU4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTU4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTc3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNjM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNzU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTcwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTcxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjQ0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE3MTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE3NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQ3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMS9jZG9EaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNzExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNzIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNzQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNzQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMC9jZG9EaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNjQxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNzAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNDMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMC9jZG9EaXNjb3ZlcnkvQGluaXRFeHByZXNzaW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTY3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTcwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGJvZHkuMTEvQGJvZHkuMC9jZG9EaXNjb3ZlcnkvQGluaXRFeHByZXNzaW9uL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE2NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE2ODAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExL0Bib2R5LjAvY2RvRGlzY292ZXJ5L0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE2OTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE3MDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNTg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNjI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4xMS9AaWZFeHByL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1ODkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE1OTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuOS9AYm9keS4wL0Bib2R5LjExL0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNjExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNjIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AYm9keS4xMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE3NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE3OTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI0NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0Bib2R5LjAvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjkvQGJvZHkuMC9AaXRlclNldC9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTMxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTMxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjMyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMzUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTI2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTI3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L0BpdGVyU2V0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTgxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTgyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjUwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxODI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMjcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNTEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTg3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzI2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjUyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTkyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTk0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjUzIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjY3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTk0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTk1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjEvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTk0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTk1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxOTU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxOTYxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxOTYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxOTgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMy9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxOTcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxOTc5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE5ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIwNDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI1MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIwNDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIwNjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS41L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIwNDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIwNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjA2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjEwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjU4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjEwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjEyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjcvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjEwNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjExNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMTIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMjUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNTkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMjUzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMjkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuOS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMjUzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMjYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMjkyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyMzIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNjUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjExIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjMyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjM0OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjExL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIzMjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIzMzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjg0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIzNTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIzNzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI2NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44NSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMzc4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNDUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNjciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjEzL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNDE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNDQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTMvQGJvZHkuMC9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNDE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNDI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTMvQGlmRXhwciI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIzODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI0MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjg5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xMy9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyMzgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNDA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTMvQGlmRXhwci9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjIzODMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjIzOTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjkxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xMy9AaWZFeHByL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjQxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjQxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjE0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjQ1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjQ4NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjY3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjkzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI0ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI1NTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI2OCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45NCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTUvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI1MjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI1NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjk1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xNS9AYm9keS4wL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI1MjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI1MzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjk2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xNS9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjQ4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjUyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjE1L0BpZkV4cHIvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI0ODkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI1MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjk4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xNS9AaWZFeHByL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjQ4OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjQ5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjE1L0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNTE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjE2Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjU1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjU5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjY4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNTkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNjIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjE3L2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI1OTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI2MDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNjI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNjU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4xOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI2NTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI2ODkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwNSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMTkvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjY1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjY2OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4yMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI2OTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI2OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3MCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjcwMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzIyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjcxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI3NTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjMyMTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI4NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI4ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjExMSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4xL2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI5MjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI5MjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI5NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjExNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS4zL2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyOTIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI5NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI5NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI5NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI5OTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjExNyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS41L2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyOTc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTg0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI5OTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjMwMjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjMwMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjMwNTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS43L2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMDMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMDM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjMwNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjMwOTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI3NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjMwOTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjMxMTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyMyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9AYm9keS45L2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMDkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMTAwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0Bib2R5LjAvQGJvZHkuMTAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMTk5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNzgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNzIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL2Nkb0NvbmYvQGluaXRFeHByZXNzaW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjc4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjgxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGJvZHkuMC9AYm9keS4yMS9AYm9keS4wL2Nkb0NvbmYvQGluaXRFeHByZXNzaW9uL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI3ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI3OTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGJvZHkuMC9jZG9Db25mL0Bpbml0RXhwcmVzc2lvbi9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI4MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI4MTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGlmRXhwciI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjI3MDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjI3NDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGJvZHkuMjEvQGlmRXhwci9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNzE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIxL0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNzQyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0Bib2R5LjIyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzIyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzI1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjgyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzMyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTg4MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTkwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjUyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0Bib2R5LjAvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxOTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxOTIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9AYm9keS4wL0BpdGVyU2V0L3Byb2plY3QiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxOTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxOTExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xMS9wcm9qZWN0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTgzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTg1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjUxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzNyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTg2MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTg3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTM4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE4NjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE4NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzI3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzQyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9Ijg3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0BmaWxlVXJsIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzA1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDIiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNDQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQzIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNDkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ0IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM1MzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI5NCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDUiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuMC9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzQ5NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzUzNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ2IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjAvQGlmRXhwci9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNDk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDciIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuMC9AaWZFeHByL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzUyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzUzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ4IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNTQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ5IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNTQ0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTUwIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjIvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1ODMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM1ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI5NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTEiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuMi9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzU4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzYxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTUyIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjIvQGJvZHkuMS9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNTg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTMiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuMi9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzU0OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzU4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU0IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjIvQGlmRXhwci9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzU0OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzU3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU1IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjIvQGlmRXhwci9Ac291cmNlL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM1NDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM1NTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE1NiIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS4yL0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNTc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNTgxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTciIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI5NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTgiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2OTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI5NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTkiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNC9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzY1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzY1OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9Ijk2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2MCIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS40L0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjEiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNC9AYm9keS4xL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2NjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2MiIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS40L0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjU3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjMiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNC9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNjUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjQiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNC9AaWZFeHByL0Bzb3VyY2UvZGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzYyNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzYzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY1IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjQvQGlmRXhwci9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM2NTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM2NTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2NiIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzY5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzY5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9Ijk3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2NyIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzY5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzg0MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9Ijk3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2OCIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS42L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNzM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNzM3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY5IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjYvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM3MzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM4MzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI5NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzAiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNi9AYm9keS4xL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzODAwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTcxIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjYvQGJvZHkuMS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzgwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzgyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTcyIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjYvQGJvZHkuMS9AYm9keS4xL2Nkb0NvbmYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzODAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzMiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNi9AYm9keS4xL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzODI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTc0IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjYvQGJvZHkuMS9jZG9Db25mIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzc0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzc5OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9Ijk3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3NSIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS42L0Bib2R5LjEvY2RvQ29uZi9AaW5pdEV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNzY3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODAwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzYiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNi9AYm9keS4xL2Nkb0NvbmYvQGluaXRFeHByZXNzaW9uL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM3NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM3NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3NyIgcmVmZXJlbmNlcz0iLzAvZ2V0TmFtZS9AYm9keS42L0Bib2R5LjEvY2RvQ29uZi9AaW5pdEV4cHJlc3Npb24vQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNzg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNzk5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzgiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNi9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzY5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzczNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTc5IiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjYvQGlmRXhwci9kaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNjk5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNzA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODAiIHJlZmVyZW5jZXM9Ii8wL2dldE5hbWUvQGJvZHkuNi9AaWZFeHByL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzcyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzczMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTgxIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL0Bib2R5LjciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzODQxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzODQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iOTciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTgyIiByZWZlcmVuY2VzPSIvMC9nZXROYW1lL2Rpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM0NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM0OTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSI5MyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gIDwvZWNvcmU6RUFubm90YXRpb24+DQotPC94bWk6WE1JPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9lbXRsL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay90ZW1wbGF0ZS9odG1sL2h0bWxSZXBvcnQyLmVtdGwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvZW10bC9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9iZW5jaG1hcmsvdGVtcGxhdGUvaHRtbC9odG1sUmVwb3J0Mi5lbXRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MjE4MmUxLi4wMDAwMDAwCi0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9lbXRsL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2JlbmNobWFyay90ZW1wbGF0ZS9odG1sL2h0bWxSZXBvcnQyLmVtdGwKKysrIC9kZXYvbnVsbApAQCAtMSwzMjc4ICswLDAgQEAKLTw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQotPHhtaTpYTUkgeG1pOnZlcnNpb249IjIuMCIgeG1sbnM6eG1pPSJodHRwOi8vd3d3Lm9tZy5vcmcvWE1JIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczplY29yZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSIgeG1sbnM6bXRsPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMCIgeG1sbnM6b2NsLmVjb3JlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9FY29yZSI+DQotICA8bXRsOk1vZHVsZSBuYW1lPSJodG1sUmVwb3J0MiIgbnNVUkk9Im9yZzo6ZWNsaXBzZTo6bW9kaXNjbzo6amF2YTo6ZGlzY292ZXJlcjo6YmVuY2htYXJrOjp0ZW1wbGF0ZTo6aHRtbDo6aHRtbFJlcG9ydDIiIHN0YXJ0SGVhZGVyUG9zaXRpb249IjQ0MSIgZW5kSGVhZGVyUG9zaXRpb249IjU4OCI+DQotICAgIDxpbnB1dD4NCi0gICAgICA8dGFrZXNUeXBlc0Zyb20gaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0phdmFCZW5jaG1hcmsvMC45LjAvamF2YUJlbmNobWFyayMvIi8+DQotICAgIDwvaW5wdXQ+DQotICAgIDxpbnB1dD4NCi0gICAgICA8dGFrZXNUeXBlc0Zyb20gaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLyIvPg0KLSAgICA8L2lucHV0Pg0KLSAgICA8b3duZWRNb2R1bGVFbGVtZW50IHhzaTp0eXBlPSJtdGw6UXVlcnkiIG5hbWU9Im1heEV4ZWN1dGlvblRpbWUiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJkaXNjb3ZlcmllcyIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIi8+DQotICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvT2NsQW55X0NsYXNzL2ludm9rZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5KSIgcmVmZXJyZWRWYXJpYWJsZT0iLzUiLz4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlbXBsYXRlLmh0bWwuSHRtbFJlcG9ydFNlcnZpY2VzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ibWF4RXhlY3V0aW9uVGltZShqYXZhLnV0aWwuQ29sbGVjdGlvbikiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29sbGVjdGlvbkxpdGVyYWxFeHAiIGVUeXBlPSIvMy9TZXF1ZW5jZShTZXQoRGlzY292ZXJ5KSkiIGtpbmQ9IlNlcXVlbmNlIj4NCi0gICAgICAgICAgPHBhcnQgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uSXRlbSIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICA8aXRlbSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJkaXNjb3ZlcmllcyIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9tYXhFeGVjdXRpb25UaW1lL2Rpc2NvdmVyaWVzIi8+DQotICAgICAgICAgIDwvcGFydD4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgPC9leHByZXNzaW9uPg0KLSAgICAgIDx0eXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgPC9vd25lZE1vZHVsZUVsZW1lbnQ+DQotICAgIDxvd25lZE1vZHVsZUVsZW1lbnQgeHNpOnR5cGU9Im10bDpRdWVyeSIgbmFtZT0ibWF4U2F2ZVRpbWUiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJkaXNjb3ZlcmllcyIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIi8+DQotICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvT2NsQW55X0NsYXNzL2ludm9rZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5KSIgcmVmZXJyZWRWYXJpYWJsZT0iLzgiLz4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlbXBsYXRlLmh0bWwuSHRtbFJlcG9ydFNlcnZpY2VzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ibWF4U2F2ZVRpbWUoamF2YS51dGlsLkNvbGxlY3Rpb24pIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25MaXRlcmFsRXhwIiBlVHlwZT0iLzMvU2VxdWVuY2UoU2V0KERpc2NvdmVyeSkpIiBraW5kPSJTZXF1ZW5jZSI+DQotICAgICAgICAgIDxwYXJ0IHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29sbGVjdGlvbkl0ZW0iIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgPGl0ZW0geHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iZGlzY292ZXJpZXMiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5KSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvbWF4U2F2ZVRpbWUvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgPC9wYXJ0Pg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICA8L2V4cHJlc3Npb24+DQotICAgICAgPHR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICA8L293bmVkTW9kdWxlRWxlbWVudD4NCi0gICAgPG93bmVkTW9kdWxlRWxlbWVudCB4c2k6dHlwZT0ibXRsOlF1ZXJ5IiBuYW1lPSJsZlRvQnIiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJzdHIiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvcGFyYW1ldGVyPg0KLSAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL09jbEFueV9DbGFzcy9pbnZva2UiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6QW55VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJzZWxmIiByZWZlcnJlZFZhcmlhYmxlPSIvMTEiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlbXBsYXRlLmh0bWwuSHRtbFJlcG9ydFNlcnZpY2VzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ibGZUb0JyKGphdmEubGFuZy5TdHJpbmcpIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25MaXRlcmFsRXhwIiBlVHlwZT0iLzMvU2VxdWVuY2UoU3RyaW5nKSIga2luZD0iU2VxdWVuY2UiPg0KLSAgICAgICAgICA8cGFydCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25JdGVtIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgPGl0ZW0geHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0ic3RyIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9sZlRvQnIvc3RyIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8L2l0ZW0+DQotICAgICAgICAgIDwvcGFydD4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgPC9leHByZXNzaW9uPg0KLSAgICAgIDx0eXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICA8L293bmVkTW9kdWxlRWxlbWVudD4NCi0gICAgPG93bmVkTW9kdWxlRWxlbWVudCB4c2k6dHlwZT0ibXRsOlF1ZXJ5IiBuYW1lPSJzaXplV2l0aFVuaXQiIHZpc2liaWxpdHk9IlB1YmxpYyI+DQotICAgICAgPHBhcmFtZXRlciBuYW1lPSJ2YWx1ZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgIDwvcGFyYW1ldGVyPg0KLSAgICAgIDxleHByZXNzaW9uIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCIgcmVmZXJyZWRPcGVyYXRpb249Ii8xL09jbEFueV9DbGFzcy9pbnZva2UiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6QW55VHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbEFueSIvPg0KLSAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJzZWxmIiByZWZlcnJlZFZhcmlhYmxlPSIvMTQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Im9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZW1wbGF0ZS5odG1sLkh0bWxSZXBvcnRTZXJ2aWNlcyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9InNpemVXaXRoVW5pdChqYXZhLmxhbmcuRG91YmxlKSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uTGl0ZXJhbEV4cCIgZVR5cGU9Ii8zL1NlcXVlbmNlKFJlYWwpIiBraW5kPSJTZXF1ZW5jZSI+DQotICAgICAgICAgIDxwYXJ0IHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29sbGVjdGlvbkl0ZW0iPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgPGl0ZW0geHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0idmFsdWUiIHJlZmVycmVkVmFyaWFibGU9Ii8wL3NpemVXaXRoVW5pdC92YWx1ZSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgIDwvaXRlbT4NCi0gICAgICAgICAgPC9wYXJ0Pg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICA8L2V4cHJlc3Npb24+DQotICAgICAgPHR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgIDwvb3duZWRNb2R1bGVFbGVtZW50Pg0KLSAgICA8b3duZWRNb2R1bGVFbGVtZW50IHhzaTp0eXBlPSJtdGw6UXVlcnkiIG5hbWU9InRpbWVXaXRoVW5pdCIgdmlzaWJpbGl0eT0iUHVibGljIj4NCi0gICAgICA8cGFyYW1ldGVyIG5hbWU9InZhbHVlIj4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgPC9wYXJhbWV0ZXI+DQotICAgICAgPGV4cHJlc3Npb24geHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIiByZWZlcnJlZE9wZXJhdGlvbj0iLzEvT2NsQW55X0NsYXNzL2ludm9rZSI+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InNlbGYiIHJlZmVycmVkVmFyaWFibGU9Ii8xNyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlbXBsYXRlLmh0bWwuSHRtbFJlcG9ydFNlcnZpY2VzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0idGltZVdpdGhVbml0KGphdmEubGFuZy5Eb3VibGUpIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbGxlY3Rpb25MaXRlcmFsRXhwIiBlVHlwZT0iLzMvU2VxdWVuY2UoUmVhbCkiIGtpbmQ9IlNlcXVlbmNlIj4NCi0gICAgICAgICAgPHBhcnQgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uSXRlbSI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICA8aXRlbSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJ2YWx1ZSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvdGltZVdpdGhVbml0L3ZhbHVlIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgPC9pdGVtPg0KLSAgICAgICAgICA8L3BhcnQ+DQotICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgIDwvZXhwcmVzc2lvbj4NCi0gICAgICA8dHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgPC9vd25lZE1vZHVsZUVsZW1lbnQ+DQotICAgIDxvd25lZE1vZHVsZUVsZW1lbnQgeHNpOnR5cGU9Im10bDpUZW1wbGF0ZSIgbmFtZT0iaHRtbFJlcG9ydCIgdmlzaWJpbGl0eT0iUHVibGljIiBtYWluPSJ0cnVlIj4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsiLz4NCi0gICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZpbGVCbG9jayIgb3Blbk1vZGU9Ik92ZXJXcml0ZSI+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0OyFET0NUWVBFIGh0bWwgUFVCTElDICZxdW90Oy0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOJnF1b3Q7JiN4QTsmcXVvdDtodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS10cmFuc2l0aW9uYWwuZHRkJnF1b3Q7PiYjeEE7Jmx0O2h0bWw+JiN4QTsmbHQ7aGVhZD4mI3hBOyYjeEE7Jmx0O3N0eWxlIHR5cGU9JnF1b3Q7dGV4dC9jc3MmcXVvdDs+JiN4QTsgIC5ncmFwaCB7JiN4QTsgICAgYmFja2dyb3VuZC1jb2xvcjogI0UwRTBFMDsmI3hBOyAgICBib3JkZXI6IHNvbGlkIDFweCBibGFjazsmI3hBOyAgfSYjeEE7ICAuZ3JhcGggdGQgeyYjeEE7ICAgIGZvbnQtZmFtaWx5OiB2ZXJkYW5hLCBhcmlhbCwgc2FucyBzZXJpZjsmI3hBOyAgfSYjeEE7ICAuYmFyIHsmI3hBOyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsmI3hBOyAgICB0ZXh0LWFsaWduOiByaWdodDsmI3hBOyAgICBib3JkZXI6IHNvbGlkIDFweCBibGFjazsmI3hBOyAgICB3aWR0aDogNDAwcHg7JiN4QTsgIH0mI3hBOyAgLmJhciBkaXYgeyAmI3hBOyAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjQTBBMEZGOyYjeEE7ICAgIHRleHQtYWxpZ246IHJpZ2h0OyYjeEE7ICAgIGZsb2F0OiBsZWZ0OyYjeEE7ICAgIGhlaWdodDogMjBweDsmI3hBOyAgfSYjeEE7ICBib2R5IHsmI3hBOyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsmI3hBOyAgfSYjeEE7ICB0ZCB7JiN4QTsgICAgdGV4dC1hbGlnbjogY2VudGVyOyYjeEE7ICB9JiN4QTsmbHQ7L3N0eWxlPiYjeEE7JiN4QTsmbHQ7dGl0bGU+TW9EaXNjbyBKYXZhIERpc2NvdmVyIEJlbmNobWFyayZsdDsvdGl0bGU+JiN4QTsmbHQ7L2hlYWQ+JiN4QTsmI3hBOyZsdDtib2R5PiYjeEE7JiN4QTsmbHQ7aDI+RXhlY3V0aW9uIHRpbWUgYnkgcHJvamVjdCBzaXplJmx0Oy9oMj4mI3hBOyYjeEE7Jmx0O2ltZyBzcmM9JnF1b3Q7ZXhlY3V0aW9uVGltZUJ5UHJvamVjdFNpemUucG5nJnF1b3Q7Lz4mI3hBOyYjeEE7Jmx0O2gyPlN5c3RlbSBJbmZvcm1hdGlvbiZsdDsvaDI+JiN4QTsgICZsdDt0YWJsZSBib3JkZXI9JnF1b3Q7MSZxdW90OyBjZWxscGFkZGluZz0mcXVvdDsyJnF1b3Q7IGNlbGxzcGFjaW5nPSZxdW90OzAmcXVvdDs+JiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5PUyBuYW1lJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0JlbmNobWFyay9vc05hbWUiLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsgICAgICAgJiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5PUyB2ZXJzaW9uJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0JlbmNobWFyay9vc1ZlcnNpb24iLz4NCi0gICAgICAgIDwvYm9keT4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsgICAgICAgJiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5PUyBhcmNoaXRlY3R1cmUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQmVuY2htYXJrL29zQXJjaGl0ZWN0dXJlIi8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAmbHQ7L3RyPiYjeEE7ICAgICAgICYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+TnVtYmVyIG9mIHByb2Nlc3NvciBjb3JlcyZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQmVuY2htYXJrL3Byb2Nlc3NvckNvdW50Ii8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAmbHQ7L3RyPiYjeEE7JiN4QTsgICAgJmx0O3RyPiYjeEE7ICAgICAgICZsdDt0aD5Qcm9jZXNzb3IgbmFtZSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvcHJvY2Vzc29yTmFtZSIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJmx0Oy90cj4mI3hBOyYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+UHJvY2Vzc29yIGRlc2NyaXB0aW9uJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0JlbmNobWFyay9wcm9jZXNzb3JEZXNjcmlwdGlvbiIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJmx0Oy90cj4mI3hBOyYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+UHJvY2Vzc29yIGNhY2hlIHNpemUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQmVuY2htYXJrL3Byb2Nlc3NvckNhY2hlU2l6ZSIvPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgJmx0Oy90cj4mI3hBOyYjeEE7ICAgICZsdDt0cj4mI3hBOyAgICAgICAmbHQ7dGg+U3lzdGVtIG1lbW9yeSZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYiIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9iIj4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9CZW5jaG1hcmsvc3lzdGVtTWVtb3J5Ii8+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAmbHQ7L3RyPiYjeEE7ICAmbHQ7L3RhYmxlPiYjeEE7JiN4QTsmbHQ7aDI+UmVzdWx0cyBPdmVydmlldyZsdDsvaDI+JiN4QTsmI3hBOyAgJmx0O3RhYmxlIGJvcmRlcj0mcXVvdDsxJnF1b3Q7IGNlbGxwYWRkaW5nPSZxdW90OzImcXVvdDsgY2VsbHNwYWNpbmc9JnF1b3Q7MCZxdW90Oz4mI3hBOyAgICAmbHQ7dHI+JiN4QTsgICAgICAgJmx0O3RoPlByb2plY3QmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5BdmVyYWdlIGRpc2NvdmVyeSB0aW1lJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+QXZlcmFnZSBzYXZlIHRpbWUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5OdW1iZXIgb2YgbW9kZWwgZWxlbWVudHMmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5Ub3RhbCBzaXplJmx0Oy90aD4mI3hBOyAgICAgICAmbHQ7dGg+QXZlcmFnZSBmaWxlIHNpemUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5Ub3RhbCBsaW5lcyZsdDsvdGg+JiN4QTsgICAgICAgJmx0O3RoPkF2ZXJhZ2UgbGluZXMgcGVyIGZpbGUmbHQ7L3RoPiYjeEE7ICAgICAgICZsdDt0aD5YTUkgc2l6ZSZsdDsvdGg+JiN4QTsgICAgICZsdDsvdHI+JiN4QTsiLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkxldEJsb2NrIj4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICAgICAgICAgJmx0O3RyPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L25hbWUiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJhdmVyYWdlZERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeS9hdmVyYWdlRXhlY3V0aW9uVGltZUluU2Vjb25kcyIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgKCZhbXA7c2lnbWE7ID0gIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkvZXhlY3V0aW9uVGltZVN0YW5kYXJkRGV2aWF0aW9uIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSJzKSZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJhdmVyYWdlZERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeS9hdmVyYWdlU2F2ZVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICgmYW1wO3NpZ21hOyA9ICIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImF2ZXJhZ2VkRGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvYXZlcmFnZWREaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5L3NhdmVUaW1lU3RhbmRhcmREZXZpYXRpb24iLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9InMpJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvbnVtYmVyT2ZNb2RlbEVsZW1lbnRzIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3QiLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3QpIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5L3Byb2plY3RzIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0L3RvdGFsU2l6ZUluQnl0ZXMiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChQcm9qZWN0KSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeS9wcm9qZWN0cyIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2ZpcnN0Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdC9hdmVyYWdlRmlsZVNpemVJbkJ5dGVzIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChQcm9qZWN0KSI+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5L3Byb2plY3RzIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2ZpcnN0Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3QvdG90YWxMaW5lcyIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAgICAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0Ii8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3QpIj4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkvcHJvamVjdHMiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdC9hdmVyYWdlTGluZXNQZXJGaWxlIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICAgICAgICAgJmx0O3RkPiIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6UXVlcnlJbnZvY2F0aW9uIiBkZWZpbml0aW9uPSIvMC9zaXplV2l0aFVuaXQiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMC4wIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L3htaVNpemVJbkJ5dGVzIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+JiN4QTsgICAgICAgICAmbHQ7L3RyPiYjeEE7Ii8+DQotICAgICAgICAgICAgPGxldFZhcmlhYmxlIG5hbWU9InByb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPGluaXRFeHByZXNzaW9uIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgIDwvaW5pdEV4cHJlc3Npb24+DQotICAgICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8bG9vcFZhcmlhYmxlIG5hbWU9ImF2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgIDxpdGVyU2V0IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChBdmVyYWdlZFByb2plY3REaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICAmbHQ7L3RhYmxlPiYjeEE7JiN4QTsiLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6SWZCbG9jayI+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7aDI+RXhlY3V0aW9uIHRpbWVzIHBlciBpdGVyYXRpb24mbHQ7L2gyPiYjeEE7JiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoMz4iLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeS9vY2N1cnJlbmNlcyIvPg0KLSAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9maXJzdCIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvbmFtZSIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9oMz4mI3hBOyIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6TGV0QmxvY2siPg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7Jmx0O3RhYmxlIHdpZHRoPSZxdW90OzYwMCZxdW90OyBjbGFzcz0mcXVvdDtncmFwaCZxdW90OyBjZWxsc3BhY2luZz0mcXVvdDs2JnF1b3Q7IGNlbGxwYWRkaW5nPSZxdW90OzAmcXVvdDs+JiN4QTsgICZsdDt0cj4mI3hBOyAgICAmbHQ7dGg+aXRlcmF0aW9uJmx0Oy90aD4mbHQ7dGg+cmVsYXRpdmUgZXhlY3V0aW9uIHRpbWUmbHQ7L3RoPiZsdDt0aD50aW1lJmx0Oy90aD4mI3hBOyAgJmx0Oy90cj4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiAgICAmbHQ7dHI+JiN4QTsgICAgICAmbHQ7dGQ+Ii8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImkiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9Ii8iLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3REaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeS9vY2N1cnJlbmNlcyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3Mvc2l6ZSIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiZsdDt0ZCBjbGFzcz0mcXVvdDtiYXImcXVvdDs+Jmx0O2RpdiBzdHlsZT0mcXVvdDt3aWR0aDogIi8+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS90b3RhbEV4ZWN1dGlvblRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9Im1heEV4ZWN1dGlvblRpbWUiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvbWF4RXhlY3V0aW9uVGltZSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8lMkYiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMTAwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKiIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIlJnF1b3Q7PiZsdDsvZGl2PiZsdDsvdGQ+Jmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvdGltZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvdG90YWxFeGVjdXRpb25UaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90ZD4mI3hBOyAgICAmbHQ7L3RyPiYjeEE7Ii8+DQotICAgICAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0icHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3REaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImF2ZXJhZ2VkRGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGFibGU+JiN4QTsmI3hBOyIvPg0KLSAgICAgICAgICAgICAgPGxldFZhcmlhYmxlIG5hbWU9Im1heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8aW5pdEV4cHJlc3Npb24geHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChQcm9qZWN0RGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImF2ZXJhZ2VkRGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8L2luaXRFeHByZXNzaW9uPg0KLSAgICAgICAgICAgICAgPC9sZXRWYXJpYWJsZT4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJhdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICA8L2xvb3BWYXJpYWJsZT4NCi0gICAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICAgIDwvaXRlclNldD4NCi0gICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICA8aWZFeHByIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImIiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvYiI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyay9kaXNjb3ZlcmllcyIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeS9vY2N1cnJlbmNlcyIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL3NpemUiLz4NCi0gICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpJbnRlZ2VyTGl0ZXJhbEV4cCIgaW50ZWdlclN5bWJvbD0iMSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlcl9DbGFzcy8lM0UiLz4NCi0gICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICA8L2JvZHk+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJiN4QTsiLz4NCi0gICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6SWZCbG9jayI+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7aDI+U2F2ZSB0aW1lcyBwZXIgaXRlcmF0aW9uJmx0Oy9oMj4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7aDM+Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3REaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9ImF2ZXJhZ2VkRGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVClfQ2xhc3MvZmlyc3QiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L25hbWUiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvaDM+JiN4QTsiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkxldEJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImI3hBOyZsdDt0YWJsZSB3aWR0aD0mcXVvdDs2MDAmcXVvdDsgY2xhc3M9JnF1b3Q7Z3JhcGgmcXVvdDsgY2VsbHNwYWNpbmc9JnF1b3Q7NiZxdW90OyBjZWxscGFkZGluZz0mcXVvdDswJnF1b3Q7PiYjeEE7ICAmbHQ7dHI+JiN4QTsgICAgJmx0O3RoPml0ZXJhdGlvbiZsdDsvdGg+Jmx0O3RoPnJlbGF0aXZlIHNhdmUgdGltZSZsdDsvdGg+Jmx0O3RoPnRpbWUocykmbHQ7L3RoPiYjeEE7ICAmbHQ7L3RyPiYjeEE7JiN4QTsiLz4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJtdGw6Rm9yQmxvY2siPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iICAgICZsdDt0cj4mI3hBOyAgICAgICZsdDt0ZD4iLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iLyIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJhdmVyYWdlZERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvYXZlcmFnZWREaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5L29jY3VycmVuY2VzIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9zaXplIi8+DQotICAgICAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvdGQ+Jmx0O3RkIGNsYXNzPSZxdW90O2JhciZxdW90Oz4mbHQ7ZGl2IHN0eWxlPSZxdW90O3dpZHRoOiAiLz4NCi0gICAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L3NhdmVUaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJtYXhTYXZlVGltZSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9tYXhTYXZlVGltZSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8lMkYiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpSZWFsTGl0ZXJhbEV4cCIgcmVhbFN5bWJvbD0iMTAwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKiIvPg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIlJnF1b3Q7PiZsdDsvZGl2PiZsdDsvdGQ+Jmx0O3RkPiIvPg0KLSAgICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvdGltZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3Zlcnkvc2F2ZVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7L3RkPiYjeEE7ICAgICZsdDsvdHI+JiN4QTsiLz4NCi0gICAgICAgICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeS9vY2N1cnJlbmNlcyIvPg0KLSAgICAgICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy90YWJsZT4mI3hBOyYjeEE7Ii8+DQotICAgICAgICAgICAgICA8bGV0VmFyaWFibGUgbmFtZT0ibWF4U2F2ZVRpbWUiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8aW5pdEV4cHJlc3Npb24geHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL21heFNhdmVUaW1lIj4NCi0gICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJhdmVyYWdlZERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvYXZlcmFnZWREaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVSZWZlcmVuY2UiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5L29jY3VycmVuY2VzIi8+DQotICAgICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPC9pbml0RXhwcmVzc2lvbj4NCi0gICAgICAgICAgICAgIDwvbGV0VmFyaWFibGU+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KEF2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3REaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KEF2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSkiPg0KLSAgICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICAgICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpX0NsYXNzL2ZpcnN0Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9zaXplIi8+DQotICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgPGFyZ3VtZW50IHhzaTp0eXBlPSJvY2wuZWNvcmU6SW50ZWdlckxpdGVyYWxFeHAiIGludGVnZXJTeW1ib2w9IjEiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXJfQ2xhc3MvJTNFIi8+DQotICAgICAgICAgIDwvaWZFeHByPg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7Jmx0O2gyPkRldGFpbGVkIFJlc3VsdHMmbHQ7L2gyPiYjeEE7Ii8+DQotICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOkZvckJsb2NrIj4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoMz4iLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIiBlVHlwZT0iLzMvT3JkZXJlZFNldChQcm9qZWN0RGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT3JkZXJlZFNldChUKV9DbGFzcy9maXJzdCIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9uYW1lIi8+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvaDM+JiN4QTsiLz4NCi0gICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpGb3JCbG9jayI+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoND5pdGVyYXRpb24gIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iaSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0Oy9oND4mI3hBOyZsdDtiPm5hbWUmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9uYW1lIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Jmx0O2I+ZGF0ZSZsdDsvYj46ICIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RURhdGFUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRURhdGUiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L2RpY292ZXJ5RGF0ZSIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPmFsZ29yaXRobSZsdDsvYj46ICIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L2FsZ29yaXRobVZhcmlhbnQiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5kaXNjb3ZlcmVyJmx0Oy9iPjogIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvZGlzY292ZXJlcklkIi8+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSIgKCIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyZXJDbGFzc05hbWUiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IikmbHQ7YnIvPiYjeEE7Jmx0O2I+c2F2ZSB0aW1lJmx0Oy9iPjogIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3Zlcnkvc2F2ZVRpbWVJblNlY29uZHMiLz4NCi0gICAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbF9DbGFzcy8rIi8+DQotICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPmV4ZWN1dGlvbiB0aW1lJmx0Oy9iPjogIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpRdWVyeUludm9jYXRpb24iIGRlZmluaXRpb249Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpPcGVyYXRpb25DYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlJlYWxMaXRlcmFsRXhwIiByZWFsU3ltYm9sPSIwLjAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJwcm9qZWN0RGlzY292ZXJ5IiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICA8L3NvdXJjZT4NCi0gICAgICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RUF0dHJpYnV0ZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkvdG90YWxFeGVjdXRpb25UaW1lSW5TZWNvbmRzIi8+DQotICAgICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgICAgIDxyZWZlcnJlZE9wZXJhdGlvbiB4c2k6dHlwZT0iZWNvcmU6RU9wZXJhdGlvbiIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWxfQ2xhc3MvKyIvPg0KLSAgICAgICAgICAgICAgPC9hcmd1bWVudD4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5tZXRhbW9kZWwgdmFyaWFudCZsdDsvYj46ICIvPg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L21ldGFNb2RlbFZhcmlhbnQiLz4NCi0gICAgICAgICAgICA8L2JvZHk+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtici8+JiN4QTsmbHQ7Yj5tYXggdXNlZCBtZW1vcnkmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9tYXhVc2VkTWVtb3J5SW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Jmx0O2I+bnVtYmVyIG9mIG1vZGVsIGVsZW1lbnRzJmx0Oy9iPjogIi8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L251bWJlck9mTW9kZWxFbGVtZW50cyIvPg0KLSAgICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ib2NsLmVjb3JlOlN0cmluZ0xpdGVyYWxFeHAiIHN0cmluZ1N5bWJvbD0iJmx0O2JyLz4mI3hBOyZsdDtiPlhNSSBmaWxlIHNpemUmbHQ7L2I+OiAiLz4NCi0gICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UmVhbExpdGVyYWxFeHAiIHJlYWxTeW1ib2w9IjAuMCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgIDxhcmd1bWVudCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS94bWlTaXplSW5CeXRlcyIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsX0NsYXNzLysiLz4NCi0gICAgICAgICAgICAgIDwvYXJndW1lbnQ+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7YnIvPiYjeEE7Ii8+DQotICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im10bDpJZkJsb2NrIj4NCi0gICAgICAgICAgICAgIDxib2R5IHhzaTp0eXBlPSJvY2wuZWNvcmU6U3RyaW5nTGl0ZXJhbEV4cCIgc3RyaW5nU3ltYm9sPSImbHQ7Yj5EaXNjb3ZlcnkgZXJyb3ImbHQ7L2I+OiZsdDtici8+JiN4QTsmbHQ7Zm9udCBjb2xvcj0mcXVvdDtyZWQmcXVvdDs+Ii8+DQotICAgICAgICAgICAgICA8Ym9keSB4c2k6dHlwZT0ibXRsOlF1ZXJ5SW52b2NhdGlvbiIgZGVmaW5pdGlvbj0iLzAvbGZUb0JyIj4NCi0gICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgICAgICAgICA8YXJndW1lbnQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InByb2plY3REaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFQXR0cmlidXRlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0Rpc2NvdmVyeS9kaXNjb3ZlcnlFcnJvciIvPg0KLSAgICAgICAgICAgICAgICA8L2FyZ3VtZW50Pg0KLSAgICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDsvZm9udD4mI3hBOyIvPg0KLSAgICAgICAgICAgICAgPGlmRXhwciB4c2k6dHlwZT0ib2NsLmVjb3JlOk9wZXJhdGlvbkNhbGxFeHAiPg0KLSAgICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3BlcmF0aW9uQ2FsbEV4cCI+DQotICAgICAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgICAgICAgICAgICA8c291cmNlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJvcGVydHlDYWxsRXhwIj4NCi0gICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0icHJvamVjdERpc2NvdmVyeSIgcmVmZXJyZWRWYXJpYWJsZT0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICAgICAgPHJlZmVycmVkUHJvcGVydHkgeHNpOnR5cGU9ImVjb3JlOkVBdHRyaWJ1dGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vRGlzY292ZXJ5L2Rpc2NvdmVyeUVycm9yIi8+DQotICAgICAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICAgICAgPHJlZmVycmVkT3BlcmF0aW9uIHhzaTp0eXBlPSJlY29yZTpFT3BlcmF0aW9uIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nX0NsYXNzL29jbElzVW5kZWZpbmVkIi8+DQotICAgICAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgICAgICA8cmVmZXJyZWRPcGVyYXRpb24geHNpOnR5cGU9ImVjb3JlOkVPcGVyYXRpb24iIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuX0NsYXNzL25vdCIvPg0KLSAgICAgICAgICAgICAgPC9pZkV4cHI+DQotICAgICAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgICAgIDxsb29wVmFyaWFibGUgbmFtZT0icHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgICAgPC9sb29wVmFyaWFibGU+DQotICAgICAgICAgICAgPGl0ZXJTZXQgeHNpOnR5cGU9Im9jbC5lY29yZTpQcm9wZXJ0eUNhbGxFeHAiIGVUeXBlPSIvMy9PcmRlcmVkU2V0KFByb2plY3REaXNjb3ZlcnkpIj4NCi0gICAgICAgICAgICAgIDxzb3VyY2UgeHNpOnR5cGU9Im9jbC5lY29yZTpWYXJpYWJsZUV4cCIgbmFtZT0iYXZlcmFnZWREaXNjb3ZlcnkiIHJlZmVycmVkVmFyaWFibGU9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgICAgICAgICAgICAgPC9zb3VyY2U+DQotICAgICAgICAgICAgICA8cmVmZXJyZWRQcm9wZXJ0eSB4c2k6dHlwZT0iZWNvcmU6RVJlZmVyZW5jZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3Zlcnkvb2NjdXJyZW5jZXMiLz4NCi0gICAgICAgICAgICA8L2l0ZXJTZXQ+DQotICAgICAgICAgICAgPGVhY2ggeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiZsdDtoci8+Ij4NCi0gICAgICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgICAgICA8L2VhY2g+DQotICAgICAgICAgIDwvYm9keT4NCi0gICAgICAgICAgPGxvb3BWYXJpYWJsZSBuYW1lPSJhdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgICAgICAgIDwvbG9vcFZhcmlhYmxlPg0KLSAgICAgICAgICA8aXRlclNldCB4c2k6dHlwZT0ib2NsLmVjb3JlOlByb3BlcnR5Q2FsbEV4cCIgZVR5cGU9Ii8zL09yZGVyZWRTZXQoQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5KSI+DQotICAgICAgICAgICAgPHNvdXJjZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlZhcmlhYmxlRXhwIiBuYW1lPSJiIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgICAgICAgICAgIDwvc291cmNlPg0KLSAgICAgICAgICAgIDxyZWZlcnJlZFByb3BlcnR5IHhzaTp0eXBlPSJlY29yZTpFUmVmZXJlbmNlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsvZGlzY292ZXJpZXMiLz4NCi0gICAgICAgICAgPC9pdGVyU2V0Pg0KLSAgICAgICAgPC9ib2R5Pg0KLSAgICAgICAgPGJvZHkgeHNpOnR5cGU9Im9jbC5lY29yZTpTdHJpbmdMaXRlcmFsRXhwIiBzdHJpbmdTeW1ib2w9IiYjeEE7Jmx0O3AvPiYjeEE7Jmx0O2hyLz4mI3hBOyZsdDtmb250IHNpemU9JnF1b3Q7LTEmcXVvdDs+Jmx0O2k+VGhpcyByZXBvcnQgaGFzIGJlZW4gZ2VuZXJhdGVkIHdpdGggJmx0O2EgaHJlZj0mcXVvdDtodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vJnF1b3Q7Pk1vRGlzY28mbHQ7L2E+IEphdmEgRGlzY292ZXJlciBCZW5jaG1hcmsuJmx0Oy9pPiZsdDsvZm9udD4mI3hBOyZsdDsvYm9keT4mbHQ7L2h0bWw+JiN4QTsiLz4NCi0gICAgICAgIDxmaWxlVXJsIHhzaTp0eXBlPSJvY2wuZWNvcmU6VmFyaWFibGVFeHAiIG5hbWU9InRhcmdldEZpbGVOYW1lIiByZWZlcnJlZFZhcmlhYmxlPSIvMC9odG1sUmVwb3J0L3RhcmdldEZpbGVOYW1lIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9maWxlVXJsPg0KLSAgICAgIDwvYm9keT4NCi0gICAgICA8cGFyYW1ldGVyIG5hbWU9ImIiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgICAgIDwvcGFyYW1ldGVyPg0KLSAgICAgIDxwYXJhbWV0ZXIgbmFtZT0idGFyZ2V0RmlsZU5hbWUiPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvcGFyYW1ldGVyPg0KLSAgICA8L293bmVkTW9kdWxlRWxlbWVudD4NCi0gIDwvbXRsOk1vZHVsZT4NCi0gIDxlY29yZTpFUGFja2FnZSBuYW1lPSJhZGRpdGlvbnMiPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlN0cmluZ19DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InN1YnN0aXR1dGUiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImluZGV4Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZmlyc3QiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im4iPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJsYXN0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJuIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3Ryc3RyIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3RydG9rIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzMSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmxhZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InN0cmNtcCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InMxIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJpc0FscGhhIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaXNBbHBoYW51bSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InRvVXBwZXJGaXJzdCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idG9Mb3dlckZpcnN0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJyZXBsYWNlIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJyZXBsYWNlbWVudCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0icmVwbGFjZUFsbCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InN1YnN0cmluZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0icmVwbGFjZW1lbnQiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InN1YnN0aXR1dGVBbGwiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJzdWJzdHJpbmciPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InJlcGxhY2VtZW50Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzdGFydHNXaXRoIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InN1YnN0cmluZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZW5kc1dpdGgiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9Cb29sZWFuIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ0cmltIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idG9rZW5pemUiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoU3RyaW5nKSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImRlbGltaXRlcnMiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImNvbnRhaW5zIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQm9vbGVhbiIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InN1YnN0cmluZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibWF0Y2hlcyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJyZWdleCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibGFzdEluZGV4Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvSW50ZWdlciIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InN1YnN0cmluZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZXF1YWxzSWdub3JlQ2FzZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0Jvb2xlYW4iLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJvdGhlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic3Vic3RyaW5nIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ic3RhcnRJbmRleCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9IisiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJvdGhlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOkFueVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xBbnkiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibGZUb0JyIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL2xmVG9CciIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IkludGVnZXJfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0ludGVnZXIiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idG9TdHJpbmciPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlJlYWxfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idG9TdHJpbmciPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InNpemVXaXRoVW5pdCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJ0aW1lV2l0aFVuaXQiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0Ii8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iRU9iamVjdF9DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJlQWxsQ29udGVudHMiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImVBbGxDb250ZW50cyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImFuY2VzdG9ycyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iYW5jZXN0b3JzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2libGluZ3MiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InNpYmxpbmdzIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZUludmVyc2UiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOk9yZGVyZWRTZXRUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9PcmRlcmVkU2V0KE9jbEFueSkiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJlSW52ZXJzZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3JkZXJlZFNldFR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL09yZGVyZWRTZXQoT2NsQW55KSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImZpbHRlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsVHlwZSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJwcmVjZWRpbmdTaWJsaW5ncyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0icHJlY2VkaW5nU2libGluZ3MiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImZpbHRlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsVHlwZSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJmb2xsb3dpbmdTaWJsaW5ncyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZm9sbG93aW5nU2libGluZ3MiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImZpbHRlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlR5cGVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsVHlwZSIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJlQ29udGFpbmVyIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vT2NsQW55Ii8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImVDb250ZW50cyI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6VHlwZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PY2xUeXBlIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImVHZXQiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RURhdGFUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRUphdmFPYmplY3QiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmZWF0dXJlTmFtZSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibWF4RXhlY3V0aW9uVGltZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9tYXhFeGVjdXRpb25UaW1lIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvUmVhbCIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImRpc2NvdmVyaWVzIiBlVHlwZT0iLzMvU2V0KERpc2NvdmVyeSkiLz4NCi0gICAgICA8L2VPcGVyYXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJtYXhTYXZlVGltZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZSIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJkaXNjb3ZlcmllcyIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibGZUb0JyIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL2xmVG9CciIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InN0ciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ic2l6ZVdpdGhVbml0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL3NpemVXaXRoVW5pdCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InZhbHVlIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0idGltZVdpdGhVbml0Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL3RpbWVXaXRoVW5pdCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InZhbHVlIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaHRtbFJlcG9ydCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0Ii8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iYiI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0idGFyZ2V0RmlsZU5hbWUiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9jbEFueV9DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InRvU3RyaW5nIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaW52b2tlIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iY2xhc3MiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9Im1ldGhvZCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iYXJndW1lbnRzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImN1cnJlbnQiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9PY2xBbnkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJpbmRleCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImN1cnJlbnQiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9PY2xBbnkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UHJvcGVydHkiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJrZXkiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9ImdldFByb3BlcnR5Ij4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0ia2V5Ij4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgICAgICAgPC9lUGFyYW1ldGVycz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJhcmd1bWVudHMiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvYWNjZWxlby9tdGwvMy4wL210bG5vbnN0ZGxpYi5lY29yZSMvL1NlcXVlbmNlKE9jbEFueSkiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UHJvcGVydHkiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJwcm9wZXJ0aWVzRmlsZU5hbWUiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImtleSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZ2V0UHJvcGVydHkiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJwcm9wZXJ0aWVzRmlsZU5hbWUiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9ImtleSI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iYXJndW1lbnRzIj4NCi0gICAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2FjY2VsZW8vbXRsLzMuMC9tdGxub25zdGRsaWIuZWNvcmUjLy9TZXF1ZW5jZShPY2xBbnkpIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9IisiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJvdGhlciI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQ29sbGVjdGlvbihUKV9DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvQ29sbGVjdGlvbihUKSIvPg0KLSAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJzZXAiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9hY2NlbGVvL210bC8zLjAvbXRsbm9uc3RkbGliLmVjb3JlIy8vU2VxdWVuY2UoT2NsQW55KSIvPg0KLSAgICAgICAgPGVQYXJhbWV0ZXJzIG5hbWU9InNlcGFyYXRvclN0cmluZyI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iZmlsdGVyIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwgbm9uLXN0YW5kYXJkIi8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpDb2xsZWN0aW9uVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL0NvbGxlY3Rpb24oVCkiLz4NCi0gICAgICAgIDxlUGFyYW1ldGVycyBuYW1lPSJmaWx0ZXIiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpUeXBlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09jbFR5cGUiLz4NCi0gICAgICAgIDwvZVBhcmFtZXRlcnM+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iU2VxdWVuY2UoVClfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1NlcXVlbmNlKFQpIi8+DQotICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgPGVPcGVyYXRpb25zIG5hbWU9InJldmVyc2UiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1NlcXVlbmNlKFQpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibGFzdEluZGV4T2YiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZWxlbWVudCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOkFueVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9UIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9Ik9yZGVyZWRTZXQoVClfQ2xhc3MiPg0KLSAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgPHJlZmVyZW5jZXMgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL09yZGVyZWRTZXQoVCkiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0icmV2ZXJzZSI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIG5vbi1zdGFuZGFyZCIvPg0KLSAgICAgICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3JkZXJlZFNldFR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9PcmRlcmVkU2V0KFQpIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibGFzdEluZGV4T2YiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCBub24tc3RhbmRhcmQiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9JbnRlZ2VyIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0iZWxlbWVudCI+DQotICAgICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOkFueVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9UIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIG5hbWU9IlNldChEaXNjb3ZlcnkpX0NsYXNzIj4NCi0gICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIiByZWZlcmVuY2VzPSIvMy9TZXQoRGlzY292ZXJ5KSIvPg0KLSAgICAgIDxlT3BlcmF0aW9ucyBuYW1lPSJtYXhFeGVjdXRpb25UaW1lIj4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9PQ0wiPg0KLSAgICAgICAgICA8Y29udGVudHMgeHNpOnR5cGU9Im9jbC5lY29yZTpDb25zdHJhaW50Ii8+DQotICAgICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJNVEwiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0ibWF4U2F2ZVRpbWUiPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICAgIDxjb250ZW50cyB4c2k6dHlwZT0ib2NsLmVjb3JlOkNvbnN0cmFpbnQiLz4NCi0gICAgICAgIDwvZUFubm90YXRpb25zPg0KLSAgICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Ik1UTCIgcmVmZXJlbmNlcz0iLzAvbWF4U2F2ZVRpbWUiLz4NCi0gICAgICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgICAgPC9lT3BlcmF0aW9ucz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgbmFtZT0iQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFya19DbGFzcyI+DQotICAgICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL09DTCI+DQotICAgICAgICA8cmVmZXJlbmNlcyBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gICAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgICA8ZU9wZXJhdGlvbnMgbmFtZT0iaHRtbFJlcG9ydCI+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvT0NMIj4NCi0gICAgICAgICAgPGNvbnRlbnRzIHhzaTp0eXBlPSJvY2wuZWNvcmU6Q29uc3RyYWludCIvPg0KLSAgICAgICAgPC9lQW5ub3RhdGlvbnM+DQotICAgICAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0iTVRMIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0Ii8+DQotICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8ZVBhcmFtZXRlcnMgbmFtZT0idGFyZ2V0RmlsZU5hbWUiPg0KLSAgICAgICAgICA8ZVR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpQcmltaXRpdmVUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvU3RyaW5nIi8+DQotICAgICAgICA8L2VQYXJhbWV0ZXJzPg0KLSAgICAgIDwvZU9wZXJhdGlvbnM+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPC9lY29yZTpFUGFja2FnZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8ZWNvcmU6RVBhY2thZ2UgbmFtZT0iY29sbGVjdGlvbnMiPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2V0VHlwZSIgbmFtZT0iU2V0KERpc2NvdmVyeSkiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuU2V0Ij4NCi0gICAgICA8ZWxlbWVudFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9EaXNjb3ZlcnkiLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIG5hbWU9IlNlcXVlbmNlKFNldChEaXNjb3ZlcnkpKSIgaW5zdGFuY2VDbGFzc05hbWU9ImphdmEudXRpbC5MaXN0IiBlbGVtZW50VHlwZT0iLzMvU2V0KERpc2NvdmVyeSkiLz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0ib2NsLmVjb3JlOlNlcXVlbmNlVHlwZSIgbmFtZT0iU2VxdWVuY2UoT2NsQW55KSIgaW5zdGFuY2VDbGFzc05hbWU9ImphdmEudXRpbC5MaXN0Ij4NCi0gICAgICA8ZWxlbWVudFR5cGUgeHNpOnR5cGU9Im9jbC5lY29yZTpBbnlUeXBlIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL29jbC8xLjEuMC9vY2xzdGRsaWIuZWNvcmUjLzAvT2NsQW55Ii8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6U2VxdWVuY2VUeXBlIiBuYW1lPSJTZXF1ZW5jZShTdHJpbmcpIiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS51dGlsLkxpc3QiPg0KLSAgICAgIDxlbGVtZW50VHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpTZXF1ZW5jZVR5cGUiIG5hbWU9IlNlcXVlbmNlKFJlYWwpIiBpbnN0YW5jZUNsYXNzTmFtZT0iamF2YS51dGlsLkxpc3QiPg0KLSAgICAgIDxlbGVtZW50VHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3JkZXJlZFNldFR5cGUiIG5hbWU9Ik9yZGVyZWRTZXQoQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5KSIgaW5zdGFuY2VDbGFzc05hbWU9ImphdmEudXRpbC5MaW5rZWRIYXNoU2V0Ij4NCi0gICAgICA8ZWxlbWVudFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gICAgPC9lQ2xhc3NpZmllcnM+DQotICAgIDxlQ2xhc3NpZmllcnMgeHNpOnR5cGU9Im9jbC5lY29yZTpPcmRlcmVkU2V0VHlwZSIgbmFtZT0iT3JkZXJlZFNldChQcm9qZWN0RGlzY292ZXJ5KSIgaW5zdGFuY2VDbGFzc05hbWU9ImphdmEudXRpbC5MaW5rZWRIYXNoU2V0Ij4NCi0gICAgICA8ZWxlbWVudFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgICA8ZUNsYXNzaWZpZXJzIHhzaTp0eXBlPSJvY2wuZWNvcmU6T3JkZXJlZFNldFR5cGUiIG5hbWU9Ik9yZGVyZWRTZXQoUHJvamVjdCkiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuTGlua2VkSGFzaFNldCI+DQotICAgICAgPGVsZW1lbnRUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdCIvPg0KLSAgICA8L2VDbGFzc2lmaWVycz4NCi0gICAgPGVDbGFzc2lmaWVycyB4c2k6dHlwZT0ib2NsLmVjb3JlOlNldFR5cGUiIGluc3RhbmNlQ2xhc3NOYW1lPSJqYXZhLnV0aWwuU2V0Ij4NCi0gICAgICA8ZWxlbWVudFR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICAgIDwvZUNsYXNzaWZpZXJzPg0KLSAgPC9lY29yZTpFUGFja2FnZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIi8+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5KSIvPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiIgZVR5cGU9Ii8zL1NldChEaXNjb3ZlcnkpIi8+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiIGVUeXBlPSIvMy9TZXQoRGlzY292ZXJ5KSIvPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1N0cmluZyIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9lbWYvMjAwMi9FY29yZSMvL0VPYmplY3QiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJvY2wuZWNvcmU6UHJpbWl0aXZlVHlwZSIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9vY2wvMS4xLjAvb2Nsc3RkbGliLmVjb3JlIy8wL1JlYWwiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvZW1mLzIwMDIvRWNvcmUjLy9FT2JqZWN0Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9SZWFsIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0ib2NsLmVjb3JlOlByaW1pdGl2ZVR5cGUiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvb2NsLzEuMS4wL29jbHN0ZGxpYi5lY29yZSMvMC9TdHJpbmciLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRNdWx0aURpc2NvdmVyeUJlbmNobWFyayIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkTXVsdGlEaXNjb3ZlcnlCZW5jaG1hcmsiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZFByb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vQXZlcmFnZWRQcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL1Byb2plY3REaXNjb3ZlcnkiLz4NCi0gIDwvb2NsLmVjb3JlOlZhcmlhYmxlPg0KLSAgPG9jbC5lY29yZTpWYXJpYWJsZSBuYW1lPSJzZWxmIj4NCi0gICAgPGVUeXBlIHhzaTp0eXBlPSJlY29yZTpFQ2xhc3MiIGhyZWY9Imh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvTW9EaXNjby9CZW5jaG1hcmsvMC45LjAvYmVuY2htYXJrIy8vUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9Qcm9qZWN0RGlzY292ZXJ5Ii8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL01vRGlzY28vQmVuY2htYXJrLzAuOS4wL2JlbmNobWFyayMvL0F2ZXJhZ2VkUHJvamVjdERpc2NvdmVyeSIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8b2NsLmVjb3JlOlZhcmlhYmxlIG5hbWU9InNlbGYiPg0KLSAgICA8ZVR5cGUgeHNpOnR5cGU9ImVjb3JlOkVDbGFzcyIgaHJlZj0iaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9Nb0Rpc2NvL0JlbmNobWFyay8wLjkuMC9iZW5jaG1hcmsjLy9BdmVyYWdlZE11bHRpRGlzY292ZXJ5QmVuY2htYXJrIi8+DQotICA8L29jbC5lY29yZTpWYXJpYWJsZT4NCi0gIDxvY2wuZWNvcmU6VmFyaWFibGUgbmFtZT0ic2VsZiI+DQotICAgIDxlVHlwZSB4c2k6dHlwZT0iZWNvcmU6RUNsYXNzIiBocmVmPSJodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi8yMDAyL0Vjb3JlIy8vRU9iamVjdCIvPg0KLSAgPC9vY2wuZWNvcmU6VmFyaWFibGU+DQotICA8ZWNvcmU6RUFubm90YXRpb24gc291cmNlPSJwb3NpdGlvbnMiPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjAiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1OTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUvZGlzY292ZXJpZXMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY1MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUvQGV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMyIgcmVmZXJlbmNlcz0iLzAvbWF4RXhlY3V0aW9uVGltZS9AZXhwcmVzc2lvbi9zZWxmIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iLTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40IiByZWZlcmVuY2VzPSIvMC9tYXhFeGVjdXRpb25UaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjUiIHJlZmVyZW5jZXM9Ii8wL21heEV4ZWN1dGlvblRpbWUvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNiIgcmVmZXJlbmNlcz0iLzAvbWF4RXhlY3V0aW9uVGltZS9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODE1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43IiByZWZlcmVuY2VzPSIvMC9tYXhFeGVjdXRpb25UaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4yL0BwYXJ0LjAvZGlzY292ZXJpZXMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjgxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOCIgcmVmZXJlbmNlcz0iLzAvbWF4U2F2ZVRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI4MTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEwMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45IiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZS9kaXNjb3ZlcmllcyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijg0NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iODc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTAiIHJlZmVyZW5jZXM9Ii8wL21heFNhdmVUaW1lL0BleHByZXNzaW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMSIgcmVmZXJlbmNlcz0iLzAvbWF4U2F2ZVRpbWUvQGV4cHJlc3Npb24vc2VsZiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTIiIHJlZmVyZW5jZXM9Ii8wL21heFNhdmVUaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iODkyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI5NzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzIiByZWZlcmVuY2VzPSIvMC9tYXhTYXZlVGltZS9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijk3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTAwOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQiIHJlZmVyZW5jZXM9Ii8wL21heFNhdmVUaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTAxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTAzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTUiIHJlZmVyZW5jZXM9Ii8wL21heFNhdmVUaW1lL0BleHByZXNzaW9uL0Bhcmd1bWVudC4yL0BwYXJ0LjAvZGlzY292ZXJpZXMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMDMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNiIgcmVmZXJlbmNlcz0iLzAvbGZUb0JyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTAzNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTIxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3IiByZWZlcmVuY2VzPSIvMC9sZlRvQnIvc3RyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTA1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTA3MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4IiByZWZlcmVuY2VzPSIvMC9sZlRvQnIvQGV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjE0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOSIgcmVmZXJlbmNlcz0iLzAvbGZUb0JyL0BleHByZXNzaW9uL3NlbGYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwIiByZWZlcmVuY2VzPSIvMC9sZlRvQnIvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMDkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMTcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMSIgcmVmZXJlbmNlcz0iLzAvbGZUb0JyL0BleHByZXNzaW9uL0Bhcmd1bWVudC4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTE3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTE5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjIiIHJlZmVyZW5jZXM9Ii8wL2xmVG9Cci9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyMDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEyMTMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzIiByZWZlcmVuY2VzPSIvMC9sZlRvQnIvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjIvQHBhcnQuMC9zdHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNCIgcmVmZXJlbmNlcz0iLzAvc2l6ZVdpdGhVbml0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTIxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1IiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQvdmFsdWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMjQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMjU3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjYiIHJlZmVyZW5jZXM9Ii8wL3NpemVXaXRoVW5pdC9AZXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE0MDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3IiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQvQGV4cHJlc3Npb24vc2VsZiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ii0xIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjgiIHJlZmVyZW5jZXM9Ii8wL3NpemVXaXRoVW5pdC9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjEyNzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjEzNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5IiByZWZlcmVuY2VzPSIvMC9zaXplV2l0aFVuaXQvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxMzU5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxMzkxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMCIgcmVmZXJlbmNlcz0iLzAvc2l6ZVdpdGhVbml0L0BleHByZXNzaW9uL0Bhcmd1bWVudC4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTM5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzEiIHJlZmVyZW5jZXM9Ii8wL3NpemVXaXRoVW5pdC9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMi9AcGFydC4wL3ZhbHVlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzIiIHJlZmVyZW5jZXM9Ii8wL3RpbWVXaXRoVW5pdCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE0MTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE2MDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMyIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0L3ZhbHVlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTQ0MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTQ1MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM0IiByZWZlcmVuY2VzPSIvMC90aW1lV2l0aFVuaXQvQGV4cHJlc3Npb24iPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDY1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNjA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNSIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0L0BleHByZXNzaW9uL3NlbGYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSItMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iLTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM2IiByZWZlcmVuY2VzPSIvMC90aW1lV2l0aFVuaXQvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNDcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNTUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zNyIgcmVmZXJlbmNlcz0iLzAvdGltZVdpdGhVbml0L0BleHByZXNzaW9uL0Bhcmd1bWVudC4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTU1NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTU4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzgiIHJlZmVyZW5jZXM9Ii8wL3RpbWVXaXRoVW5pdC9AZXhwcmVzc2lvbi9AYXJndW1lbnQuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE2MDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjM5IiByZWZlcmVuY2VzPSIvMC90aW1lV2l0aFVuaXQvQGV4cHJlc3Npb24vQGFyZ3VtZW50LjIvQHBhcnQuMC92YWx1ZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE1OTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjE2MDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTYwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzgxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjQxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNjk5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNzAwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjE3MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc4MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyNCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNzQ5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNjI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjYzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjYzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xL2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNjMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNjMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40NiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNjQwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNzExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNzEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjcxMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjcyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNDgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4zL2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyNzEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy40OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyNzI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iNzYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjgwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjgxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS41L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODAyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyODAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyODIwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iODEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjkwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMjkyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS43L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyOTA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41NSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyOTI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iODYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMjk5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzAwOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNTciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS45L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIyOTk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIyOTk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy41OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzAxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzA4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjkxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjU5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMDg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMTA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjExL2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMDg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMDg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEyIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzExMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzE4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9Ijk2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjYyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMTg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMjA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjEzL2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzMTg2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzMTg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzIwOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzI3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEwMSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy42NSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE1Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzI3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzI5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNS9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzI3NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzI3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjMyOTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM3MTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMDYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM3MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ3NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMjQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNjkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzc5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDc1NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM4NzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM5MDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMjYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTA3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzOTI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzkwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzkyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzOTUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTI3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzk1MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDAyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjMvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MDE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43NiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzk2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzk2OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuNzciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzOTcyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MDE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy43OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM5NzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM5ODkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjc5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDAyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDAzNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyOCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQwMzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQwODMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjgxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS41L2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDAzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDA1MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MDg1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTA5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTI4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjgzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDExMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDE3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjcvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MTIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTcxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44NSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDEyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDEyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuODYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MTI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MTcxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQxMjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQxNDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjg4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS44Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDE3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDE4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy44OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQxODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQyMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjkwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS45L2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDE4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDIwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDIzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDI1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MjU3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0Mjk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTEvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQyNzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjk0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQyOTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQzMTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEzIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDMyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDM5MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDMzMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDM5MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuOTciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjEzL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MzMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MzM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MzM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0MzkwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy45OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQzMzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQzNzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDMzOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDM2NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTAxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQzMzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQzNTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0MzkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDE1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTMxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwMyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NDE2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NDkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMDQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE1L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDQyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQ5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDQyOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQzMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ0MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ0OTIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwNyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTUvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ0MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ0NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEwOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTUvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDQzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDQ2MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTA5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9Ac291cmNlL0Bzb3VyY2UvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ0MzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ0NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjExMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NDk1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NTE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTMyIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjExMSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NTYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE3L0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NTUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE3L0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ1MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ1NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjExNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMTcvQHNvdXJjZS9Ac291cmNlL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTE4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NTM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE4Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDU2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDU4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEzMyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDU4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDY0MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTE3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDU4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDYyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTE4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4xOS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NTg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NjEzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMTkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjE5L0Bzb3VyY2UvQHNvdXJjZS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDU4OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDYwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTIwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ2NDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ2NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTIxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ2NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ3MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEyMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0Bib2R5LjAvQGJvZHkuMjEvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NjgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NzE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NjgwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0NjgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL0Bib2R5LjIxL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDY4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDcxNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDY4NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDcwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9AYm9keS4yMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ3MjAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ3NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxMzUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzc5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzg3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEyNSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMjgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xNy9AYm9keS4wL3Byb2plY3REaXNjb3ZlcnkvQGluaXRFeHByZXNzaW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzgzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzg3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTI5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9wcm9qZWN0RGlzY292ZXJ5L0Bpbml0RXhwcmVzc2lvbi9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzgzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzg2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTMwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGJvZHkuMC9wcm9qZWN0RGlzY292ZXJ5L0Bpbml0RXhwcmVzc2lvbi9Ac291cmNlL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzgzNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzg1NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTMxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvYXZlcmFnZWREaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIzNzIyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIzNzY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTI0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE3L0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMzc2OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMzc4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTMzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTcvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjM3NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjM3NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjEzNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE4Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDc2NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDc3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjEzOSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ3NzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTM2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ4MzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ4NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTM3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ4NzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2MTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTM4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDk0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDk0NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE0NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xMzkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0OTQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0OTkxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjEvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ5NDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ5ODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0OTQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0OTc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjEvQHNvdXJjZS9Ac291cmNlL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDk0OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDk2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNDk5MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNDk5OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE0NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0OTk5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NjA4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTQ2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0NSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMy9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTA3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTIzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE0NyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNDYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUyMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU1OTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUzMDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzMjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTQ4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvaSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUzMjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUzMjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE0OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MzI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MzMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTU1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE1MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MzMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MzY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS4zL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MzMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MzYwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS4zL0Bzb3VyY2UvYXZlcmFnZWREaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1MzMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MzQ4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTM3MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1NSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS41Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQ4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQ3NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NDExIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NDU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS41L0Bzb3VyY2UvQHNvdXJjZS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTU4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL21heEV4ZWN1dGlvblRpbWUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NDU4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NDc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNTkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS41L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTQ3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTQ4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTYwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU0ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU1MDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTYxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU1MDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU1NjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE2MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTE2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTY2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NTE2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NTE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTUyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTU2NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTUyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTUzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuOCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU1NjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU1ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUyMzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUyNzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTY4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1Mjc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1MzAzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNjkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AaXRlclNldC9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUyNzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUyOTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGJvZHkuMy9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTU5MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTYwMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE1OCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AYm9keS4xL0Bib2R5LjMvbWF4RXhlY3V0aW9uVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjUwMDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjUwNzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTcyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL21heEV4ZWN1dGlvblRpbWUvQGluaXRFeHByZXNzaW9uIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTAzMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTA3OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTczIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL21heEV4ZWN1dGlvblRpbWUvQGluaXRFeHByZXNzaW9uL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTA0OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTA3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTc0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AYm9keS4zL21heEV4ZWN1dGlvblRpbWUvQGluaXRFeHByZXNzaW9uL0Bhcmd1bWVudC4wL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTA0OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTA2NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTc1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ4NzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ5MjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNDQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTc2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMTkvQGJvZHkuMS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ5MjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ5MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0Bib2R5LjEvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ5MjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ5MjciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE3OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0NzgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODMxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xNzkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0Nzg0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ3ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ4MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0Nzg0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0Nzg0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0Nzk3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4xOS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjQ3ODQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjQ3ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4NCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjE5L0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI0ODI5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI0ODMwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xODUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2MjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2MjMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTg2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1Njc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NzEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NzEyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTY3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE4OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU3ODIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU3ODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTkwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4xIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTc4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTgzMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTkxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1Nzg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1ODI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjEvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTc4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTgxNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTkzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4xL0Bzb3VyY2UvQHNvdXJjZS9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU3ODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU4MDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5NCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU4MzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU4MzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTk1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTgzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjQxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE2OSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4xOTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU5MDgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYwNTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNzAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMTk3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MDU3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MzkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTc2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MTMzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTUyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTc3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjE5OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL2kiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MTUzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MTU0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMDAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS4yIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjE1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3OCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMDEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS4zIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjE1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE5NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjAyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuMy9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjE1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjAzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuMy9Ac291cmNlL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjE1OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjE3NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjA0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYxOTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYyMzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNzgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjA1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYyMzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYyOTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwNiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjUvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYyMzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYyODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwNyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjUvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjIzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjI3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjA4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNS9Ac291cmNlL0Bzb3VyY2UvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYyMzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYyNTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIwOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjUvQHNvdXJjZS9tYXhTYXZlVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYyNzUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYyODYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjUvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2Mjg5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2Mjk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS42Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjI5NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjMxNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3OCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjMxNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjM2OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjEzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjEvQGJvZHkuNy9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYzMjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYzNjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYzMjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYzMzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIxNSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0Bib2R5LjcvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MzM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MzY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS43L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2MzM0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2MzUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AYm9keS44Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjM3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjM4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3OCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjA2MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjA5OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE3NiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMTkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvQGJvZHkuMS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjYxMDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjYxMzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyMCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9AYm9keS4xL0BpdGVyU2V0L2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjEwMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjExOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjIxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2Mzk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NDA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTgxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9tYXhTYXZlVGltZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU4NDMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU5MDYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjIzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AYm9keS4zL21heFNhdmVUaW1lL0Bpbml0RXhwcmVzc2lvbiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU4NjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU5MDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyNCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGJvZHkuMy9tYXhTYXZlVGltZS9AaW5pdEV4cHJlc3Npb24vQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1ODc3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1OTA2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMjUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AYm9keS4xL0Bib2R5LjMvbWF4U2F2ZVRpbWUvQGluaXRFeHByZXNzaW9uL0Bhcmd1bWVudC4wL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNTg3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNTg5NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjI2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU3MTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU3NjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxNjciLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjI3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjEvQGJvZHkuMS9AaXRlclNldCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU3NjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU3NzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0Bib2R5LjEvQGl0ZXJTZXQvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU3NjUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU3NjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIyOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjI3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1Njc1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NjcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2NjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzMiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NjUwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjI4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1NjQxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9Ac291cmNlL0Bzb3VyY2UvYiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjU2MjgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjU2MjkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzNSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIxL0BpZkV4cHIvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI1NjczIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI1Njc0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yMzYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY0MjQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY0NTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxODYiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjM3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NDUxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NjIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTg4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzOCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NTI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTg5Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjIzOSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NTY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4xL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NTI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NTY0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4xL0Bzb3VyY2UvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY1MjYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY1NTUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI0MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjEvQHNvdXJjZS9Ac291cmNlL2F2ZXJhZ2VkRGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjUyNiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjU0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjQzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY1NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY1NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxODkiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjQ0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY1NzciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc2MTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxOTAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjQ1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjY3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjY4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5MSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL2kiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2Njg4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2Njg5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNDciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NjkxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NzEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTkxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI0OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY3MTEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY3MzIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI0OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMy9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjcxMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjcyNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjUwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS40Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjczNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjc1MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5MiIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNTEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NzU0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NzgzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNTIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjUvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY3NTQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY3NzAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuNiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY3ODUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY4MDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxOTMiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjU0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS43Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjgxMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjg0MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjU1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS43L3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2ODEwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2ODI2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjgiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2ODQ1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2ODcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTk0Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuOSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY4NzEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY5MDAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI1OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuOS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjg3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjg4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjU5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY5MDIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY5MDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxOTUiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjYwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xMSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY5MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY5NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTEvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY5MDUiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY5MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2MiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTIiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2OTQzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2OTY4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTk1Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTMiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2OTY5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MDIzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNjQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjEzL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjk4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzAyMiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjY1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xMy9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjk4MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjk4NSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjY2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY5ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcwMjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2NyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTMvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY5ODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcwMDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MDI1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MDU0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTk2Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI2OSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTUiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MDU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTE5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjE1L0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzA2OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzExOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjcxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xNS9AYXJndW1lbnQuMC9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzA2OCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzA3MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjcyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xNS9AYXJndW1lbnQuMC9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcwNzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcxMTgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3MyIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTUvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcwNzQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcwOTAiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3NCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTYiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTIxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTUzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMTk3Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI3NSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTciPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTU0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTg3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjE3L3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MTU0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MTcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjE4Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzE4OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzIxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5OCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yNzgiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjE5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzIyMCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzI3NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjc5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4xOS9AYXJndW1lbnQuMCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcyMzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcyNzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4MCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTkvQGFyZ3VtZW50LjAvQHNvdXJjZSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjcyMzMiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjcyMzYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4MSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMTkvQGFyZ3VtZW50LjAvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MjM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3Mjc2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODIiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjE5L0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wL3Byb2plY3REaXNjb3ZlcnkiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3MjM5Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3MjU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODMiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjIwIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzI3OSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzMxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5OSIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjIxIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzMxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzM1NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjg1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yMS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzMxOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzMzNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjg2IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjczNTkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjczODciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyMDAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjg3IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yMyI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjczODgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc0MzkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI4OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMjMvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NDAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NDM4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yODkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjIzL0Bhcmd1bWVudC4wL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NDAxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NDA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTAiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjIzL0Bhcmd1bWVudC4wL0Bhcmd1bWVudC4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQzOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjkxIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yMy9AYXJndW1lbnQuMC9AYXJndW1lbnQuMC9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQyMyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjkyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yNCI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc0NDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc0NDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyMDEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjkzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yNSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc0NDciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc2MDkiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyMDIiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjk0IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yNS9AYm9keS4wIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzUwNyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzU1NCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIwMyIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTUiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjI1L0Bib2R5LjEiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NTU1Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NTk0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTYiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjI1L0Bib2R5LjEvQGFyZ3VtZW50LjAiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NTYyIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NTkzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4yOTciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjI1L0Bib2R5LjEvQGFyZ3VtZW50LjAvcHJvamVjdERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc1NjIiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc1NzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjI5OCIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGJvZHkuMjUvQGJvZHkuMiI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9Ijc1OTYiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9Ijc2MDQiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIyMDQiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMjk5IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yNS9AaWZFeHByIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQ1MSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzUwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzAwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yNS9AaWZFeHByL0Bzb3VyY2UiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NDU2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3NTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDEiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0Bib2R5LjI1L0BpZkV4cHIvQHNvdXJjZS9Ac291cmNlIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQ1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQ4NyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzAyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AYm9keS4yNS9AaWZFeHByL0Bzb3VyY2UvQHNvdXJjZS9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNzQ1NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNzQ3MiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzAzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9wcm9qZWN0RGlzY292ZXJ5Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjU4MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjYxOCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjE5MCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDQiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AYm9keS4zL0BpdGVyU2V0Ij4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjYyMSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjY1MCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzA1IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGJvZHkuMy9AaXRlclNldC9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY2MjEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY2MzgiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIwIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMwNiIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL0Bib2R5LjIzL0Bib2R5LjMvQGVhY2giPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NjYzIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NjcwIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDciIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9hdmVyYWdlZERpc2NvdmVyeSI+DQotICAgICAgPGRldGFpbHMga2V5PSJzdGFydCIgdmFsdWU9IjY0NTciLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImVuZCIgdmFsdWU9IjY1MDEiLz4NCi0gICAgICA8ZGV0YWlscyBrZXk9ImxpbmUiIHZhbHVlPSIxODgiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzA4IiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjMvQGl0ZXJTZXQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI2NTA0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI2NTE3Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMCIvPg0KLSAgICA8L2VBbm5vdGF0aW9ucz4NCi0gICAgPGVBbm5vdGF0aW9ucyBzb3VyY2U9InBvc2l0aW9ucy4zMDkiIHJlZmVyZW5jZXM9Ii8wL2h0bWxSZXBvcnQvQGJvZHkuMS9AYm9keS4yMy9AaXRlclNldC9iIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iNjUwNCIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iNjUwNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzEwIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L0Bib2R5LjEvQGJvZHkuMjQiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSI3NjI0Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSI3Nzk4Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjA4Ii8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgICA8ZUFubm90YXRpb25zIHNvdXJjZT0icG9zaXRpb25zLjMxMSIgcmVmZXJlbmNlcz0iLzAvaHRtbFJlcG9ydC9AYm9keS4xL3RhcmdldEZpbGVOYW1lIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTcyNSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTczOSIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjAiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzEyIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L2IiPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ic3RhcnQiIHZhbHVlPSIxNjM2Ii8+DQotICAgICAgPGRldGFpbHMga2V5PSJlbmQiIHZhbHVlPSIxNjcxIi8+DQotICAgICAgPGRldGFpbHMga2V5PSJsaW5lIiB2YWx1ZT0iMjEiLz4NCi0gICAgPC9lQW5ub3RhdGlvbnM+DQotICAgIDxlQW5ub3RhdGlvbnMgc291cmNlPSJwb3NpdGlvbnMuMzEzIiByZWZlcmVuY2VzPSIvMC9odG1sUmVwb3J0L3RhcmdldEZpbGVOYW1lIj4NCi0gICAgICA8ZGV0YWlscyBrZXk9InN0YXJ0IiB2YWx1ZT0iMTY3MyIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0iZW5kIiB2YWx1ZT0iMTY5NiIvPg0KLSAgICAgIDxkZXRhaWxzIGtleT0ibGluZSIgdmFsdWU9IjIxIi8+DQotICAgIDwvZUFubm90YXRpb25zPg0KLSAgPC9lY29yZTpFQW5ub3RhdGlvbj4NCi08L3htaTpYTUk+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL2VtdGxDb3B5LmJ1aWxkLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay9lbXRsQ29weS5idWlsZC54bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDVjMzA3ZTYuLjAwMDAwMDAKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL2VtdGxDb3B5LmJ1aWxkLnhtbAorKysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLTwhLS0NCi1Db3B5cmlnaHQgKGMpIDIwMDkgTWlhLVNvZnR3YXJlLg0KLUFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCi1hcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCi13aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KLWh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQotDQotQ29udHJpYnV0b3JzOg0KLSAgICBHcmVnb2lyZSBEVVBFIChNaWEtU29mdHdhcmUpDQotICAgIE5pY29sYXMgQnJvcyAoTWlhLVNvZnR3YXJlKQ0KLS0tPg0KLQ0KLTxwcm9qZWN0IG5hbWU9ImVtdGxDb3B5IiBkZWZhdWx0PSJlbXRsQ29weSI+DQotCTxwcm9wZXJ0eSBuYW1lPSJodG1sUmVwb3J0LmVtdGwuZGlyIiB2YWx1ZT0ib3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvYmVuY2htYXJrL3RlbXBsYXRlL2h0bWwiPjwvcHJvcGVydHk+DQotCTxwcm9wZXJ0eSBuYW1lPSJodG1sUmVwb3J0LmVtdGwiIHZhbHVlPSIke2h0bWxSZXBvcnQuZW10bC5kaXJ9L2h0bWxSZXBvcnQuZW10bCI+PC9wcm9wZXJ0eT4NCi0JPHByb3BlcnR5IG5hbWU9Imh0bWxSZXBvcnQyLmVtdGwiIHZhbHVlPSIke2h0bWxSZXBvcnQuZW10bC5kaXJ9L2h0bWxSZXBvcnQyLmVtdGwiPjwvcHJvcGVydHk+DQotCTx0YXJnZXQgbmFtZT0iZW10bENvcHkiPg0KLQkJPGNvcHkgZmlsZT0iJHtiYXNlZGlyfS9iaW4vJHtodG1sUmVwb3J0LmVtdGx9IiB0b2ZpbGU9IiR7YmFzZWRpcn0vZW10bC8ke2h0bWxSZXBvcnQuZW10bH0iLz4NCi0JCTxjb3B5IGZpbGU9IiR7YmFzZWRpcn0vYmluLyR7aHRtbFJlcG9ydDIuZW10bH0iIHRvZmlsZT0iJHtiYXNlZGlyfS9lbXRsLyR7aHRtbFJlcG9ydDIuZW10bH0iLz4NCi0JPC90YXJnZXQ+DQotCTx0YXJnZXQgbmFtZT0iZW10bENvcHlCYWNrIj4NCi0JCTxjb3B5IGZpbGU9ImVtdGwvJHtodG1sUmVwb3J0LmVtdGx9IiB0b2ZpbGU9ImJpbi8ke2h0bWxSZXBvcnQuZW10bH0iLz4NCi0JCTxjb3B5IGZpbGU9ImVtdGwvJHtodG1sUmVwb3J0Mi5lbXRsfSIgdG9maWxlPSJiaW4vJHtodG1sUmVwb3J0Mi5lbXRsfSIvPg0KLQk8L3RhcmdldD4NCi08L3Byb2plY3Q+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3BvbS54c2wgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsvcG9tLnhzbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NDJkMjBkCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrL3BvbS54c2wKQEAgLTAsMCArMSwxMjcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+DQorPCEtLSANCitDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgTWlhLVNvZnR3YXJlLg0KK0FsbCByaWdodHMgcmVzZXJ2ZWQuDQorVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgDQordGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIA0KK2FuZCBpcyBhdmFpbGFibGUgYXQgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwNCitDb250cmlidXRvcnM6DQorICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0MTM3NDkgLSBNaXNzaW5nIEdlbmVyYXRlSmF2YS5lbXRsIGZpbGUgaW4gbW9kaXNjbyBqYXZhIGdlbmVyYXRvciBwbHVnaW4NCisgICAgR3LDqWdvaXJlIER1cMOpIChNaWEtU29mdHdhcmUpIC0gQnVnIDQ2ODYyMCAtIFtVbml0IFRlc3QgRmFpbHVyZV0gb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzLkphdmFEaXNjb3ZlcmVyQmVuY2htYXJrVGVzdC50ZXN0MDAxDQorLS0+DQorPHhzbDpzdHlsZXNoZWV0IHZlcnNpb249IjEuMCINCisJeG1sbnM6eHNsPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L1hTTC9UcmFuc2Zvcm0iIHhtbG5zOmV4c2w9Imh0dHA6Ly9leHNsdC5vcmcvY29tbW9uIg0KKwlleHRlbnNpb24tZWxlbWVudC1wcmVmaXhlcz0iZXhzbCIgeG1sbnM6bTI9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCINCisJeG1sbnM9Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCI+DQorCTx4c2w6b3V0cHV0IGluZGVudD0ieWVzIiAvPg0KKw0KKwk8eHNsOnRlbXBsYXRlIG1hdGNoPSIvIj4NCisJCQ0KKwkJPHByb2plY3QNCisJCQl4c2k6c2NoZW1hTG9jYXRpb249Imh0dHA6Ly9tYXZlbi5hcGFjaGUub3JnL1BPTS80LjAuMCBodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy94c2QvbWF2ZW4tNC4wLjAueHNkIg0KKwkJCXhtbG5zPSJodHRwOi8vbWF2ZW4uYXBhY2hlLm9yZy9QT00vNC4wLjAiDQorCQkJeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSI+DQorCQkJPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PSIvL20yOnByb2plY3QvKltuYW1lKCkhPSdidWlsZCddIiAvPg0KKwkJCTxwcm9wZXJ0aWVzPg0KKwkJCQk8ZWNsaXBzZS1zaXRlPmh0dHA6Ly9kb3dubG9hZC5lY2xpcHNlLm9yZy9yZWxlYXNlcy9pbmRpZ288L2VjbGlwc2Utc2l0ZT4NCisJCQkJPHBsYXRmb3JtLXZlcnNpb24+WzMuNywzLjgpPC9wbGF0Zm9ybS12ZXJzaW9uPg0KKwkJCTwvcHJvcGVydGllcz4NCisJCQk8cmVwb3NpdG9yaWVzPg0KKwkJCQk8cmVwb3NpdG9yeT4NCisJCQkJCTxpZD5FY2xpcHNlIC0gQWNjZWxlbyBTbmFwc2hvdHM8L2lkPg0KKwkJCQkJPHVybD5odHRwczovL3JlcG8uZWNsaXBzZS5vcmcvY29udGVudC9yZXBvc2l0b3JpZXMvYWNjZWxlby1zbmFwc2hvdHM8L3VybD4NCisJCQkJPC9yZXBvc2l0b3J5Pg0KKwkJCQk8cmVwb3NpdG9yeT4NCisJCQkJCTxpZD5FY2xpcHNlIC0gQWNjZWxlbyBSZWxlYXNlPC9pZD4NCisJCQkJCTx1cmw+aHR0cHM6Ly9yZXBvLmVjbGlwc2Uub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL2FjY2VsZW8tcmVsZWFzZXM8L3VybD4NCisJCQkJPC9yZXBvc2l0b3J5Pg0KKwkJCTwvcmVwb3NpdG9yaWVzPg0KKwkJDQorCQkJPHBsdWdpblJlcG9zaXRvcmllcz4NCisJCQkJPHBsdWdpblJlcG9zaXRvcnk+DQorCQkJCQk8aWQ+RWNsaXBzZSAtIEFjY2VsZW8gU25hcHNob3RzPC9pZD4NCisJCQkJCTx1cmw+aHR0cHM6Ly9yZXBvLmVjbGlwc2Uub3JnL2NvbnRlbnQvcmVwb3NpdG9yaWVzL2FjY2VsZW8tc25hcHNob3RzPC91cmw+DQorCQkJCTwvcGx1Z2luUmVwb3NpdG9yeT4NCisJCQkJPHBsdWdpblJlcG9zaXRvcnk+DQorCQkJCQk8aWQ+RWNsaXBzZSAtIEFjY2VsZW8gUmVsZWFzZTwvaWQ+DQorCQkJCQk8dXJsPmh0dHBzOi8vcmVwby5lY2xpcHNlLm9yZy9jb250ZW50L3JlcG9zaXRvcmllcy9hY2NlbGVvLXJlbGVhc2VzPC91cmw+DQorCQkJCTwvcGx1Z2luUmVwb3NpdG9yeT4NCisJCQk8L3BsdWdpblJlcG9zaXRvcmllcz4NCisNCisJCQk8ZGVwZW5kZW5jaWVzPg0KKwkJCQk8ZGVwZW5kZW5jeT4NCisJCQkJCTxncm91cElkPm9yZy5lY2xpcHNlLmFjY2VsZW88L2dyb3VwSWQ+DQorCQkJCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hY2NlbGVvLm1hdmVuPC9hcnRpZmFjdElkPg0KKwkJCQkJPHZlcnNpb24+My41LjAtU05BUFNIT1Q8L3ZlcnNpb24+DQorCQkJCTwvZGVwZW5kZW5jeT4NCisJCQkJPGRlcGVuZGVuY3k+DQorCQkJCQk8Z3JvdXBJZD5vcmcuZWNsaXBzZS5hY2NlbGVvPC9ncm91cElkPg0KKwkJCQkJPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UuYWNjZWxlby5lbmdpbmU8L2FydGlmYWN0SWQ+DQorCQkJCQk8dmVyc2lvbj4zLjUuMC1TTkFQU0hPVDwvdmVyc2lvbj4NCisJCQkJPC9kZXBlbmRlbmN5Pg0KKwkJCQk8ZGVwZW5kZW5jeT4NCisJCQkJCTxncm91cElkPm9yZy5zbGY0ajwvZ3JvdXBJZD4NCisJCQkJCTxhcnRpZmFjdElkPnNsZjRqLXNpbXBsZTwvYXJ0aWZhY3RJZD4NCisJCQkJCTx2ZXJzaW9uPjEuNi40PC92ZXJzaW9uPg0KKwkJCQk8L2RlcGVuZGVuY3k+DQorCQkJPC9kZXBlbmRlbmNpZXM+DQorCQkJDQorCQkJPGJ1aWxkPg0KKwkJCQk8cGx1Z2lucz4NCisJCQkJCTx4c2w6Y29weS1vZiBzZWxlY3Q9Ii8vbTI6cHJvamVjdC9idWlsZC9wbHVnaW5zLyoiLz4NCisJCQkJCTxwbHVnaW4+DQorCQkJCQkJPGdyb3VwSWQ+b3JnLmVjbGlwc2UuYWNjZWxlbzwvZ3JvdXBJZD4NCisJCQkJCQk8YXJ0aWZhY3RJZD5vcmcuZWNsaXBzZS5hY2NlbGVvLm1hdmVuPC9hcnRpZmFjdElkPg0KKwkJCQkJCTx2ZXJzaW9uPjMuNS4wLVNOQVBTSE9UPC92ZXJzaW9uPg0KKwkJCQkJCTxleGVjdXRpb25zPg0KKwkJCQkJCQk8ZXhlY3V0aW9uPg0KKwkJCQkJCQkJPGdvYWxzPg0KKwkJCQkJCQkJCTxnb2FsPmFjY2VsZW8tY29tcGlsZTwvZ29hbD4NCisJCQkJCQkJCTwvZ29hbHM+DQorCQkJCQkJCQk8cGhhc2U+Y29tcGlsZTwvcGhhc2U+DQorCQkJCQkJCTwvZXhlY3V0aW9uPg0KKwkJCQkJCTwvZXhlY3V0aW9ucz4NCisJCQkJCQk8Y29uZmlndXJhdGlvbj4NCisJCQkJCQkJPHVzZUJpbmFyeVJlc291cmNlcz5mYWxzZTwvdXNlQmluYXJ5UmVzb3VyY2VzPg0KKwkJCQkJCQk8dXNlUGxhdGZvcm1SZXNvdXJjZVBhdGg+dHJ1ZTwvdXNlUGxhdGZvcm1SZXNvdXJjZVBhdGg+DQorCQkJCQkJCTxhY2NlbGVvUHJvamVjdD4NCisJCQkJCQkJCTxyb290PiR7YmFzZWRpcn08L3Jvb3Q+DQorCQkJCQkJCQk8ZW50cmllcz4NCisJCQkJCQkJCQk8ZW50cnk+DQorCQkJCQkJCQkJCTxpbnB1dD5zcmMvPC9pbnB1dD4NCisJCQkJCQkJCQkJPG91dHB1dD5fX3RhcmdldF9fL2NsYXNzZXM8L291dHB1dD4NCisJCQkJCQkJCQk8L2VudHJ5Pg0KKwkJCQkJCQkJPC9lbnRyaWVzPg0KKwkJCQkJCQkJPGphcnM+DQorCQkJCQkJCQkJPGphcj5wMi5lY2xpcHNlLXBsdWdpbjpvcmcuZWNsaXBzZS5lbWYuZWNvcmU8L2phcj4NCisJCQkJCQkJCQk8amFyPm9yZy5lY2xpcHNlLm1kdDpvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsuamF2YUJlbmNobWFyazwvamFyPg0KKwkJCQkJCQkJCTxqYXI+b3JnLmVjbGlwc2UubWR0Om9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyazwvamFyPg0KKwkJCQkJCQkJPC9qYXJzPg0KKwkJCQkJCQk8L2FjY2VsZW9Qcm9qZWN0Pg0KKwkJCQkJCQk8cGFja2FnZXNUb1JlZ2lzdGVyPg0KKwkJCQkJCQkJPHBhY2thZ2VUb1JlZ2lzdGVyPm9yZy5lY2xpcHNlLmVtZi5lY29yZS5FY29yZVBhY2thZ2U8L3BhY2thZ2VUb1JlZ2lzdGVyPg0KKwkJCQkJCQkJPHBhY2thZ2VUb1JlZ2lzdGVyPm9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay5qYXZhQmVuY2htYXJrLkphdmFCZW5jaG1hcmtQYWNrYWdlPC9wYWNrYWdlVG9SZWdpc3Rlcj4NCisJCQkJCQkJCTxwYWNrYWdlVG9SZWdpc3Rlcj5vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuQmVuY2htYXJrUGFja2FnZTwvcGFja2FnZVRvUmVnaXN0ZXI+DQorCQkJCQkJCTwvcGFja2FnZXNUb1JlZ2lzdGVyPg0KKwkJCQkJCQk8dXJpSGFuZGxlcj5vcmcuZWNsaXBzZS5hY2NlbGVvLm1hdmVuLkFjY2VsZW9VUklIYW5kbGVyPC91cmlIYW5kbGVyPg0KKwkJCQkJCTwvY29uZmlndXJhdGlvbj4NCisJCQkJCTwvcGx1Z2luPg0KKwkJCQkJPHBsdWdpbj4NCisJCQkJCQk8Z3JvdXBJZD5vcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnM8L2dyb3VwSWQ+DQorCQkJCQkJPGFydGlmYWN0SWQ+bWF2ZW4tcmVzb3VyY2VzLXBsdWdpbjwvYXJ0aWZhY3RJZD4NCisJCQkJCQk8dmVyc2lvbj4yLjQuMTwvdmVyc2lvbj4NCisJCQkJCQk8Y29uZmlndXJhdGlvbj4NCisJCQkJCQkJPGVuY29kaW5nPlVURi04PC9lbmNvZGluZz4NCisJCQkJCQk8L2NvbmZpZ3VyYXRpb24+DQorCQkJCQk8L3BsdWdpbj4NCisJCQkJPC9wbHVnaW5zPg0KKwkJCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIvL20yOnByb2plY3QvYnVpbGQvKltuYW1lKCkhPSdwbHVnaW5zJ10iLz4NCisJCQk8L2J1aWxkPg0KKwkJPC9wcm9qZWN0Pg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCisJPHhzbDp0ZW1wbGF0ZSBtYXRjaD0ibTI6KnxAKiI+DQorCQk8eHNsOmNvcHktb2Ygc2VsZWN0PSIuIiAvPg0KKwk8L3hzbDp0ZW1wbGF0ZT4NCisNCis8L3hzbDpzdHlsZXNoZWV0Pg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhODhhMDg4Li4xYzcyYjQ2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpO2J1bmRsZS12ZXJzaW9uPSIzLjUuMCIsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2Nkby90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvY2RvL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCmluZGV4IDQ0Y2EwMjMuLmJmMmI0NzUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvY2RvL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvY2RvL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCkBAIC0xNyw3ICsxNyw3IEBACiANCiBAUnVuV2l0aChTdWl0ZS5jbGFzcykNCiBAU3VpdGVDbGFzc2VzKHsgDQotLy8JSmF2YUp1bml0Q0RPLmNsYXNzIA0KKwlKYXZhSnVuaXRDRE8uY2xhc3MgDQogCX0pDQogcHVibGljIGNsYXNzIEFsbFRlc3RzSW5VSVRocmVhZCB7DQogCS8vIEpVbml0IDQgdGVzdCBzdWl0ZQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvY2RvL3Rlc3RzL0phdmFKdW5pdENETy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9jZG8vdGVzdHMvSmF2YUp1bml0Q0RPLmphdmEKaW5kZXggYzRiZTUzNi4uOTQwMTNiMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9jZG8vdGVzdHMvSmF2YUp1bml0Q0RPLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9jZG8vdGVzdHMvSmF2YUp1bml0Q0RPLmphdmEKQEAgLTIxLDcgKzIxLDkgQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8uSmF2YURpc2NvdmVyZXJDRE87DQogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzLkphdmFKVW5pdEVNRjsNCiBpbXBvcnQgb3JnLmp1bml0LkFmdGVyQ2xhc3M7DQoraW1wb3J0IG9yZy5qdW5pdC5JZ25vcmU7DQogDQorQElnbm9yZSAvL2NmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9Mzk5NTA0DQogcHVibGljIGNsYXNzIEphdmFKdW5pdENETyBleHRlbmRzIEphdmFKVW5pdEVNRiB7DQogDQogCXByaXZhdGUgZmluYWwgaW50IHBvcnQgPSAyMDM2Ow0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhYWQxY2I1Li5hMTdkNDVjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWk7YnVuZGxlLXZlcnNpb249IjMuNS4wIiwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYWI1YmRjMC4uZTM0YzFiMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy5BY3RpdmF0b3INCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aTtidW5kbGUtdmVyc2lvbj0iMy41LjAiLA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQppbmRleCA1ODM4OTc2Li5lZWIyZjBiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCkBAIC0xLDUgKzEsNSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAsIDIwMTIgTWlhLVNvZnR3YXJlLg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSBNaWEtU29mdHdhcmUuDQogICogQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscw0KICAqIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KICAqIHdoaWNoIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLCBhbmQgaXMgYXZhaWxhYmxlIGF0DQpAQCAtOSw2ICs5LDcgQEAKICAqCQlOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkNCiAgKgkJTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpIC0gQnVnIDMzNTAwMyAtIFtEaXNjb3ZlcmVyXSA6IEV4aXN0aW5nIERpc2NvdmVyZXJzIFJlZmFjdG9yaW5nIGJhc2VkIG9uIG5ldyBmcmFtZXdvcmsNCiAgKgkJR3JlZ29pcmUgRHVwZSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyAzODYyMzUgLSBbUmVsZW5nXSBVc2UgdHljaG8gdG8gYnVpbGQgTW9EaXNjbw0KKyAqCQlGYWJpZW4gR2lxdWVsIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1MTU5MCAtIFtKYXZhXSBDbGFzc0Nhc3RFeGNlcHRpb24gd2hpbGUgZGlzY292ZXJpbmcgQXBhY2hlIG1hdGggY29tbW9ucw0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHM7DQogDQpAQCAtMjAsNyArMjEsNyBAQAogQFN1aXRlQ2xhc3Nlcyh7IEJ1ZzMyOTQyM0NvbW1lbnRzVGVzdC5jbGFzcywgSmF2YTJLZG1Db252ZXJ0ZXJUZXN0LmNsYXNzLA0KIAkJSmF2YUpVbml0RU1GLmNsYXNzLCBKYXZhUHJvamVjdDJLZG1UZXN0LmNsYXNzLA0KIAkJUGFyYW1ldGVyaXplZERpc2NvdmVyeS5jbGFzcywgU2ltcGxlQmxhY2tCb3hDb252ZXJ0ZXIuY2xhc3MsDQotCQlTaW1wbGVCbGFja0JveERpc2NvdmVyeS5jbGFzcyB9KQ0KKwkJU2ltcGxlQmxhY2tCb3hEaXNjb3ZlcnkuY2xhc3MsIEJ1ZzM1MTU5MENsYXNzQ2FzdFdpdGhBbm5vdGF0aW9uTWVtYmVyVGVzdC5jbGFzcyB9KQ0KIHB1YmxpYyBjbGFzcyBBbGxUZXN0c0luVUlUaHJlYWQgew0KIAkvLyBKVW5pdCA0IHRlc3Qgc3VpdGUNCiB9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL3Rlc3RzL0J1ZzM1MTU5MENsYXNzQ2FzdFdpdGhBbm5vdGF0aW9uTWVtYmVyVGVzdC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL3Rlc3RzL0J1ZzM1MTU5MENsYXNzQ2FzdFdpdGhBbm5vdGF0aW9uTWVtYmVyVGVzdC5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmNTk5ZDEKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvdGVzdHMvQnVnMzUxNTkwQ2xhc3NDYXN0V2l0aEFubm90YXRpb25NZW1iZXJUZXN0LmphdmEKQEAgLTAsMCArMSw2MSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICoNCisgKiBDb250cmlidXRvcnM6DQorICoJCUZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzUxNTkwIC0gW0phdmFdIENsYXNzQ2FzdEV4Y2VwdGlvbiB3aGlsZSBkaXNjb3ZlcmluZyBBcGFjaGUgbWF0aCBjb21tb25zDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0czsNCisNCitpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5BYnN0cmFjdE1ldGhvZERlY2xhcmF0aW9uOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLkV4cHJlc3Npb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuTWV0aG9kRGVjbGFyYXRpb247DQoraW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuTWV0aG9kSW52b2NhdGlvbjsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5TdGF0ZW1lbnQ7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuVmFyaWFibGVEZWNsYXJhdGlvblN0YXRlbWVudDsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5pbnRlcm5hbC51dGlsLkphdmFVdGlsOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy51dGlscy5BYnN0cmFjdERpc2NvdmVyVGVzdDsNCitpbXBvcnQgb3JnLmp1bml0LkFzc2VydDsNCitpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQorDQorcHVibGljIGNsYXNzIEJ1ZzM1MTU5MENsYXNzQ2FzdFdpdGhBbm5vdGF0aW9uTWVtYmVyVGVzdCBleHRlbmRzIEFic3RyYWN0RGlzY292ZXJUZXN0IHsNCisNCisJQE92ZXJyaWRlDQorCXByb3RlY3RlZCBTdHJpbmcgZ2V0VGFyZ2V0UHJvamVjdE5hbWUoKSB7DQorCQlyZXR1cm4gQWN0aXZhdG9yLlBMVUdJTl9JRCArICJfYnVnMzUxNTkwIjsgLy8kTk9OLU5MUy0xJA0KKwl9DQorDQorCUBPdmVycmlkZQ0KKwlwcm90ZWN0ZWQgU3RyaW5nIGdldFNvdXJjZXNSZWZlcmVuY2VQYXRoKCkgew0KKwkJcmV0dXJuICIvd29ya3NwYWNlL2J1ZzM1MTU5MC8iOyAvLyROT04tTkxTLTEkDQorCX0NCisNCisJQFRlc3QNCisJLy8gQnVnemlsbGEgMzUxNTkwIDogbWV0YW1vZGVsIGV2b2x1dGlvbiBuZWVkZWQsIGEgTWV0aG9kSW52b2NhdGlvbiBjYW5ub3QgcmVmZXJlbmNlIG9uZSBBbm5vdGF0aW9uVHlwZU1lbWJlckRlY2xhcmF0aW9uDQorCS8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kIGZvciBub3QgZ2V0dGluZyBTdGF0dXMgZXJyb3IgOiBhZmZlY3QgdW5yZXNvbHZlZE1ldGhvZCB3aXRoIG5hbWUgbWF0Y2hpbmcgdGhlIEFubm90YXRpb25UeXBlTWVtYmVyRGVjbGFyYXRpb24NCisJcHVibGljIHZvaWQgdGVzdE1ldGhvZEludm9jYXRpb25Ub0Fubm90YXRpb25NZW1iZXIoKSB7DQorCQlNZXRob2REZWNsYXJhdGlvbiBhTWV0aG9kID0gKE1ldGhvZERlY2xhcmF0aW9uKSBKYXZhVXRpbA0KKwkJCQkuZ2V0TmFtZWRFbGVtZW50QnlRdWFsaWZpZWROYW1lKGdldE1vZGVsKCksDQorCQkJCQkJIihkZWZhdWx0IHBhY2thZ2UpLk15Q2xhc3MubSgpIik7IC8vJE5PTi1OTFMtMSQNCisJCUFzc2VydC5hc3NlcnROb3ROdWxsKGFNZXRob2QpOw0KKw0KKwkJLy8gbG9vayBmb3IgIlN0cmluZyBmMSA9IGFuQW5ub3QuYXJnMSgpOyINCisJCVN0YXRlbWVudCBzdGF0ZW1lbnQgPSBhTWV0aG9kLmdldEJvZHkoKS5nZXRTdGF0ZW1lbnRzKCkuZ2V0KDEpOw0KKwkJQXNzZXJ0LmFzc2VydE5vdE51bGwoc3RhdGVtZW50KTsNCisJCUFzc2VydC5hc3NlcnRUcnVlKHN0YXRlbWVudCBpbnN0YW5jZW9mIFZhcmlhYmxlRGVjbGFyYXRpb25TdGF0ZW1lbnQpOw0KKwkJDQorCQlFeHByZXNzaW9uIGluaXRpYWxpemVyID0gKChWYXJpYWJsZURlY2xhcmF0aW9uU3RhdGVtZW50KSBzdGF0ZW1lbnQpLmdldEZyYWdtZW50cygpLmdldCgwKS5nZXRJbml0aWFsaXplcigpOw0KKwkJQXNzZXJ0LmFzc2VydE5vdE51bGwoaW5pdGlhbGl6ZXIpOw0KKwkJQXNzZXJ0LmFzc2VydFRydWUoaW5pdGlhbGl6ZXIgaW5zdGFuY2VvZiBNZXRob2RJbnZvY2F0aW9uKTsNCisJCQ0KKwkJLy8gSGVyZSwgdGhlIGZpeCBoYXMgY3JlYXRlIHNvbWUgdW5yZXNvbHZlZE1ldGhvZCB3aXRoIGEgbmFtZSBpbmRpY2F0aW5nIHRoZSB0cnVlIEFubm90YXRpb25UeXBlTWVtYmVyRGVjbGFyYXRpb24NCisJCUFic3RyYWN0TWV0aG9kRGVjbGFyYXRpb24gbWV0aG9kID0gKChNZXRob2RJbnZvY2F0aW9uKSBpbml0aWFsaXplcikuZ2V0TWV0aG9kKCk7DQorCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChtZXRob2QpOw0KKwkJQXNzZXJ0LmFzc2VydFRydWUobWV0aG9kLmdldE5hbWUoKS5jb250YWlucygiYXJnMSIpKTsNCisJfQ0KKw0KK30NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy93b3Jrc3BhY2UvYnVnMzUxNTkwLy5jbGFzc3BhdGggYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy93b3Jrc3BhY2UvYnVnMzUxNTkwLy5jbGFzc3BhdGgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQxNTEzMgotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnRlc3RzL3dvcmtzcGFjZS9idWczNTE1OTAvLmNsYXNzcGF0aApAQCAtMCwwICsxLDE2IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0gDQorICogQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqDQorICogQ29udHJpYnV0b3JzOg0KKyAqCQlGYWJpZW4gR2lxdWVsIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1MTU5MCAtIFtKYXZhXSBDbGFzc0Nhc3RFeGNlcHRpb24gd2hpbGUgZGlzY292ZXJpbmcgQXBhY2hlIG1hdGggY29tbW9ucw0KKyAtLT4NCis8Y2xhc3NwYXRoPg0KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ic3JjIiBwYXRoPSJzcmMiLz4NCisJPGNsYXNzcGF0aGVudHJ5IGtpbmQ9ImNvbiIgcGF0aD0ib3JnLmVjbGlwc2UuamR0LmxhdW5jaGluZy5KUkVfQ09OVEFJTkVSL29yZy5lY2xpcHNlLmpkdC5pbnRlcm5hbC5kZWJ1Zy51aS5sYXVuY2hlci5TdGFuZGFyZFZNVHlwZS9KMlNFLTEuNSIvPg0KKwk8Y2xhc3NwYXRoZW50cnkga2luZD0ib3V0cHV0IiBwYXRoPSJiaW4iLz4NCis8L2NsYXNzcGF0aD4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy93b3Jrc3BhY2UvYnVnMzUxNTkwLy5wcm9qZWN0IGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvd29ya3NwYWNlL2J1ZzM1MTU5MC8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGI0MWFmCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvd29ya3NwYWNlL2J1ZzM1MTU5MC8ucHJvamVjdApAQCAtMCwwICsxLDI3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pg0KKzwhLS0gDQorICogQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQorICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQorICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KKyAqDQorICogQ29udHJpYnV0b3JzOg0KKyAqCQlGYWJpZW4gR2lxdWVsIChNaWEtU29mdHdhcmUpIC0gQnVnIDM1MTU5MCAtIFtKYXZhXSBDbGFzc0Nhc3RFeGNlcHRpb24gd2hpbGUgZGlzY292ZXJpbmcgQXBhY2hlIG1hdGggY29tbW9ucw0KKyAtLT4NCis8cHJvamVjdERlc2NyaXB0aW9uPg0KKwk8bmFtZT5idWczNTE1OTA8L25hbWU+DQorCTxjb21tZW50PjwvY29tbWVudD4NCisJPHByb2plY3RzPg0KKwk8L3Byb2plY3RzPg0KKwk8YnVpbGRTcGVjPg0KKwkJPGJ1aWxkQ29tbWFuZD4NCisJCQk8bmFtZT5vcmcuZWNsaXBzZS5qZHQuY29yZS5qYXZhYnVpbGRlcjwvbmFtZT4NCisJCQk8YXJndW1lbnRzPg0KKwkJCTwvYXJndW1lbnRzPg0KKwkJPC9idWlsZENvbW1hbmQ+DQorCTwvYnVpbGRTcGVjPg0KKwk8bmF0dXJlcz4NCisJCTxuYXR1cmU+b3JnLmVjbGlwc2UuamR0LmNvcmUuamF2YW5hdHVyZTwvbmF0dXJlPg0KKwk8L25hdHVyZXM+DQorPC9wcm9qZWN0RGVzY3JpcHRpb24+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvd29ya3NwYWNlL2J1ZzM1MTU5MC9zcmMvTXlDbGFzcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvd29ya3NwYWNlL2J1ZzM1MTU5MC9zcmMvTXlDbGFzcy5qYXZhCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVmNTNhMjAKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy93b3Jrc3BhY2UvYnVnMzUxNTkwL3NyYy9NeUNsYXNzLmphdmEKQEAgLTAsMCArMSwxOSBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICoNCisgKiBDb250cmlidXRvcnM6DQorICoJCUZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzUxNTkwIC0gW0phdmFdIENsYXNzQ2FzdEV4Y2VwdGlvbiB3aGlsZSBkaXNjb3ZlcmluZyBBcGFjaGUgbWF0aCBjb21tb25zDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorDQorcHVibGljIGNsYXNzIE15Q2xhc3Mgew0KKw0KKwlwdWJsaWMgdm9pZCBtKCkgew0KKwkJbXlwa2cuTXlBbm5vdGF0aW9uIGFuQW5ub3QgPSBudWxsOw0KKwkJU3RyaW5nIGYxID0gYW5Bbm5vdC5hcmcxKCk7DQorCX0NCisNCit9DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvd29ya3NwYWNlL2J1ZzM1MTU5MC9zcmMvbXlwa2cvTXlBbm5vdGF0aW9uLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy93b3Jrc3BhY2UvYnVnMzUxNTkwL3NyYy9teXBrZy9NeUFubm90YXRpb24uamF2YQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmEyNjYwCi0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMvd29ya3NwYWNlL2J1ZzM1MTU5MC9zcmMvbXlwa2cvTXlBbm5vdGF0aW9uLmphdmEKQEAgLTAsMCArMSwyNCBAQAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLg0KKyAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCisgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KKyAqIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorICoNCisgKiBDb250cmlidXRvcnM6DQorICoJCUZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzUxNTkwIC0gW0phdmFdIENsYXNzQ2FzdEV4Y2VwdGlvbiB3aGlsZSBkaXNjb3ZlcmluZyBBcGFjaGUgbWF0aCBjb21tb25zDQorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQorcGFja2FnZSBteXBrZzsNCisNCitwdWJsaWMgQGludGVyZmFjZSBNeUFubm90YXRpb24gew0KKw0KKwlwdWJsaWMgY2xhc3MgbXlDbGFzcyB7DQorCQlwdWJsaWMgdm9pZCBtKCkgew0KKwkJCU15QW5ub3RhdGlvbiBhbkFubm90ID0gbnVsbDsNCisJCQlTdHJpbmcgZjEgPSBhbkFubm90LmFyZzEoKTsNCisJCX0NCisJfQ0KKw0KKwlTdHJpbmcgYXJnMSgpOw0KKw0KK30NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDViZmU3MGYuLmVhYzU1ZGEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLnVpLmludGVybmFsLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKQEAgLTExLDcgKzExLDYgQEAKICBvcmcuZWNsaXBzZS5lbWYuZmFjZXQuY29tbW9uLmNvcmU7YnVuZGxlLXZlcnNpb249IjAuMS4wIiwKICBvcmcuZWNsaXBzZS5lbWYuZmFjZXQud2lkZ2V0cztidW5kbGUtdmVyc2lvbj0iMC4xLjAiLAogIG9yZy5lY2xpcHNlLmVtZi5mYWNldC53aWRnZXRzLmNlbGxlZGl0b3JzO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCIsCi0gb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmluZnJhLmNvbW1vbi5jb3JlO2J1bmRsZS12ZXJzaW9uPSIwLjEuMCIsCiAgb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXI7YnVuZGxlLXZlcnNpb249IjAuOS4wIiwKICBvcmcuZWNsaXBzZS5qZHQuY29yZTtidW5kbGUtdmVyc2lvbj0iMy42LjAiLAogIG9yZy5lY2xpcHNlLmpkdC51aTtidW5kbGUtdmVyc2lvbj0iMy42LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhODc3MjY0Li5jZjNkY2I0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMyw3ICszLDcgQEAKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlcjtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1SZXF1aXJlZEV4ZWN1dGlvbkVudmlyb25tZW50OiBKMlNFLTEuNQ0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZSwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvaW50ZXJuYWwvaW8vamF2YS9iaW5kaW5nL1BlbmRpbmdFbGVtZW50LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2Rpc2NvdmVyZXIvaW50ZXJuYWwvaW8vamF2YS9iaW5kaW5nL1BlbmRpbmdFbGVtZW50LmphdmEKaW5kZXggNzg2ZmIzOC4uMGU1YzIwOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9kaXNjb3ZlcmVyL2ludGVybmFsL2lvL2phdmEvYmluZGluZy9QZW5kaW5nRWxlbWVudC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZGlzY292ZXJlci9pbnRlcm5hbC9pby9qYXZhL2JpbmRpbmcvUGVuZGluZ0VsZW1lbnQuamF2YQpAQCAtMSw1ICsxLDUgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDA5IE1pYS1Tb2Z0d2FyZS4NCisgKiBDb3B5cmlnaHQgKGMpIDIwMDksIDIwMTUgTWlhLVNvZnR3YXJlLg0KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KQEAgLTEyLDYgKzEyLDcgQEAKICAqICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICAqICAgIEVyd2FuIEJyZXRvbiAoU29kaWZyYW5jZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAgKiAgICBSb21haW4gRGVydmF1eCAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgIEZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSBCdWcgMzUxNTkwIC0gW0phdmFdIENsYXNzQ2FzdEV4Y2VwdGlvbiB3aGlsZSBkaXNjb3ZlcmluZyBBcGFjaGUgbWF0aCBjb21tb25zDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5pbnRlcm5hbC5pby5qYXZhLmJpbmRpbmc7DQogDQpAQCAtMzEsMTcgKzMyLDIwIEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5BU1ROb2RlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLkFic3RyYWN0TWV0aG9kSW52b2NhdGlvbjsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5Bbm5vdGF0aW9uTWVtYmVyVmFsdWVQYWlyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLkFubm90YXRpb25UeXBlTWVtYmVyRGVjbGFyYXRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuQnJlYWtTdGF0ZW1lbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuQ2xhc3NGaWxlOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLkNvbW1lbnQ7DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuQ29tcGlsYXRpb25Vbml0Ow0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLkNvbnRpbnVlU3RhdGVtZW50Ow0KK2ltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLk1ldGhvZEludm9jYXRpb247DQogaW1wb3J0IG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuTWV0aG9kUmVmOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLk5hbWVkRWxlbWVudDsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5TaW5nbGVWYXJpYWJsZUFjY2VzczsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5UeXBlQWNjZXNzOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLlVucmVzb2x2ZWRJdGVtOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmVtZi5KYXZhRmFjdG9yeTsNCitpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5pbnRlcm5hbC51dGlsLkphdmFVdGlsOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5pbnRlcm5hbC5KYXZhQWN0aXZhdG9yOw0KIA0KIC8qKg0KQEAgLTE2MiwxMCArMTY2LDMxIEBACiAJcHVibGljIHZvaWQgYWZmZWN0VGFyZ2V0KGZpbmFsIEFTVE5vZGUgdGFyZ2V0KSB7DQogDQogCQlpZiAodGhpcy5jbGllbnROb2RlICE9IG51bGwpIHsNCi0JCQlFU3RydWN0dXJhbEZlYXR1cmUgZmVhdHVyZSA9IHRoaXMuY2xpZW50Tm9kZS5lQ2xhc3MoKS5nZXRFU3RydWN0dXJhbEZlYXR1cmUoDQorCQkJZmluYWwgRVN0cnVjdHVyYWxGZWF0dXJlIGZlYXR1cmUgPSB0aGlzLmNsaWVudE5vZGUuZUNsYXNzKCkuZ2V0RVN0cnVjdHVyYWxGZWF0dXJlKA0KIAkJCQkJdGhpcy5saW5rTmFtZSk7DQogDQotCQkJYWZmZWN0VGFyZ2V0MChmZWF0dXJlLCB0YXJnZXQpOw0KKwkJCWlmICh0YXJnZXQgaW5zdGFuY2VvZiBBbm5vdGF0aW9uVHlwZU1lbWJlckRlY2xhcmF0aW9uICYmIHRoaXMuY2xpZW50Tm9kZSBpbnN0YW5jZW9mIE1ldGhvZEludm9jYXRpb24pIHsNCisJCQkJLy8gQnVnIHdvcmthcm91bmQgcHJvY2Vzcw0KKwkJCQlhZmZlY3RUYXJnZXRBbm5vdGF0aW9uVHlwZU1lbWJlcih0YXJnZXQsIGZlYXR1cmUpOw0KKwkJCX0gZWxzZSB7DQorCQkJCS8vIE5vcm1hbCBwcm9jZXNzDQorCQkJCWFmZmVjdFRhcmdldDAoZmVhdHVyZSwgdGFyZ2V0KTsNCisJCQl9DQorCQl9DQorCX0NCisNCisJcHJpdmF0ZSB2b2lkIGFmZmVjdFRhcmdldEFubm90YXRpb25UeXBlTWVtYmVyKGZpbmFsIEFTVE5vZGUgdGFyZ2V0LA0KKwkJCWZpbmFsIEVTdHJ1Y3R1cmFsRmVhdHVyZSBmZWF0dXJlKSB7DQorCQkvLyBCdWd6aWxsYSAzNTE1OTAgOiBtZXRhbW9kZWwgZXZvbHV0aW9uIG5lZWRlZCwgYSBNZXRob2RJbnZvY2F0aW9uIGNhbm5vdCByZWZlcmVuY2Ugb25lIEFubm90YXRpb25UeXBlTWVtYmVyRGVjbGFyYXRpb24NCisJCS8vIFRlbXBvcmFyeSB3b3JrYXJvdW5kIDogYWZmZWN0IHVucmVzb2x2ZWRNZXRob2Qgd2l0aCBuYW1lIG1hdGNoaW5nIHRoZSBBbm5vdGF0aW9uVHlwZU1lbWJlckRlY2xhcmF0aW9uDQorCQlpZiAodGFyZ2V0LmdldE9yaWdpbmFsQ29tcGlsYXRpb25Vbml0KCkgIT0gbnVsbA0KKwkJCQkmJiB0YXJnZXQuZ2V0T3JpZ2luYWxDb21waWxhdGlvblVuaXQoKS5nZXRQYWNrYWdlKCkgIT0gbnVsbA0KKwkJCQkmJiB0YXJnZXQuZ2V0T3JpZ2luYWxDb21waWxhdGlvblVuaXQoKS5nZXRQYWNrYWdlKCkuZ2V0TW9kZWwoKSAhPSBudWxsKSB7IA0KKwkJCWZpbmFsIE5hbWVkRWxlbWVudCBtZXRob2QgPSBhZmZlY3RVbnJlc29sdmVkVGFyZ2V0KCk7DQorCQkJdGFyZ2V0LmdldE9yaWdpbmFsQ29tcGlsYXRpb25Vbml0KCkuZ2V0UGFja2FnZSgpLmdldE1vZGVsKCkuZ2V0VW5yZXNvbHZlZEl0ZW1zKCkuYWRkKChVbnJlc29sdmVkSXRlbSkgbWV0aG9kKTsNCisJCQltZXRob2Quc2V0TmFtZShKYXZhVXRpbC5nZXRRdWFsaWZpZWROYW1lKHRhcmdldCkpOw0KKwkJCW1ldGhvZC5zZXRQcm94eSh0cnVlKTsNCisJCQlhZmZlY3RUYXJnZXQwKGZlYXR1cmUsIG1ldGhvZCk7DQogCQl9DQogCX0NCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZG9jLmFyY2hpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRvYy5hcmNoaS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhZjhmODI3Li5kNzk3OTk0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZG9jLmFyY2hpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kb2MuYXJjaGkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kb2MuYXJjaGk7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZQ0KIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZGEwMGJjNi4uMzNjNGVkOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggZTc2MWRlZi4uZWNhMTA3OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKIDxmZWF0dXJlDQogICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIEphdmEgRmVhdHVyZSAoSW5jdWJhdGlvbikiDQotICAgICAgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciINCisgICAgICB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIg0KICAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiDQogICAgICAgcGx1Z2luPSJvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSINCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGMxNGM4MDIuLjIyNTczNTAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmdlbmVyYXRpb24udGVzdHMKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmdlbmVyYXRpb24udGVzdHMuQWN0aXZhdG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCiAgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmdlbmVyYXRpb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9nZW5lcmF0aW9uL3Rlc3RzL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmdlbmVyYXRpb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9nZW5lcmF0aW9uL3Rlc3RzL0FjdGl2YXRvci5qYXZhCmluZGV4IGJmYjVmZWUuLjVmNGQ4OGYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5nZW5lcmF0aW9uLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvZ2VuZXJhdGlvbi90ZXN0cy9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZ2VuZXJhdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL2dlbmVyYXRpb24vdGVzdHMvQWN0aXZhdG9yLmphdmEKQEAgLTE1LDcgKzE1LDkgQEAKIA0KIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmVjb21lIGludGVybmFsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNjA5DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLnF1ZXJpZXMudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEucXVlcmllcy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2ZTRkZDQyLi5hMWNiZWFlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEucXVlcmllcy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEucXVlcmllcy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5xdWVyaWVzLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEucXVlcmllcy50ZXN0cy5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZTtidW5kbGUtdmVyc2lvbj0iMC44LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLnF1ZXJpZXMudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9xdWVyaWVzL3Rlc3RzL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLnF1ZXJpZXMudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamF2YS9xdWVyaWVzL3Rlc3RzL0FjdGl2YXRvci5qYXZhCmluZGV4IGI2MWQ3NzMuLjNmOTg3YjkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5xdWVyaWVzLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2phdmEvcXVlcmllcy90ZXN0cy9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEucXVlcmllcy50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qYXZhL3F1ZXJpZXMvdGVzdHMvQWN0aXZhdG9yLmphdmEKQEAgLTE1LDcgKzE1LDkgQEAKIA0KIC8qKg0KICAqIFRoZSBhY3RpdmF0b3IgY2xhc3MgY29udHJvbHMgdGhlIHBsdWctaW4gbGlmZSBjeWNsZQ0KKyAqIEBkZXByZWNhdGVkIFdpbGwgYmVjb21lIGludGVybmFsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDcwNjA5DQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgQWJzdHJhY3RVSVBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZG9jLmFyY2hpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZG9jLmFyY2hpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDJmMWJjMTYuLjY4NDdjZmUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmRvYy5hcmNoaS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5kb2MuYXJjaGkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmRvYy5hcmNoaTtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lDQogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNzc4MDk1OC4uMGJlODZjNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMDVkMmI2Zi4uMTdmOWM0YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci50ZXN0cztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMuSlVuaXRQbHVnaW4KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKICBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvZWpiamFyL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0RWpiSmFyMTEuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIxMS5qYXZhCmluZGV4IGU4YjljNjUuLmMzMzgwM2EgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIxMS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIxMS5qYXZhCkBAIC0zNyw2ICszNyw5IEBACiBpbXBvcnQgb3JnLmp1bml0LkJlZm9yZTsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTENCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0RWpiSmFyMTEgew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIyMC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjIwLmphdmEKaW5kZXggYzg0ZmU2MC4uNTJmYTY0OSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjIwLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjIwLmphdmEKQEAgLTM3LDYgKzM3LDkgQEAKIGltcG9ydCBvcmcuanVuaXQuQmVmb3JlOw0KIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5MQ0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFRlc3RFamJKYXIyMCB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjIxLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvZWpiamFyL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0RWpiSmFyMjEuamF2YQppbmRleCBhMWI1OWRjLi41ODAyM2ZhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvZWpiamFyL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0RWpiSmFyMjEuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvZWpiamFyL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0RWpiSmFyMjEuamF2YQpAQCAtMzcsNiArMzcsOSBAQAogaW1wb3J0IG9yZy5qdW5pdC5CZWZvcmU7DQogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODkxDQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdEVqYkphcjIxIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvZWpiamFyL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0RWpiSmFyMzAuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIzMC5qYXZhCmluZGV4IDY4NDM0YzkuLmFiYWZkNGMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIzMC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIzMC5qYXZhCkBAIC0zOCw2ICszOCw5IEBACiBpbXBvcnQgb3JnLmp1bml0LkJlZm9yZTsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTENCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0RWpiSmFyMzAgew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RFamJKYXIzMS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjMxLmphdmEKaW5kZXggYjA5YmQ5ZS4uZDU3YTMzZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjMxLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEVqYkphcjMxLmphdmEKQEAgLTM4LDYgKzM4LDkgQEAKIGltcG9ydCBvcmcuanVuaXQuQmVmb3JlOw0KIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5MQ0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFRlc3RFamJKYXIzMSB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAzMGNjOWMxLi5mMTE3YTc4IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci51aS5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDVhOWE4MWIuLmFjNGI3NzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyLkVqYkphckFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDIzNDRiOWQuLjYwNDNkOTIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTIsNCArMTIsNCBAQAogQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEVqYkphciBEaXNjb3ZlcmVyIChJbmN1YmF0aW9uKQ0KIEJ1bmRsZS1WZW5kb3IgPSBFY2xpcHNlIE1vZGVsaW5nIFByb2plY3QNCiANCi1kaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBKRUUgRUpCIGRlcGxveW1lbnQgZGVzY3JpcHRvcgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2Rpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIEpFRSBFSkIgZGVwbG95bWVudCBkZXNjcmlwdG9yIChEZXByZWNhdGVkKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci9hY3Rpb25zL0VqYkphckRpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9lamJqYXIvZGlzY292ZXJlci9hY3Rpb25zL0VqYkphckRpc2NvdmVyZXIuamF2YQppbmRleCA3MDBiYzYxLi4wMGEzZWE1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvZWpiamFyL2Rpc2NvdmVyZXIvYWN0aW9ucy9FamJKYXJEaXNjb3ZlcmVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2VqYmphci9kaXNjb3ZlcmVyL2FjdGlvbnMvRWpiSmFyRGlzY292ZXJlci5qYXZhCkBAIC0zMyw3ICszMyw4IEBACiAvKioNCiAgKiBEaXNjb3ZlciBlamJqYXIueG1sIGdlbmVyaWMgbW9kZWwgYWN0aW9uLg0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgRWpiSmFyRGlzY292ZXJlcjJ9IGluc3RlYWQNCisgKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIEVqYkphckRpc2NvdmVyZXIyfSBpbnN0ZWFkLCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODkxDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRWpiSmFyRGlzY292ZXJlciBleHRlbmRzIERlcGxveW1lbnREZXNjcmlwdG9yRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZWpiamFyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGM1MDM1NTcuLmIwYjY5MjAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5lamJqYXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmVqYmphcjtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZmFjZXQvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5mYWNldC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBhZTQyOWJlLi5kY2NmYTI0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5mYWNldC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5mYWNldC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiwxMCArMiwxMSBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZmFjZXQ7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmZhY2V0LkpFRUZhY2V0QWN0aXZhdG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCi0gb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lCisgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmE7YnVuZGxlLXZlcnNpb249IjAuMTMuMCIKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCBlYzY5MWUyLi5jYjg1Mzk5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKIDxmZWF0dXJlDQogICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmZlYXR1cmUiDQogICAgICAgbGFiZWw9Ik1vRGlzY28gSkVFIGZlYXR1cmUgKEluY3ViYXRpb24pIg0KLSAgICAgIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiDQorICAgICAgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciINCiAgICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIg0KICAgICAgIHBsdWdpbj0ib3JnLmVjbGlwc2UubW9kaXNjby5qZWUiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5icm93c2VyLmN1c3RvbWl6YXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuYnJvd3Nlci5jdXN0b21pemF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGE3N2QxYzcuLmY1NzY1NjkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5icm93c2VyLmN1c3RvbWl6YXRpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmJyb3dzZXIuY3VzdG9taXphdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtNiw3ICs2LDcgQEAKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQogQnVuZGxlLUNsYXNzUGF0aDogLixiaW4KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmJyb3dzZXIuY3VzdG9taXphdGlvbgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAwOGVhNWI2Li5lMWNlNGIyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKICBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvQWN0aXZhdG9yLmphdmEKaW5kZXggYWQ1NWYxMC4uZTQ0YTViMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9BY3RpdmF0b3IuamF2YQpAQCAtMTYsNyArMTYsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0cy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvQWxsVGVzdHMuamF2YQppbmRleCAzMzkyOTVlLi4xZjc0NzMwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0cy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L0FsbFRlc3RzLmphdmEKQEAgLTE3LDYgKzE3LDEwIEBACiBpbXBvcnQgb3JnLmp1bml0LnJ1bm5lcnMuU3VpdGU7DQogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlLlN1aXRlQ2xhc3NlczsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5NA0KKyAqLw0KK0BEZXByZWNhdGVkDQogQFN1cHByZXNzV2FybmluZ3MoImRlcHJlY2F0aW9uIikNCiBAUnVuV2l0aChTdWl0ZS5jbGFzcykNCiBAU3VpdGVDbGFzc2VzKHtUZXN0SnNwLmNsYXNzLCBUZXN0SlNQU3RkQWN0aW9uLmNsYXNzLCBUZXN0TWVtb3J5LmNsYXNzLCBUZXN0SHRtbC5jbGFzcyB9KQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RIdG1sLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0SHRtbC5qYXZhCmluZGV4IGU4NTNmYjAuLjZmMzdiODUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RIdG1sLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEh0bWwuamF2YQpAQCAtMzUsNyArMzUsOSBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzLkFjdGl2YXRvcjsNCiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQotDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTQNCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0SHRtbCB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEpTUFN0ZEFjdGlvbi5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEpTUFN0ZEFjdGlvbi5qYXZhCmluZGV4IDIzNGE3OTEuLjZhYmY1Y2YgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RKU1BTdGRBY3Rpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0SlNQU3RkQWN0aW9uLmphdmEKQEAgLTQyLDYgKzQyLDkgQEAKIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiBpbXBvcnQgb3JnLm9zZ2kuZnJhbWV3b3JrLkJ1bmRsZTsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5NA0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFRlc3RKU1BTdGRBY3Rpb24gew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RKc3AuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RKc3AuamF2YQppbmRleCA3YTkxZDYxLi5jYzJkMjkzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0SnNwLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdEpzcC5qYXZhCkBAIC00OSw2ICs0OSw5IEBACiBpbXBvcnQgb3JnLmp1bml0LlRlc3Q7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGU7DQogDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTQNCisgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0SnNwIHsNCiANCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0TWVtb3J5LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0TWVtb3J5LmphdmEKaW5kZXggM2RjNDMwOS4uZjI4MmI1YyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE1lbW9yeS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RNZW1vcnkuamF2YQpAQCAtMzAsNiArMzAsOSBAQAogaW1wb3J0IG9yZy5qdW5pdC5UZXN0Ow0KIGltcG9ydCBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlOw0KIA0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODk0DQorICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdE1lbW9yeSB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5NmMwOTE4Li42OWE5NTFiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci51aS5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDYzOGVlYzcuLmRjYTRhMTQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyLkpzcEFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDAzZmU1ZjUuLjYwODcyYmEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcwpAQCAtMTAsOCArMTAsOCBAQAogIyAgICAgIE5pY29sYXMgR3V5b21hciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNCiAjUHJvcGVydGllcyBmaWxlIGZvciBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlcg0KLWRpc2NvdmVyZXIubmFtZTEgPSBEaXNjb3ZlciBKU1AgTW9kZWwgZnJvbSBKRUUgUHJvamVjdCANCi1kaXNjb3ZlcmVyLm5hbWUyID0gRGlzY292ZXIgSlNQIE1vZGVsIGZyb20gSlNQIEZpbGUNCi1kaXNjb3ZlcmVyLm5hbWUzID0gRGlzY292ZXIgSlNQIE1vZGVsIGZyb20gSkVFIENvbnRhaW5lcg0KK2Rpc2NvdmVyZXIubmFtZTEgPSBEaXNjb3ZlciBKU1AgTW9kZWwgZnJvbSBKRUUgUHJvamVjdCAoRGVwcmVjYXRlZCkNCitkaXNjb3ZlcmVyLm5hbWUyID0gRGlzY292ZXIgSlNQIE1vZGVsIGZyb20gSlNQIEZpbGUgKERlcHJlY2F0ZWQpDQorZGlzY292ZXJlci5uYW1lMyA9IERpc2NvdmVyIEpTUCBNb2RlbCBmcm9tIEpFRSBDb250YWluZXIgKERlcHJlY2F0ZWQpDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIEJ1bmRsZS1OYW1lID0gTW9EaXNjbyBKYXZhIFNlcnZlciBQYWdlcyBEaXNjb3ZlcmVyIChJbmN1YmF0aW9uKQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9BYnN0cmFjdEpzcERpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9BYnN0cmFjdEpzcERpc2NvdmVyZXIuamF2YQppbmRleCBlYzQyMTZmLi43NDc1MTQ1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvQWJzdHJhY3RKc3BEaXNjb3ZlcmVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL0Fic3RyYWN0SnNwRGlzY292ZXJlci5qYXZhCkBAIC04LDYgKzgsNyBAQAogICogQ29udHJpYnV0b3JzOg0KICAqICAgIEZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAgKiAgICBOaWNvbGFzIEJyb3MgKE1pYS1Tb2Z0d2FyZSkgLSBhZGFwdGVkIHRvIG5ldyBkaXNjb3ZlcnkgZnJhbWV3b3JrIChCdWcgMzM1MDAzKQ0KKyAqICAgIEZhYmllbiBHaXF1ZWwgKE1pYS1Tb2Z0d2FyZSkgLSB1cHBlciBjYXNlIGZpbGVzIGV4dGVuc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgKEJ1ZyA0NjMwNzgpDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8NCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyOw0KIA0KQEAgLTU1LDcgKzU2LDExIEBACiAJfQ0KIA0KIAlwdWJsaWMgc3RhdGljIGJvb2xlYW4gaXNKc3BFeHRlbnNpb24oZmluYWwgU3RyaW5nIGV4dGVuc2lvbikgew0KLQkJcmV0dXJuIGdldEV4dGVuc2lvbkxpc3QoKS5jb250YWlucyhleHRlbnNpb24pOw0KKwkJYm9vbGVhbiByZXN1bHQgPSBmYWxzZTsNCisJCWlmIChleHRlbnNpb24gIT0gbnVsbCkgew0KKwkJCXJlc3VsdCA9IGdldEV4dGVuc2lvbkxpc3QoKS5jb250YWlucyhleHRlbnNpb24udG9Mb3dlckNhc2UoKSk7DQorCQl9DQorCQlyZXR1cm4gcmVzdWx0Ow0KIAl9DQogDQogCS8qKiBEaXNjb3ZlcnMgdGhlIGdpdmVuIGZpbGUgaW50byB0aGUgZ2l2ZW4gSlNQIG1vZGVsLiAqLw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKaW5kZXggYjNmMzY2ZS4uMzI4ODJhYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL01lc3NhZ2VzLmphdmEKQEAgLTEyLDYgKzEyLDExIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MDENCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgZGlzY292ZXJpbmdKc3BNb2RlbDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvYWN0aW9ucy9EZWZhdWx0RGlzY292ZXJlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGVmYXVsdERpc2NvdmVyZXIuamF2YQppbmRleCBiODQ1YzU0Li40NDJkYzc2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvYWN0aW9ucy9EZWZhdWx0RGlzY292ZXJlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9hY3Rpb25zL0RlZmF1bHREaXNjb3ZlcmVyLmphdmEKQEAgLTE5LDcgKzE5LDggQEAKIGltcG9ydCBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnltYW5hZ2VyLkRpc2NvdmVyeVBhcmFtZXRlckltcGw7DQogDQogLyoqDQotICogQGRlcHJlY2F0ZWQgdXNlIG1hdGNoaW5nIG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyIGNsYXNzZXMNCisgKiBAZGVwcmVjYXRlZCB1c2UgbWF0Y2hpbmcgb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIgY2xhc3NlcywgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5NA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGFic3RyYWN0IGNsYXNzIERlZmF1bHREaXNjb3ZlcmVyIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21Db250YWluZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVySnNwTW9kZWxGcm9tQ29udGFpbmVyLmphdmEKaW5kZXggM2U1ZDY5YS4uMjRmZDI0MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21Db250YWluZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2Rpc2NvdmVyZXIvYWN0aW9ucy9EaXNjb3ZlckpzcE1vZGVsRnJvbUNvbnRhaW5lci5qYXZhCkBAIC0zNyw3ICszNyw3IEBACiANCiAvKioNCiAgKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIERpc2NvdmVySnNwTW9kZWxGcm9tUmVzb3VyY2V9IG9yIHtAbGluayBEaXNjb3ZlckpzcE1vZGVsRnJvbUphdmFFbGVtZW50fQ0KLSAqICAgICAgICAgICAgIGluc3RlYWQNCisgKiAgICAgICAgICAgICBpbnN0ZWFkLCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5NA0KICAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIERpc2NvdmVySnNwTW9kZWxGcm9tQ29udGFpbmVyIGV4dGVuZHMgRGVmYXVsdERpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVySnNwTW9kZWxGcm9tRmlsZS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21GaWxlLmphdmEKaW5kZXggYmIwZjM3Ny4uZWFhNTcyNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21GaWxlLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21GaWxlLmphdmEKQEAgLTM2LDcgKzM2LDcgQEAKIA0KIC8qKg0KICAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgRGlzY292ZXJKc3BNb2RlbEZyb21SZXNvdXJjZX0gb3Ige0BsaW5rIERpc2NvdmVySnNwTW9kZWxGcm9tSmF2YUVsZW1lbnR9DQotICogICAgICAgICAgICAgaW5zdGVhZA0KKyAqICAgICAgICAgICAgIGluc3RlYWQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODk0DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJKc3BNb2RlbEZyb21GaWxlIGV4dGVuZHMgRGVmYXVsdERpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZGlzY292ZXJlci9hY3Rpb25zL0Rpc2NvdmVySnNwTW9kZWxGcm9tUHJvamVjdC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21Qcm9qZWN0LmphdmEKaW5kZXggNDdhOTY2ZC4uMTU2N2E4MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21Qcm9qZWN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9kaXNjb3ZlcmVyL2FjdGlvbnMvRGlzY292ZXJKc3BNb2RlbEZyb21Qcm9qZWN0LmphdmEKQEAgLTM2LDcgKzM2LDcgQEAKIA0KIC8qKg0KICAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgRGlzY292ZXJKc3BNb2RlbEZyb21SZXNvdXJjZX0gb3Ige0BsaW5rIERpc2NvdmVySnNwTW9kZWxGcm9tSmF2YUVsZW1lbnR9DQotICogICAgICAgICAgICAgaW5zdGVhZA0KKyAqICAgICAgICAgICAgIGluc3RlYWQsIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODk0DQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgRGlzY292ZXJKc3BNb2RlbEZyb21Qcm9qZWN0IGV4dGVuZHMgRGVmYXVsdERpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5nZW5lcmF0aW9uLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmdlbmVyYXRpb24udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYTRhNGRlNS4uZWNmY2Y1ZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmdlbmVyYXRpb24udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmdlbmVyYXRpb24udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbi50ZXN0cwotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbi50ZXN0cy5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2dlbmVyYXRpb24vdGVzdHMvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbi50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvanNwL2dlbmVyYXRpb24vdGVzdHMvQWN0aXZhdG9yLmphdmEKaW5kZXggZTMyYjY5OC4uOTFhZjdiYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwLmdlbmVyYXRpb24udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2pzcC9nZW5lcmF0aW9uL3Rlc3RzL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5nZW5lcmF0aW9uLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9qc3AvZ2VuZXJhdGlvbi90ZXN0cy9BY3RpdmF0b3IuamF2YQpAQCAtMTYsNyArMTYsOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgV2lsbCBiZWNvbWUgaW50ZXJuYWwgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA2MDkNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5nZW5lcmF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDdiMWM0NzcuLjYxY2QwODAgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5nZW5lcmF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC5nZW5lcmF0aW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbg0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AuZ2VuZXJhdGlvbi5BY3RpdmF0b3INCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuanNwL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGFhMGIzNmYuLjYxNWZlNzIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5qc3AvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmpzcDtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUucXVlcmllcy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLnF1ZXJpZXMudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZjMxODAzYS4uOTFjZTFmNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUucXVlcmllcy50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5xdWVyaWVzLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUucXVlcmllcy50ZXN0cztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUucXVlcmllcy50ZXN0cy5KVW5pdFBsdWdpbgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLnF1ZXJpZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5xdWVyaWVzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDA3YjM0MjIuLjI4ODA4YTEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLnF1ZXJpZXMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUucXVlcmllcy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLnF1ZXJpZXM7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLnF1ZXJpZXMuSkVFUXVlcmllc0FjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNzEzMWI0ZC4uMTFjODEzMCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cwotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL0FsbFRlc3RzSW5VSVRocmVhZC5qYXZhCmluZGV4IGYzMmM3N2YuLmFkZDEyYjQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEKQEAgLTE5LDcgKzE5LDcgQEAKIEBTdWl0ZUNsYXNzZXMoew0KIAlUZXN0Q29tbWVudGVkRG9jVHlwZS5jbGFzcywNCiAJVGVzdE5vVmVyc2lvbi5jbGFzcywNCi0JLyogVGVzdE5vVXJpLmNsYXNzLCBkaXNhYmxlZCBiZWNhdXNlIG9mIEJ1ZyAzNTQ0NjggOiB0aGUgdGVzdCBkb2Vzbid0IGZpbmlzaCAqLw0KKwlUZXN0Tm9VcmkuY2xhc3MsDQogCVRlc3RXZWJYbWwyMi5jbGFzcywNCiAJVGVzdFdlYlhtbDIzLmNsYXNzLA0KIAlUZXN0V2ViWG1sMjQuY2xhc3MsDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvQWxsVGVzdHNJblVJVGhyZWFkLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQppbmRleCAwN2QyZTQ1Li43Nzc4ZTVkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9BbGxUZXN0c0luVUlUaHJlYWQuamF2YQpAQCAtMTQsNyArMTQsMTAgQEAKIGltcG9ydCBvcmcuanVuaXQucnVubmVyLlJ1bldpdGg7DQogaW1wb3J0IG9yZy5qdW5pdC5ydW5uZXJzLlN1aXRlOw0KIGltcG9ydCBvcmcuanVuaXQucnVubmVycy5TdWl0ZS5TdWl0ZUNsYXNzZXM7DQotDQorLyoqDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTMNCisgKi8NCitARGVwcmVjYXRlZA0KIEBSdW5XaXRoKFN1aXRlLmNsYXNzKQ0KIEBTdWl0ZUNsYXNzZXMoew0KIAlUZXN0Q29tbWVudGVkRG9jVHlwZS5jbGFzcywNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0Q29tbWVudGVkRG9jVHlwZS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdENvbW1lbnRlZERvY1R5cGUuamF2YQppbmRleCBhN2JiMmI0Li5jYTI3ZmIwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0Q29tbWVudGVkRG9jVHlwZS5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RDb21tZW50ZWREb2NUeXBlLmphdmEKQEAgLTM0LDggKzM0LDkgQEAKIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDIuNCBUaGUgc3BlY2lmaWVkIGZpbGUgZG9lcyBub3QgY29udGFpbiBhDQogICogZGVjbGFyYXRpb24gb2YgeHNkLCBvbmx5IHRoZSB2ZXJzaW9uDQotICogDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTMNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0Q29tbWVudGVkRG9jVHlwZSB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSRVNPVVJDRVNfVEVTVDFfWE1MID0gIi9yZXNvdXJjZXMvVGVzdENvbW1lbnRlZERvY1R5cGUueG1sIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3ROb1VyaS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE5vVXJpLmphdmEKaW5kZXggM2I0NDgyYS4uOTY3ODhiMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE5vVXJpLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE5vVXJpLmphdmEKQEAgLTM0LDggKzM0LDkgQEAKIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDIuNCBUaGUgc3BlY2lmaWVkIGZpbGUgZG9lcyBub3QgY29udGFpbiBhDQogICogZGVjbGFyYXRpb24gb2YgeHNkLCBvbmx5IHRoZSB2ZXJzaW9uDQotICogDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTMNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0Tm9Vcmkgew0KIA0KIAlwcml2YXRlIHN0YXRpYyBmaW5hbCBTdHJpbmcgUkVTT1VSQ0VTX1RFU1QxX1hNTCA9ICIvcmVzb3VyY2VzL1Rlc3ROb1VyaS54bWwiOyAvLyROT04tTkxTLTEkDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE5vVmVyc2lvbi5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdE5vVmVyc2lvbi5qYXZhCmluZGV4IDNiMjRjYzcuLjIyNTRlZDUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3ROb1ZlcnNpb24uamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0Tm9WZXJzaW9uLmphdmEKQEAgLTM0LDcgKzM0LDkgQEAKIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDIuNCBUaGUgc3BlY2lmaWVkIGZpbGUgZG9lcyBub3QgY29udGFpbiBhDQogICogZGVjbGFyYXRpb24gb2YgdmVyc2lvbiwgb25seSB0aGUgWFNEDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTMNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBUZXN0Tm9WZXJzaW9uIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU09VUkNFU19URVNUMV9YTUwgPSAiL3Jlc291cmNlcy9UZXN0Tm9WZXJzaW9uLnhtbCI7IC8vJE5PTi1OTFMtMSQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvdGVzdHMvY29tcGF0aWJpbGl0eS9UZXN0V2ViWG1sMjIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwyMi5qYXZhCmluZGV4IDYyNDYyZmEuLmUzOTM1NGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwyMi5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwyMi5qYXZhCkBAIC00Miw4ICs0Miw5IEBACiANCiAvKioNCiAgKiBUZXN0IG9mIGRpc2NvdmVyaW5nIGEgV0VCLlhNTCBtb2RlbCAyLjINCi0gKiANCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5Mw0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIFRlc3RXZWJYbWwyMiB7DQogDQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBSRVNPVVJDRVNfVEVTVF9YTUwgPSAiL3Jlc291cmNlcy9UZXN0V2ViWG1sMjIueG1sIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwyMy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDIzLmphdmEKaW5kZXggNDA0MDQ3MC4uZTNmNmY0ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDIzLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDIzLmphdmEKQEAgLTQyLDggKzQyLDkgQEAKIA0KIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDIuMw0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODkzDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdFdlYlhtbDIzIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU09VUkNFU19URVNUX1hNTCA9ICIvcmVzb3VyY2VzL1Rlc3RXZWJYbWwyMy54bWwiOyAvLyROT04tTkxTLTEkCQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwyNC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDI0LmphdmEKaW5kZXggOWMwNmJjNi4uZDE0ZGU2NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDI0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDI0LmphdmEKQEAgLTQyLDggKzQyLDkgQEAKIA0KIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDIuNA0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODkzDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdFdlYlhtbDI0IHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU09VUkNFU19URVNUMV9YTUwgPSAiL3Jlc291cmNlcy9UZXN0V2ViWG1sMjQueG1sIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwyNS5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDI1LmphdmEKaW5kZXggZmE0NTVhNy4uZGE4ZjZmNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDI1LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDI1LmphdmEKQEAgLTQyLDggKzQyLDkgQEAKIA0KIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDIuNQ0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODkzDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdFdlYlhtbDI1IHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU09VUkNFU19URVNUMV9YTUwgPSAiL3Jlc291cmNlcy9UZXN0V2ViWG1sMjUueG1sIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L1Rlc3RXZWJYbWwzMC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDMwLmphdmEKaW5kZXggMDE0ZDVlZC4uNDBiODMxZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDMwLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvVGVzdFdlYlhtbDMwLmphdmEKQEAgLTQyLDggKzQyLDkgQEAKIA0KIC8qKg0KICAqIFRlc3Qgb2YgZGlzY292ZXJpbmcgYSBXRUIuWE1MIG1vZGVsIDMuMA0KLSAqIA0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0ODkzDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgVGVzdFdlYlhtbDMwIHsNCiANCiAJcHJpdmF0ZSBzdGF0aWMgZmluYWwgU3RyaW5nIFJFU09VUkNFU19URVNUMV9YTUwgPSAiL3Jlc291cmNlcy9UZXN0V2ViWG1sMzAueG1sIjsgLy8kTk9OLU5MUy0xJA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci90ZXN0cy9jb21wYXRpYmlsaXR5L3BhY2thZ2UtaW5mby5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvcGFja2FnZS1pbmZvLmphdmEKaW5kZXggZWIyOGRjNS4uNTFkOTg2YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvcGFja2FnZS1pbmZvLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL3Rlc3RzL2NvbXBhdGliaWxpdHkvcGFja2FnZS1pbmZvLmphdmEKQEAgLTksNSArOSwxMCBAQAogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpDQogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogDQotLyoqIFRoaXMgcGFja2FnZSBjb250YWlucyB0ZXN0cyBmb3IgdGhlIG9sZCBkaXNjb3ZlcnkgZnJhbWV3b3JrLCBrZXB0IGZvciBjb21wYXRpYmlsaXR5IHJlYXNvbnMgKi8NCisvKioNCisgKiBUaGlzIHBhY2thZ2UgY29udGFpbnMgdGVzdHMgZm9yIHRoZSBvbGQgZGlzY292ZXJ5IGZyYW1ld29yaywga2VwdCBmb3INCisgKiBjb21wYXRpYmlsaXR5IHJlYXNvbnMNCisgKiANCisgKiBAZGVwcmVjYXRlZCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5Mw0KKyAqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudGVzdHMuY29tcGF0aWJpbGl0eTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDEwOGY2NjIuLmYzMWIyNTkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyLnVpLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZDYwY2VjYS4uNTc0NTc0MyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlcjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIuV2ViWG1sQWN0aXZhdG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCiAgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggNGNlMjA5OC4uZDBjMjcwOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xMiw0ICsxMiw0IEBACiBCdW5kbGUtTmFtZSA9IE1vRGlzY28gV2ViQXBwIERpc2NvdmVyZXIgKEluY3ViYXRpb24pDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KIA0KLWRpc2NvdmVyZXIubmFtZSA9IERpc2NvdmVyIEpFRSBXZWIgZGVwbG95bWVudCBkZXNjcmlwdG9yClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorZGlzY292ZXJlci5uYW1lID0gRGlzY292ZXIgSkVFIFdlYiBkZXBsb3ltZW50IGRlc2NyaXB0b3IgKERlcHJlY2F0ZWQpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL2FjdGlvbnMvV2ViWG1sRGlzY292ZXJlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL3dlYmFwcC9kaXNjb3ZlcmVyL2FjdGlvbnMvV2ViWG1sRGlzY292ZXJlci5qYXZhCmluZGV4IGFmYmNkYTcuLjRlMTcxODcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS93ZWJhcHAvZGlzY292ZXJlci9hY3Rpb25zL1dlYlhtbERpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvd2ViYXBwL2Rpc2NvdmVyZXIvYWN0aW9ucy9XZWJYbWxEaXNjb3ZlcmVyLmphdmEKQEAgLTMzLDcgKzMzLDggQEAKIC8qKg0KICAqIERpc2NvdmVyIHdlYi54bWwgZ2VuZXJpYyBtb2RlbCBhY3Rpb24uDQogICogDQotICogQGRlcHJlY2F0ZWQgdXNlIHtAbGluayBXZWJYbWxEaXNjb3ZlcmVyMn0gaW5zdGVhZA0KKyAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgV2ViWG1sRGlzY292ZXJlcjJ9IGluc3RlYWQsIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4OTMNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBXZWJYbWxEaXNjb3ZlcmVyIGV4dGVuZHMgRGVwbG95bWVudERlc2NyaXB0b3JEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS53ZWJhcHAvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggY2E1MTUzYi4uOTU5NGQ1ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlLndlYmFwcC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5qZWUud2ViYXBwO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA5YjJlNGEwLi44MDkyODVmIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28uamVlO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5bWFuYWdlcjtidW5kbGUtdmVyc2lvbj0iMC45LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2FjdGlvbnMvRGVwbG95bWVudERlc2NyaXB0b3JEaXNjb3ZlcmVyLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvYWN0aW9ucy9EZXBsb3ltZW50RGVzY3JpcHRvckRpc2NvdmVyZXIuamF2YQppbmRleCBiZWY2NWQ1Li43Y2ZjZjUyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvYWN0aW9ucy9EZXBsb3ltZW50RGVzY3JpcHRvckRpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvYWN0aW9ucy9EZXBsb3ltZW50RGVzY3JpcHRvckRpc2NvdmVyZXIuamF2YQpAQCAtNTYsNyArNTYsOCBAQAogICogDQogICogQSBkZWZhdWx0IGltcGxlbWVudGF0aW9uIGZvciBkaXNjb3ZlcmluZyBKRUUgY29uZmlndXJhdGlvbiBmaWxlDQogICogDQotICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkge0BsaW5rIEFic3RyYWN0RGVwbG95bWVudERlc2NyaXB0b3JEaXNjb3ZlcmVyfQ0KKyAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IHtAbGluayBBYnN0cmFjdERlcGxveW1lbnREZXNjcmlwdG9yRGlzY292ZXJlcn0sIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4ODMNCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBEZXBsb3ltZW50RGVzY3JpcHRvckRpc2NvdmVyZXIgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvYWN0aW9ucy9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2FjdGlvbnMvTWVzc2FnZXMuamF2YQppbmRleCBkZDEwOWE3Li4zNDY0NGQ1IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvYWN0aW9ucy9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uamVlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9hY3Rpb25zL01lc3NhZ2VzLmphdmEKQEAgLTE1LDYgKzE1LDExIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MDENCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS5hY3Rpb25zLm1lc3NhZ2VzIjsgLy8kTk9OLU5MUy0xJA0KIAlwdWJsaWMgc3RhdGljIFN0cmluZyBEZXBsb3llbWVudERlc2NyaXB0b3JEaXNjb3ZlcmVyXzA7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2FjdGlvbnMvUHJvamVjdERlcGxveW1lbnREZXNjcmlwdG9yRGlzY292ZXJlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vamVlL2FjdGlvbnMvUHJvamVjdERlcGxveW1lbnREZXNjcmlwdG9yRGlzY292ZXJlci5qYXZhCmluZGV4IGE1ZTNmOWIuLmNlNWM2NTcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uamVlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2plZS9hY3Rpb25zL1Byb2plY3REZXBsb3ltZW50RGVzY3JpcHRvckRpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmplZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9qZWUvYWN0aW9ucy9Qcm9qZWN0RGVwbG95bWVudERlc2NyaXB0b3JEaXNjb3ZlcmVyLmphdmEKQEAgLTU5LDcgKzU5LDggQEAKICAqIFRoZSBwcm9wb3NlZCBjbGFzcyBmYWNpbGl0YXRlcyB0aGUgY3JlYXRpb24gb2YgbmV3IERlcGxveWVtZW50IERlc2NyaXB0b3IgZGlzY292ZXJlciBvbiBhDQogICogY29udGFpbmVyLg0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHJlcGxhY2VkIGJ5IHtAbGluayBBYnN0cmFjdFByb2plY3REZXBsb3ltZW50RGVzY3JpcHRvckRpc2NvdmVyZXJ9DQorICogQGRlcHJlY2F0ZWQgcmVwbGFjZWQgYnkge0BsaW5rIEFic3RyYWN0UHJvamVjdERlcGxveW1lbnREZXNjcmlwdG9yRGlzY292ZXJlcn0sIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ4ODMNCiAgKiANCiAgKi8NCiBARGVwcmVjYXRlZA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOTc1OWE5Ni4uOTc2YmU2YiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIudWkuaW50ZXJuYWwuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBmNWRlNDU5Li43YzBhYjEwIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5kaXNjb3ZlcmVyO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZGlzY292ZXJlci5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi51aS5icm93c2VyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi51aS5icm93c2VyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDJjMzA1ZGYuLjc1NTUxM2EgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkuYnJvd3Nlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkuYnJvd3Nlci5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkuYnJvd3Nlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCmluZGV4IDk4ZmI0MzcuLjg0MmZjNzMgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkuYnJvd3Nlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkuYnJvd3Nlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC0xMCw0ICsxMCw0IEBACiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi51aS5icm93c2VyDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KLUJ1bmRsZS1OYW1lID0gTW9EaXNjbyBCcm93c2VyIGV4dGVuc2lvbiBmb3IgY29kZSBzeW5jaHJvbml6YXRpb24gKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorQnVuZGxlLU5hbWUgPSBNb0Rpc2NvIEJyb3dzZXIgZXh0ZW5zaW9uIGZvciBjb2RlIHN5bmNocm9uaXphdGlvbiAoRGVwcmVjYXRlZCkgKEluY3ViYXRpb24pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi51aS5icm93c2VyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS9zb3VyY2UvZXh0ZW5zaW9uL3VpL2Jyb3dzZXIvQWN0aXZhdG9yLmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vdWkvYnJvd3Nlci9BY3RpdmF0b3IuamF2YQppbmRleCA4N2Q3ZDk5Li41MjEwMGQzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vdWkvYnJvd3Nlci9BY3RpdmF0b3IuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vdWkvYnJvd3Nlci9BY3RpdmF0b3IuamF2YQpAQCAtMTksNyArMTksOSBAQAogDQogLyoqDQogICogVGhlIGFjdGl2YXRvciBjbGFzcyBjb250cm9scyB0aGUgcGx1Zy1pbiBsaWZlIGN5Y2xlDQorICogQGRlcHJlY2F0ZWQgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzUyNDMNCiAgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgZXh0ZW5kcyBBYnN0cmFjdFVJUGx1Z2luIHsNCiANCiAJLy8gVGhlIHBsdWctaW4gSUQNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vdWkvYnJvd3Nlci9saXN0ZW5lci9Nb2RlbEJyb3dzZXJMaXN0ZW5lci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi51aS5icm93c2VyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS9zb3VyY2UvZXh0ZW5zaW9uL3VpL2Jyb3dzZXIvbGlzdGVuZXIvTW9kZWxCcm93c2VyTGlzdGVuZXIuamF2YQppbmRleCA2MjdiODQ3Li45MDNlMzIyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLmJyb3dzZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vdWkvYnJvd3Nlci9saXN0ZW5lci9Nb2RlbEJyb3dzZXJMaXN0ZW5lci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkuYnJvd3Nlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vc291cmNlL2V4dGVuc2lvbi91aS9icm93c2VyL2xpc3RlbmVyL01vZGVsQnJvd3Nlckxpc3RlbmVyLmphdmEKQEAgLTIzLDcgKzIzLDkgQEAKICAqIFRoaXMgY2xhc3Mgb25seSBtYXAgdGhlIGV2ZW50ICJkb3VibGVDbGljayIgaW4gdGhlIGJyb3dzZXIgaW4gb3JkZXIgdG8gY2FsbA0KICAqIHRoZSBvcGVuRU9iamVjdENvbnRhaW5lckZpbGUgbWV0aG9kIHdpdGhvdXQgYWRkaW5nIGEgZGVwZW5kZW5jeSBiZXR3ZWVuDQogICogTW9EaXNjbyBCcm93c2VyIGFuZCBrZG0uc291cmNlLmV4dGVuc2lvbg0KKyAqIEBkZXByZWNhdGVkIGNmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc1MjQzDQogICovDQorQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgTW9kZWxCcm93c2VyTGlzdGVuZXIgaW1wbGVtZW50cyBEb3VibGVDbGlja0xpc3RlbmVyIHsNCiANCiAJcHVibGljIHZvaWQgc3luY2hyb25pemVFT2JqZWN0KGZpbmFsIEVPYmplY3QgZU9iamVjdCwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAxOTY0NzE2Li4yNDhiMzVhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLnVpLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLnVpLmlkZTtidW5kbGUtdmVyc2lvbj0iMy42LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZTE5MTdlMi4uMTE1YjMyNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUNsYXNzUGF0aDogLgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24uQWN0aXZhdG9yCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS9zb3VyY2UvZXh0ZW5zaW9uL2Rpc2NvdmVyeS9BYnN0cmFjdENvbXBvc2VkS0RNU291cmNlRGlzY292ZXJlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vc291cmNlL2V4dGVuc2lvbi9kaXNjb3ZlcnkvQWJzdHJhY3RDb21wb3NlZEtETVNvdXJjZURpc2NvdmVyZXIuamF2YQppbmRleCAxZmRjZDAxLi42MzE1NDc5IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS9zb3VyY2UvZXh0ZW5zaW9uL2Rpc2NvdmVyeS9BYnN0cmFjdENvbXBvc2VkS0RNU291cmNlRGlzY292ZXJlci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24vc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vZGlzY292ZXJ5L0Fic3RyYWN0Q29tcG9zZWRLRE1Tb3VyY2VEaXNjb3ZlcmVyLmphdmEKQEAgLTQ4LDcgKzQ4LDggQEAKICAqIA0KICAqIFNlZSBIZWxwIENvbnRlbnRzIG9yIGh0dHA6Ly93aWtpLmVjbGlwc2Uub3JnL01vRGlzY28vQ29tcG9uZW50cy9LRE1Tb3VyY2VFeHRlbnNpb24NCiAgKiANCi0gKiBAZGVwcmVjYXRlZCB1c2UgQWJzdHJhY3RDb21wb3NlZEtETVNvdXJjZURpc2NvdmVyZXIyIGluc3RlYWQgd2l0aCB0aGUgbmV3IGRpc2NvdmVyeSBmcmFtZXdvcmsNCisgKiBAZGVwcmVjYXRlZCB1c2UgQWJzdHJhY3RDb21wb3NlZEtETVNvdXJjZURpc2NvdmVyZXIyIGluc3RlYWQgd2l0aCB0aGUgbmV3IGRpc2NvdmVyeSBmcmFtZXdvcmssDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MjkNCiAgKiANCiAgKi8NCiBARGVwcmVjYXRlZA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24vc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vZGlzY292ZXJ5L0Fic3RyYWN0UmVnaW9uRGlzY292ZXJlci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vc291cmNlL2V4dGVuc2lvbi9kaXNjb3ZlcnkvQWJzdHJhY3RSZWdpb25EaXNjb3ZlcmVyLmphdmEKaW5kZXggZmEwMmZkZS4uNzFlMWI0NyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vc291cmNlL2V4dGVuc2lvbi9kaXNjb3ZlcnkvQWJzdHJhY3RSZWdpb25EaXNjb3ZlcmVyLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vc291cmNlL2V4dGVuc2lvbi9kaXNjb3ZlcnkvQWJzdHJhY3RSZWdpb25EaXNjb3ZlcmVyLmphdmEKQEAgLTI3LDcgKzI3LDggQEAKICAqIA0KICAqIFNlZSBhbHNvIHtAbGluayBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLmRpc2NvdmVyeS5Tb3VyY2VWaXNpdExpc3RlbmVyfQ0KICAqIA0KLSAqIEBkZXByZWNhdGVkIHVzZSBBYnN0cmFjdFJlZ2lvbkRpc2NvdmVyZXIyIHdpdGggdGhlIG5ldyBkaXNjb3ZlcnkgZnJhbWV3b3JrDQorICogQGRlcHJlY2F0ZWQgdXNlIEFic3RyYWN0UmVnaW9uRGlzY292ZXJlcjIgd2l0aCB0aGUgbmV3IGRpc2NvdmVyeSBmcmFtZXdvcmssIGNmLg0KKyAqICAgICAgICAgICAgIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzQ3MzANCiAgKi8NCiBARGVwcmVjYXRlZA0KIHB1YmxpYyBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFJlZ2lvbkRpc2NvdmVyZXIgaW1wbGVtZW50cyBEaXNjb3ZlcmVyIHsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS9zb3VyY2UvZXh0ZW5zaW9uL2Rpc2NvdmVyeS9NZXNzYWdlcy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0uc291cmNlLmV4dGVuc2lvbi9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vc291cmNlL2V4dGVuc2lvbi9kaXNjb3ZlcnkvTWVzc2FnZXMuamF2YQppbmRleCA1NGYxYjA0Li42ZjdjOTQxIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS9zb3VyY2UvZXh0ZW5zaW9uL2Rpc2NvdmVyeS9NZXNzYWdlcy5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnNvdXJjZS5leHRlbnNpb24vc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3NvdXJjZS9leHRlbnNpb24vZGlzY292ZXJ5L01lc3NhZ2VzLmphdmEKQEAgLTEzLDYgKzEzLDExIEBACiANCiBpbXBvcnQgb3JnLmVjbGlwc2Uub3NnaS51dGlsLk5MUzsNCiANCisvKioNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlIHJlbW92ZWQsDQorICogICAgICAgICAgICAgY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NzA3MDENCisgKi8NCitARGVwcmVjYXRlZA0KIHB1YmxpYyBmaW5hbCBjbGFzcyBNZXNzYWdlcyBleHRlbmRzIE5MUyB7DQogCXByaXZhdGUgc3RhdGljIGZpbmFsIFN0cmluZyBCVU5ETEVfTkFNRSA9ICJvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS5zb3VyY2UuZXh0ZW5zaW9uLmRpc2NvdmVyeS5tZXNzYWdlcyI7IC8vJE5PTi1OTFMtMSQNCiAJcHVibGljIHN0YXRpYyBTdHJpbmcgQWJzdHJhY3RDb21wb3NlZEtETVNvdXJjZURpc2NvdmVyZXJfMDsNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA2NWNmYjI1Li45MGQ4ODhiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAogIG9yZy5lY2xpcHNlLnVpLAogIG9yZy5lY2xpcHNlLmVtZi5jb21tb24sCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0tkbVRvVW1sMldpdGhUcmFjZXNDb252ZXJ0ZXJUZXN0LmphdmEgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL2tkbS91bWwyY29udmVydGVyL3Rlc3RzL0tkbVRvVW1sMldpdGhUcmFjZXNDb252ZXJ0ZXJUZXN0LmphdmEKaW5kZXggMjNiZTk2Ni4uNDJiYzBlOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9rZG0vdW1sMmNvbnZlcnRlci90ZXN0cy9LZG1Ub1VtbDJXaXRoVHJhY2VzQ29udmVydGVyVGVzdC5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28va2RtL3VtbDJjb252ZXJ0ZXIvdGVzdHMvS2RtVG9VbWwyV2l0aFRyYWNlc0NvbnZlcnRlclRlc3QuamF2YQpAQCAtMjM4LDYgKzIzOCw3IEBACiAJCXJldHVybiBvdXRwdXQ7DQogCX0NCiANCisJQElnbm9yZSAvL2NmLiBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDY5MTUwDQogCUBUZXN0DQogCXB1YmxpYyB2b2lkIHRlc3RWYWxpZGF0aW9uT2ZDb252ZXJ0ZWRTb3VyY2VVbWxNb2RlbCgpIHRocm93cyBFeGNlcHRpb24gew0KIA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDgyNzYzMTQuLmI0MDBkOWIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudWk7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIudWkuaW50ZXJuYWwuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ua2RtLnVtbDJjb252ZXJ0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOTljZDVjMC4uMGI0YjNkZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLmtkbS51bWwyY29udmVydGVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlcjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci5pbnRlcm5hbC5LZG1Ub1VtbDJBY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBCdW5kbGUtQ2xhc3NQYXRoOiAuCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMTY4MzZiYy4uOGRiZDRmMSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyLnVpLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA1ZjM1MDA1Li5jMzU1MDg3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIuQWN0aXZhdG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAogIG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzO2J1bmRsZS12ZXJzaW9uPSIzLjYuMCIsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvZGlzY292ZXJlci9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9kaXNjb3ZlcmVyL0FjdGl2YXRvci5qYXZhCmluZGV4IGYyYTYwM2UuLjJmYjU2NWUgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9kaXNjb3ZlcmVyL0FjdGl2YXRvci5qYXZhCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9kaXNjb3ZlcmVyL0FjdGl2YXRvci5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2Rpc2NvdmVyZXIvTWFuaWZlc3RNb2RlbERpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9tYW5pZmVzdC9kaXNjb3ZlcmVyL01hbmlmZXN0TW9kZWxEaXNjb3ZlcmVyLmphdmEKaW5kZXggZjNlNGU4NC4uMTY3ZWJlZiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL21hbmlmZXN0L2Rpc2NvdmVyZXIvTWFuaWZlc3RNb2RlbERpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0LmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vbWFuaWZlc3QvZGlzY292ZXJlci9NYW5pZmVzdE1vZGVsRGlzY292ZXJlci5qYXZhCkBAIC0zMyw3ICszMywxMCBAQAogaW1wb3J0IG9yZy5lY2xpcHNlLm9zZ2kudXRpbC5NYW5pZmVzdEVsZW1lbnQ7DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVFeGNlcHRpb247DQogDQotLyoqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgTWFuaWZlc3RNb2RlbERpc2NvdmVyZXIyfSAqLw0KKy8qKg0KKyAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgTWFuaWZlc3RNb2RlbERpc2NvdmVyZXIyfSwgY2YuDQorICogICAgICAgICAgICAgaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3NDg5OA0KKyAqLw0KIEBEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIE1hbmlmZXN0TW9kZWxEaXNjb3ZlcmVyIGltcGxlbWVudHMgRGlzY292ZXJlciB7DQogDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3QvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNTViZWVjNS4uMGM4NDIyZSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5tYW5pZmVzdC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm1hbmlmZXN0L01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlcGx1Z2luTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ubWFuaWZlc3Q7c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuZ2FzdG0vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAwNTE5NDJkLi43MTgwMDUzIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5nYXN0bTtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUNsYXNzUGF0aDogLg0KIEJ1bmRsZS1WZW5kb3I6ICVwcm92aWRlck5hbWUNCiBCdW5kbGUtTG9jYWxpemF0aW9uOiBwbHVnaW4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5zbW0vTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5zbW0vTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZWFkY2YzNi4uOGZhOWUyZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5vbWcuc21tL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ub21nLnNtbS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLm9tZy5zbW07c2luZ2xldG9uOj10cnVlDQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXINCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcg0KIEJ1bmRsZS1DbGFzc1BhdGg6IC4NCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lDQogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBkMzQzMjI1Li5jMmQ4YWZhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyLnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci51aS5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDMzY2I4NWMuLjUwYTU0ZGIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcztidW5kbGUtdmVyc2lvbj0iMy42LjAiLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL09TR0ktSU5GL2wxMG4vYnVuZGxlLnByb3BlcnRpZXMKaW5kZXggOWM0MzkxNy4uMjk1OTlkOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIvT1NHSS1JTkYvbDEwbi9idW5kbGUucHJvcGVydGllcworKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci9PU0dJLUlORi9sMTBuL2J1bmRsZS5wcm9wZXJ0aWVzCkBAIC05LDYgKzksNiBAQAogIyAgICBNaWEtU29mdHdhcmUgLSBpbml0aWFsIEFQSSBhbmQgaW1wbGVtZW50YXRpb24NCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDQogI1Byb3BlcnRpZXMgZmlsZSBmb3Igb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXINCi1kaXNjb3ZlcmVyLm5hbWUgPSBEaXNjb3ZlciBwcm9wZXJ0aWVzIG1vZGVsDQorZGlzY292ZXJlci5uYW1lID0gRGlzY292ZXIgcHJvcGVydGllcyBtb2RlbCAoRGVwcmVjYXRlZCkNCiBCdW5kbGUtTmFtZSA9IE1vRGlzY28gUHJvcGVydGllcyBGaWxlIERpc2NvdmVyZXIgKEluY3ViYXRpb24pDQogQnVuZGxlLVZlbmRvciA9IEVjbGlwc2UgTW9kZWxpbmcgUHJvamVjdA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3Byb3BlcnRpZXMvZGlzY292ZXJlci9BY3RpdmF0b3IuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3Byb3BlcnRpZXMvZGlzY292ZXJlci9BY3RpdmF0b3IuamF2YQppbmRleCA5ZTMxNjgzLi5kZDk3Y2Y2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9wcm9wZXJ0aWVzL2Rpc2NvdmVyZXIvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vcHJvcGVydGllcy9kaXNjb3ZlcmVyL0FjdGl2YXRvci5qYXZhCkBAIC0xNSw3ICsxNSw5IEBACiANCiAvKioNCiAgKiBUaGUgYWN0aXZhdG9yIGNsYXNzIGNvbnRyb2xzIHRoZSBwbHVnLWluIGxpZmUgY3ljbGUNCisgKiBAZGVwcmVjYXRlZCBXaWxsIGJlY29tZSBpbnRlcm5hbCBjZi4gaHR0cHM6Ly9idWdzLmVjbGlwc2Uub3JnL2J1Z3Mvc2hvd19idWcuY2dpP2lkPTQ3MDYwOQ0KICAqLw0KK0BEZXByZWNhdGVkDQogcHVibGljIGNsYXNzIEFjdGl2YXRvciBleHRlbmRzIFBsdWdpbiB7DQogDQogCS8vIFRoZSBwbHVnLWluIElEDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vcHJvcGVydGllcy9kaXNjb3ZlcmVyL1Byb3BlcnRpZXNNb2RlbERpc2NvdmVyZXIuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28ucHJvcGVydGllcy5kaXNjb3ZlcmVyL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3Byb3BlcnRpZXMvZGlzY292ZXJlci9Qcm9wZXJ0aWVzTW9kZWxEaXNjb3ZlcmVyLmphdmEKaW5kZXggNjkwZmYxOS4uZTBiYjBkOSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5wcm9wZXJ0aWVzLmRpc2NvdmVyZXIvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vcHJvcGVydGllcy9kaXNjb3ZlcmVyL1Byb3BlcnRpZXNNb2RlbERpc2NvdmVyZXIuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnByb3BlcnRpZXMuZGlzY292ZXJlci9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby9wcm9wZXJ0aWVzL2Rpc2NvdmVyZXIvUHJvcGVydGllc01vZGVsRGlzY292ZXJlci5qYXZhCkBAIC0zMSw3ICszMSw4IEBACiBpbXBvcnQgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ub21nLmtkbS5rZG0uS2RtRmFjdG9yeTsNCiANCiAvKioNCi0gKiBAZGVwcmVjYXRlZCB1c2Uge0BsaW5rIFByb3BlcnRpZXNNb2RlbERpc2NvdmVyZXIyfQ0KKyAqIEBkZXByZWNhdGVkIHVzZSB7QGxpbmsgUHJvcGVydGllc01vZGVsRGlzY292ZXJlcjJ9LCBjZi4NCisgKiAgICAgICAgICAgICBodHRwczovL2J1Z3MuZWNsaXBzZS5vcmcvYnVncy9zaG93X2J1Zy5jZ2k/aWQ9NDc0OTAwDQogICovDQogQERlcHJlY2F0ZWQNCiBwdWJsaWMgY2xhc3MgUHJvcGVydGllc01vZGVsRGlzY292ZXJlciBpbXBsZW1lbnRzIERpc2NvdmVyZXIgew0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJlc291cmNlcy5wcmVmcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTU4NDQ1Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vLnNldHRpbmdzL29yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLnByZWZzCkBAIC0wLDAgKzEsMTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4NCisjIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMA0KKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisjIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sDQorIw0KKyMgQ29udHJpYnV0b3JzOg0KKyMgICAgR3LpZ29pcmUgRHVw6SAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24NCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQ0KK2VuY29kaW5nLzxwcm9qZWN0Pj1VVEYtOA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvLy5zZXR0aW5ncy9vcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUucHJlZnMgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLnByZWZzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5NzZjNGYKLS0tIC9kZXYvbnVsbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby8uc2V0dGluZ3Mvb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLnByZWZzCkBAIC0wLDAgKzEsMTAgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDE1IE1pYS1Tb2Z0d2FyZS4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4gVGhpcyBwcm9ncmFtIGFuZCB0aGUgYWNjb21wYW55aW5nIG1hdGVyaWFscworIyBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjAKKyMgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQKKyMgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgQ29udHJpYnV0b3JzOgorIyAgICBHcsOpZ29pcmUgRHVww6kgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCitlY2xpcHNlLnByZWZlcmVuY2VzLnZlcnNpb249MQorbGluZS5zZXBhcmF0b3I9XG4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2hlbGlvcy9yZWxlbmcucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2hlbGlvcy9yZWxlbmcucHJvcGVydGllcwppbmRleCAxOGNjYzAxLi5lNjU4ZjVkIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9oZWxpb3MvcmVsZW5nLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vaGVsaW9zL3JlbGVuZy5wcm9wZXJ0aWVzCkBAIC0yMCw3ICsyMCw3IEBACiANCiAjVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbnMgd2lsbCBiZSB1c2VkIGFzIG1hdmVuIHBvbSBwYXJlbnQgaW5mb3JtYXRpb25zDQogcHJvZHVjdC5ncm91cC5pZD1vcmcuZWNsaXBzZS5tZHQNCi1wcm9kdWN0LnZlcnNpb249MC4xMi4yDQorcHJvZHVjdC52ZXJzaW9uPTAuMTMuMg0KIA0KICNIb3cgdGhlIHJlbGVuZyB0b29scyBzaG91bGQgZmluZCByZWxldmFudCBidW5kbGVzDQogdXBkYXRlc2l0ZS5zb3VyY2UubG9jYXRpb249JHtwcm9kdWN0LnNvdXJjZS5sb2NhdGlvbn0vb3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlDQpAQCAtMzcsNyArMzcsNyBAQAogb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS50ZXN0LnZtYXJncz0tWG14MTAyNG0gLVhYOk1heFBlcm1TaXplPTI1Nm0NCiANCiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLnNvdXJjZS5pZFJlZ2V4PW9yZ1xcLmVjbGlwc2UuKm1vZGlzY28uKg0KLW9yZy5lY2xpcHNlLmVtZi5mYWNldC5yZWxlbmcudHljaG8udXRpbC5jb25maWd1cmUuZG9jLnBhdHRlcm49b3JnXFwuZWNsaXBzZS4qbW9kaXNjby4qDQorb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS5kb2MucGF0dGVybj1vcmdcXC5lY2xpcHNlKFxcLmdtdCk/XFwubW9kaXNjb1xcLigoPyF0ZXN0fGV4YW1wbGUpLikqDQogb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS5zdGF0c1VSST1odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3RhdHMNCiANCiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLmJ1Z3ppbGxhUHJvZHVjdD1NRFQuTW9EaXNjbw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2hlbGlvcy90YXJnZXRQbGF0Zm9ybS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9oZWxpb3MvdGFyZ2V0UGxhdGZvcm0ueG1sCmluZGV4IGVjNjNlOTMuLjYxNGZlNDIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2hlbGlvcy90YXJnZXRQbGF0Zm9ybS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vaGVsaW9zL3RhcmdldFBsYXRmb3JtLnhtbApAQCAtMTYsNiArMTYsNiBAQAogICAgICAgICAgICAgPGdyb3VwSWQ+b3JnLmVjbGlwc2UubWR0PC9ncm91cElkPg0KICAgICAgICAgICAgIDxhcnRpZmFjdElkPm9yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybTwvYXJ0aWZhY3RJZD4NCiAgICAgICAgICAgICA8Y2xhc3NpZmllcj5vcmcuZWNsaXBzZS5tb2Rpc2NvLmFyY2hpLnRlY2gudGFyZ2V0cGxhdGZvcm08L2NsYXNzaWZpZXI+DQotICAgICAgICAgICAgPHZlcnNpb24+MC4xMi4yPC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjAuMTMuMjwvdmVyc2lvbj4NCiAgICAgICAgICA8L2FydGlmYWN0Pg0KIDwvdGFyZ2V0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2luZGlnby9yZWxlbmcucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2luZGlnby9yZWxlbmcucHJvcGVydGllcwppbmRleCA3NzVjY2MyLi4wYTUzYWM3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9pbmRpZ28vcmVsZW5nLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vaW5kaWdvL3JlbGVuZy5wcm9wZXJ0aWVzCkBAIC0yMCw3ICsyMCw3IEBACiANCiAjVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbnMgd2lsbCBiZSB1c2VkIGFzIG1hdmVuIHBvbSBwYXJlbnQgaW5mb3JtYXRpb25zDQogcHJvZHVjdC5ncm91cC5pZD1vcmcuZWNsaXBzZS5tZHQNCi1wcm9kdWN0LnZlcnNpb249MC4xMi4yDQorcHJvZHVjdC52ZXJzaW9uPTAuMTMuMg0KIA0KICNIb3cgdGhlIHJlbGVuZyB0b29scyBzaG91bGQgZmluZCByZWxldmFudCBidW5kbGVzDQogdXBkYXRlc2l0ZS5zb3VyY2UubG9jYXRpb249JHtwcm9kdWN0LnNvdXJjZS5sb2NhdGlvbn0vb3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlDQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vaW5kaWdvL3RhcmdldFBsYXRmb3JtLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2luZGlnby90YXJnZXRQbGF0Zm9ybS54bWwKaW5kZXggNmZiMTY2Ni4uYjZjODczYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vaW5kaWdvL3RhcmdldFBsYXRmb3JtLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9pbmRpZ28vdGFyZ2V0UGxhdGZvcm0ueG1sCkBAIC0xNiw2ICsxNiw2IEBACiAgICAgICAgICAgICA8Z3JvdXBJZD5vcmcuZWNsaXBzZS5tZHQ8L2dyb3VwSWQ+DQogICAgICAgICAgICAgPGFydGlmYWN0SWQ+b3JnLmVjbGlwc2UubW9kaXNjby5hcmNoaS50ZWNoLnRhcmdldHBsYXRmb3JtPC9hcnRpZmFjdElkPg0KICAgICAgICAgICAgIDxjbGFzc2lmaWVyPm9yZy5lY2xpcHNlLm1vZGlzY28uYXJjaGkudGVjaC50YXJnZXRwbGF0Zm9ybS1pbmRpZ288L2NsYXNzaWZpZXI+DQotICAgICAgICAgICAgPHZlcnNpb24+MC4xMi4yPC92ZXJzaW9uPg0KKyAgICAgICAgICAgIDx2ZXJzaW9uPjAuMTMuMjwvdmVyc2lvbj4NCiAgICAgICAgICA8L2FydGlmYWN0Pg0KIDwvdGFyZ2V0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL2xvY2FsL3JlbGVuZy5wcm9wZXJ0aWVzIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vbG9jYWwvcmVsZW5nLnByb3BlcnRpZXMKaW5kZXggN2E3OWM0Zi4uZmM3YWJkNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vbG9jYWwvcmVsZW5nLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vbG9jYWwvcmVsZW5nLnByb3BlcnRpZXMKQEAgLTIwLDcgKzIwLDcgQEAKIA0KICNUaGUgZm9sbG93aW5nIGluZm9ybWF0aW9ucyB3aWxsIGJlIHVzZWQgYXMgbWF2ZW4gcG9tIHBhcmVudCBpbmZvcm1hdGlvbnMNCiBwcm9kdWN0Lmdyb3VwLmlkPW9yZy5lY2xpcHNlLm1kdA0KLXByb2R1Y3QudmVyc2lvbj0wLjEyLjINCitwcm9kdWN0LnZlcnNpb249MC4xMy4yDQogDQogI0hvdyB0aGUgcmVsZW5nIHRvb2xzIHNob3VsZCBmaW5kIHJlbGV2YW50IGJ1bmRsZXMNCiB1cGRhdGVzaXRlLnNvdXJjZS5sb2NhdGlvbj0ke3Byb2R1Y3Quc291cmNlLmxvY2F0aW9ufS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vYnVpbGQuc2ggYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vYnVpbGQuc2gKaW5kZXggMjA4OWMzNC4uODMwZWZiNCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL2J1aWxkLnNoCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9idWlsZC5zaApAQCAtOCw3ICs4LDcgQEAKICMgQ29udHJpYnV0b3JzOgogIyAgICBHcsOpZ29pcmUgRHVww6kgLSBpbml0aWFsIGltcGxlbWVudGF0aW9uCiAKLVJUX1ZFUlNJT049THVuYV9tYWludGVuYW5jZQorUlRfVkVSU0lPTj1NYXJzX21haW50ZW5hbmNlCiAKIGVjaG8gJERJU1BMQVkKIGVjaG8gJFBBVEgKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9kZXBlbmRlbmNpZXNfdXBkYXRlc2l0ZXMueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL2RlcGVuZGVuY2llc191cGRhdGVzaXRlcy54bWwKaW5kZXggMGMwNjAzNi4uNGIyNzJlYSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL2RlcGVuZGVuY2llc191cGRhdGVzaXRlcy54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL2RlcGVuZGVuY2llc191cGRhdGVzaXRlcy54bWwKQEAgLTIwLDcgKzIwLDcgQEAKIAkJPHJlcG9zaXRvcnk+DQogCQkJPGlkPk9yYml0PC9pZD4NCiAJCQk8bGF5b3V0PnAyPC9sYXlvdXQ+DQotCQkJPHVybD5odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdG9vbHMvb3JiaXQvZG93bmxvYWRzL2Ryb3BzL1IyMDE0MDExNDE0MjcxMC9yZXBvc2l0b3J5LzwvdXJsPg0KKwkJCTx1cmw+aHR0cDovL2Rvd25sb2FkLmVjbGlwc2Uub3JnL3Rvb2xzL29yYml0L2Rvd25sb2Fkcy9kcm9wcy9SMjAxNTA1MTkyMTA3NTAvcmVwb3NpdG9yeS88L3VybD4NCiAJCTwvcmVwb3NpdG9yeT4NCiAJCTxyZXBvc2l0b3J5Pg0KIAkJCTxpZD5FY2xpcHNlIExpY2Vuc2U8L2lkPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9yZWxlbmcucHJvcGVydGllcyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9yZWxlbmcucHJvcGVydGllcwppbmRleCAzODRlMTk5Li41MjMzZDBjIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnJlbGVuZy50eWNoby9yZWxlYXNldHJhaW4vcmVsZW5nLnByb3BlcnRpZXMKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL3JlbGVuZy5wcm9wZXJ0aWVzCkBAIC0yMCw3ICsyMCw3IEBACiANCiAjVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbnMgd2lsbCBiZSB1c2VkIGFzIG1hdmVuIHBvbSBwYXJlbnQgaW5mb3JtYXRpb25zDQogcHJvZHVjdC5ncm91cC5pZD1vcmcuZWNsaXBzZS5tZHQNCi1wcm9kdWN0LnZlcnNpb249MC4xMi4yDQorcHJvZHVjdC52ZXJzaW9uPTAuMTMuMg0KIA0KICNIb3cgdGhlIHJlbGVuZyB0b29scyBzaG91bGQgZmluZCByZWxldmFudCBidW5kbGVzDQogdXBkYXRlc2l0ZS5zb3VyY2UubG9jYXRpb249JHtwcm9kdWN0LnNvdXJjZS5sb2NhdGlvbn0vb3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlDQpAQCAtMzUsMTQgKzM1LDE0IEBACiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLmdlbmVyYXRlRGVwZW5kZW5jaWVzPXRydWUNCiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLmdlbmVyYXRlRGVwZW5kZW5jaWVzLmV4Y2x1ZGU9KiovbWR0LW1vZGlzY28uYjNhZ2dyY29uDQogb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS5nZW5lcmF0ZURlcGVuZGVuY2llcy5vcmJpdD1odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvdG9vbHMvb3JiaXQvZG93bmxvYWRzL2Ryb3BzL1IyMDEzMDUxNzExMTQxNi9yZXBvc2l0b3J5Lw0KLW9yZy5lY2xpcHNlLmVtZi5mYWNldC5yZWxlbmcudHljaG8udXRpbC5jb25maWd1cmUuZ2VuZXJhdGVEZXBlbmRlbmNpZXMuaW5jbHVkZXM9KiovZW1mLWVtZi5iM2FnZ3Jjb24gKiovZW1mLXRyYW5zYWN0aW9uLmIzYWdncmNvbiAqKi9lcC5iM2FnZ3Jjb24gKiovbWR0LW9jbC5iM2FnZ3Jjb24gKiovbWR0LXVtbDIuYjNhZ2dyY29uICoqL3BkdC5iM2FnZ3Jjb24gKiovYmlydC5iM2FnZ3Jjb24gKiovZW1mLWNkby5iM2FnZ3Jjb24gKiovZW1mLXF1ZXJ5LmIzYWdncmNvbiAqKi9lbWYtdmFsaWRhdGlvbi5iM2FnZ3Jjb24gKiovZW1mdC1lbWZmYWNldC5iM2FnZ3Jjb24gKiovbTJ0LWFjY2VsZW8uYjNhZ2dyY29uICoqL21kdC11bWwyLmIzYWdncmNvbiAqKi9tMm0tYXRsLmIzYWdncmNvbg0KK29yZy5lY2xpcHNlLmVtZi5mYWNldC5yZWxlbmcudHljaG8udXRpbC5jb25maWd1cmUuZ2VuZXJhdGVEZXBlbmRlbmNpZXMuaW5jbHVkZXM9KiovZW1mdC1lbWZmYWNldC5iM2FnZ3Jjb24gKiovZW1mLWVtZi5iM2FnZ3Jjb24gKiovZW1mLXRyYW5zYWN0aW9uLmIzYWdncmNvbiAqKi9lcC5iM2FnZ3Jjb24gKiovbWR0LW9jbC5iM2FnZ3Jjb24gKiovbWR0LXVtbDIuYjNhZ2dyY29uICoqL3BkdC5iM2FnZ3Jjb24gKiovYmlydC5iM2FnZ3Jjb24gKiovZW1mLWNkby5iM2FnZ3Jjb24gKiovZW1mLXF1ZXJ5LmIzYWdncmNvbiAqKi9lbWYtdmFsaWRhdGlvbi5iM2FnZ3Jjb24gKiovbTJ0LWFjY2VsZW8uYjNhZ2dyY29uICoqL21kdC11bWwyLmIzYWdncmNvbiAqKi9tMm0tYXRsLmIzYWdncmNvbg0KIA0KIG9yZy5lY2xpcHNlLmVtZi5mYWNldC5yZWxlbmcudHljaG8udXRpbC5jb25maWd1cmUucG1kUnVsZVNldD0ke3Byb2R1Y3Quc291cmNlLmxvY2F0aW9ufS8uLi9vcmcuZWNsaXBzZS5lbWYuZmFjZXQuYXJjaGkudGVjaC5ydWxlcy9wbWQvcnVsZXNldC54bWwNCiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLmNoZWNrc3R5bGVDb25maWc9JHtwcm9kdWN0LnNvdXJjZS5sb2NhdGlvbn0vLi4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmFyY2hpLnRlY2gucnVsZXMvY2hlY2tzdHlsZS9FbWZGYWNldC5jaGVja3N0eWxlDQogb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS50ZXN0LnZtYXJncz0tWG14MTAyNG0gLVhYOk1heFBlcm1TaXplPTI1Nm0NCiANCiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLnNvdXJjZS5pZFJlZ2V4PW9yZ1xcLmVjbGlwc2UuKm1vZGlzY28uKg0KLW9yZy5lY2xpcHNlLmVtZi5mYWNldC5yZWxlbmcudHljaG8udXRpbC5jb25maWd1cmUuZG9jLnBhdHRlcm49b3JnXFwuZWNsaXBzZS4qbW9kaXNjby4qDQorb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS5kb2MucGF0dGVybj1vcmdcXC5lY2xpcHNlKFxcLmdtdCk/XFwubW9kaXNjb1xcLigoPyF0ZXN0fGV4YW1wbGUpLikqDQogb3JnLmVjbGlwc2UuZW1mLmZhY2V0LnJlbGVuZy50eWNoby51dGlsLmNvbmZpZ3VyZS5zdGF0c1VSST1odHRwOi8vZG93bmxvYWQuZWNsaXBzZS5vcmcvc3RhdHMNCiANCiBvcmcuZWNsaXBzZS5lbWYuZmFjZXQucmVsZW5nLnR5Y2hvLnV0aWwuY29uZmlndXJlLmJ1Z3ppbGxhUHJvZHVjdD1NRFQuTW9EaXNjbw0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9zaW1yZWxfZ2l0X2Nsb25lLnNoIGIvb3JnLmVjbGlwc2UubW9kaXNjby5yZWxlbmcudHljaG8vcmVsZWFzZXRyYWluL3NpbXJlbF9naXRfY2xvbmUuc2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjM5ODAxYwotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ucmVsZW5nLnR5Y2hvL3JlbGVhc2V0cmFpbi9zaW1yZWxfZ2l0X2Nsb25lLnNoCkBAIC0wLDAgKzEsMTkgQEAKKyMhL2Jpbi9zaAorIyBDb3B5cmlnaHQgKGMpIDIwMTUgTWlhLVNvZnR3YXJlLgorIyBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzCisjIGFyZSBtYWRlIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMAorIyB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdAorIyBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBDb250cmlidXRvcnM6CisjICAgIEdyw6lnb2lyZSBEdXDDqSAtIGluaXRpYWwgaW1wbGVtZW50YXRpb24KKworZnVuY3Rpb24gdXNhZ2UgeworCWVjaG8gIlVzYWdlOiAkMCB0YXJnZXRfZGlyIgorfQorCitpZiBbIC16ICQxIF0gOyB0aGVuCisJdXNhZ2UKK2ZpIAorCitnaXQgY2xvbmUgLS1icmFuY2ggTWFyc19tYWludGVuYW5jZSBodHRwOi8vZ2l0LmVjbGlwc2Uub3JnL2dpdHJvb3Qvc2ltcmVsL29yZy5lY2xpcHNlLnNpbXJlbC5idWlsZC5naXQgJDEKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnNkay5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnNkay5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOTFkMmJkNy4uNmJkODZjNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmZlYXR1cmUvZmVhdHVyZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnNkay5mZWF0dXJlL2ZlYXR1cmUueG1sCmluZGV4IGNkMmQ3Y2QuLjlhOTE0ZGEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZmVhdHVyZS9mZWF0dXJlLnhtbApAQCAtMTIsNyArMTIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZmVhdHVyZSINCiAgICAgICBsYWJlbD0iTW9EaXNjbyBTREsgKEluY3ViYXRpb24pIg0KLSAgICAgIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiDQorICAgICAgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciINCiAgICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSINCiAgICAgICBsaWNlbnNlLWZlYXR1cmUtdmVyc2lvbj0iMC4wLjAiPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28uc21tLnF1YWxpdHkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnNtbS5xdWFsaXR5L01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDlmYjk4ZjcuLjM5MjBhMzkgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28uc21tLnF1YWxpdHkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby5zbW0ucXVhbGl0eS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnNtbS5xdWFsaXR5O3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtQ2xhc3NQYXRoOiAuDQogQnVuZGxlLVZlbmRvcjogJXByb3ZpZGVyTmFtZQ0KIEJ1bmRsZS1Mb2NhbGl6YXRpb246IHBsdWdpbg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDZhMmE5NGMuLmM3YmVjNzYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udGVzdHMKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuY3VzdG9tLmV4YW1wbGVzLnVtbC50ZXN0cztidW5kbGUtdmVyc2lvbj0iMC44LjAiLAogIG9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuYnJvd3Nlci5jdXN0b20udGVzdHM7YnVuZGxlLXZlcnNpb249IjAuOC4wIiwKQEAgLTM4LDcgKzM4LDkgQEAKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5rZG0udW1sMmNvbnZlcnRlci50ZXN0cztidW5kbGUtdmVyc2lvbj0iMC45LjAiLAogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzO2J1bmRsZS12ZXJzaW9uPSIwLjkuMCIsCiAgb3JnLmVjbGlwc2UucGRlLmp1bml0LnJ1bnRpbWU7YnVuZGxlLXZlcnNpb249IjMuNC4xMDAiLAotIG9yZy5lY2xpcHNlLmpkdC5qdW5pdDQucnVudGltZTtidW5kbGUtdmVyc2lvbj0iMS4xLjEwMCIKKyBvcmcuZWNsaXBzZS5qZHQuanVuaXQ0LnJ1bnRpbWU7YnVuZGxlLXZlcnNpb249IjEuMS4xMDAiLAorIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHM7YnVuZGxlLXZlcnNpb249IjAuMTMuMSIsCisgb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuYmVuY2htYXJrLnRlc3RzO2J1bmRsZS12ZXJzaW9uPSIwLjEzLjEiCiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby90ZXN0cy9BbGxUZXN0cy5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby90ZXN0cy9BbGxUZXN0cy5qYXZhCmluZGV4IGUxMjQzZDkuLjc4YjdmZDQgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdGVzdHMvQWxsVGVzdHMuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3Rlc3RzL0FsbFRlc3RzLmphdmEKQEAgLTI1LDEyICsyNSwxMCBAQAogCQlvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci50ZXN0cy5BbGxUZXN0c0luVUlUaHJlYWQuY2xhc3MsDQogCQlvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIudGVzdHMuQWxsVGVzdHNJblVJVGhyZWFkLmNsYXNzLA0KIAkJb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLnF1ZXJpZXMudGVzdHMuQWxsVGVzdHNJblVJVGhyZWFkLmNsYXNzLA0KLS8qIGRpc2FibGUgYmVuY2htYXJrIHRlc3RzIGJlY2F1c2UgYmVuY2htYXJrIGlzIGRpc2FibGVkIGJlY2F1c2UgQmlydCBpcyBkaXNhYmxlZCBpbiBKdW5vIGFnZ3JlZ2F0aW9uIGJ1aWxkDQogCQlvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5iZW5jaG1hcmsudGVzdHMuQWxsVGVzdHNJblVJVGhyZWFkLmNsYXNzLA0KIAkJb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmJlbmNobWFyay50ZXN0cy5BbGxUZXN0c0luVUlUaHJlYWQuY2xhc3MsDQotKi8NCiAvLyAgc2VlIEJ1ZyAzNjMzMDIgLSBEaXNhYmxlZCBqdW5pdCB0ZXN0IGphdmEuZGlzY292ZXJlci5jZG8udGVzdHMNCi0vLwkJb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmRpc2NvdmVyZXIuY2RvLnRlc3RzLkFsbFRlc3RzSW5VSVRocmVhZC5jbGFzcywNCisJCW9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5kaXNjb3ZlcmVyLmNkby50ZXN0cy5BbGxUZXN0c0luVUlUaHJlYWQuY2xhc3MsDQogLy8JCW9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmEuZGlzY292ZXJlci5jZG8udGVzdHMuQWxsVGVzdHNJblVJVGhyZWFkLmNsYXNzLA0KIAkJb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmN1c3RvbS5leGFtcGxlcy5qYXZhLmpkay50ZXN0cy5BbGxUZXN0c0luVUlUaHJlYWQuY2xhc3MsDQogCQlvcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuYnJvd3Nlci5jdXN0b21pemF0aW9uLnRlc3QuQWxsVGVzdHNJblVJVGhyZWFkLmNsYXNzLA0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdGVzdHMvQnVuZGxlVGVzdC5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby90ZXN0cy9CdW5kbGVUZXN0LmphdmEKaW5kZXggZDUzYzYwMy4uNGNkNGEzZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby90ZXN0cy9CdW5kbGVUZXN0LmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby90ZXN0cy9CdW5kbGVUZXN0LmphdmEKQEAgLTI2LDcgKzI2LDcgQEAKIA0KIAlAVGVzdA0KIAlwdWJsaWMgdm9pZCBuYW1lKCkgew0KLQkJdGVzdE1hbmlmZXN0UHJvcGVydHkoIkJ1bmRsZS1OYW1lIiwgIk1vRGlzY28gLio/XFwoSW5jdWJhdGlvblxcKSIpOyAvLyROT04tTkxTLTEkIC8vJE5PTi1OTFMtMiQNCisJCXRlc3RNYW5pZmVzdFByb3BlcnR5KCJCdW5kbGUtTmFtZSIsICJNb0Rpc2NvIC4qP1xcKEluY3ViYXRpb25cXCkoIFNvdXJjZSl7MCwxfSsiKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQogCX0NCiANCiAJQFRlc3QNCkBAIC0zNiw3ICszNiw3IEBACiANCiAJQFRlc3QNCiAJcHVibGljIHZvaWQgdmVyc2lvbigpIHsNCi0JCXRlc3RNYW5pZmVzdFByb3BlcnR5KCJCdW5kbGUtVmVyc2lvbiIsICIwXFwuMTJcXC4wXFwuLioiKTsgLy8kTk9OLU5MUy0xJCAvLyROT04tTkxTLTIkDQorCQl0ZXN0TWFuaWZlc3RQcm9wZXJ0eSgiQnVuZGxlLVZlcnNpb24iLCAiMFxcLjEzXFwuMlxcLi4qIik7IC8vJE5PTi1OTFMtMSQgLy8kTk9OLU5MUy0yJA0KIAl9DQogDQogCUBUZXN0DQpAQCAtOTIsNCArOTIsNCBAQAogCXByaXZhdGUgaW50ZXJmYWNlIFJ1bm5hYmxlVGVzdCB7DQogCQlwdWJsaWMgdm9pZCBydW4oQnVuZGxlIGJ1bmRsZSk7DQogCX0NCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby50aGlyZHBhcnRpZXMuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28udGhpcmRwYXJ0aWVzLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggZWVhODM2NC4uM2RiYzY3NiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby50aGlyZHBhcnRpZXMuZmVhdHVyZS9mZWF0dXJlLnhtbAorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnRoaXJkcGFydGllcy5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0yLDcgKzIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby50aGlyZHBhcnRpZXMiDQogICAgICAgbGFiZWw9IiVmZWF0dXJlTmFtZSINCi0gICAgICB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIg0KKyAgICAgIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiDQogICAgICAgcHJvdmlkZXItbmFtZT0iJXByb3ZpZGVyTmFtZSINCiAgICAgICBsaWNlbnNlLWZlYXR1cmU9Im9yZy5lY2xpcHNlLmxpY2Vuc2UiDQogICAgICAgbGljZW5zZS1mZWF0dXJlLXZlcnNpb249IjAuMC4wIj4NCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUvc2l0ZS54bWwgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUvc2l0ZS54bWwKaW5kZXggMjczZGYyYS4uY2MwZDA0MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlL3NpdGUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS9zaXRlLnhtbApAQCAtMSw0NyArMSw1MCBAQAogPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCiA8c2l0ZT4NCi0gICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28uZXhhbXBsZXMuZmVhdHVyZV8wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uZXhhbXBsZXMuZmVhdHVyZSIgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciI+DQorICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLmV4YW1wbGVzLmZlYXR1cmVfMC4xMy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmV4YW1wbGVzLmZlYXR1cmUiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuZGV2Ii8+DQogICAgPC9mZWF0dXJlPg0KLSAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5jZG8uZGVyYnkuZmVhdHVyZV8wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY2RvLmRlcmJ5LmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5jZG8uZGVyYnkuZmVhdHVyZV8wLjEzLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuY2RvLmRlcmJ5LmZlYXR1cmUiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuY2RvIi8+DQogICAgPC9mZWF0dXJlPg0KLSAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5vbWcuZmVhdHVyZV8wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEub21nLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5vbWcuZmVhdHVyZV8wLjEzLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEub21nLmZlYXR1cmUiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuaW5mcmFzdHJ1Y3R1cmUiLz4NCiAgICA8L2ZlYXR1cmU+DQotICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmZlYXR1cmVfMC4xMi4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhc3RydWN0dXJlLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5mZWF0dXJlXzAuMTMuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYXN0cnVjdHVyZS5mZWF0dXJlIiB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIj4NCiAgICAgICA8Y2F0ZWdvcnkgbmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlLmluZnJhc3RydWN0dXJlIi8+DQogICAgPC9mZWF0dXJlPg0KLSAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNkby5mZWF0dXJlXzAuMTIuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmNkby5mZWF0dXJlIiB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIj4NCisgICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jZG8uZmVhdHVyZV8wLjEzLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5jZG8uZmVhdHVyZSIgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciI+DQogICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS5jZG8iLz4NCiAgICA8L2ZlYXR1cmU+DQotICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLmphdmEuZmVhdHVyZV8wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5mZWF0dXJlIiB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIj4NCisgICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28uamF2YS5mZWF0dXJlXzAuMTMuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5qYXZhLmZlYXR1cmUiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUudGVjaG5vbG9naWVzIi8+DQogICAgPC9mZWF0dXJlPg0KLSAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZmVhdHVyZV8wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5qZWUuZmVhdHVyZV8wLjEzLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uamVlLmZlYXR1cmUiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUudGVjaG5vbG9naWVzIi8+DQogICAgPC9mZWF0dXJlPg0KLSAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZmVhdHVyZV8wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5zZGsuZmVhdHVyZV8wLjEzLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28uc2RrLmZlYXR1cmUiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUubWFpbiIvPg0KICAgIDwvZmVhdHVyZT4NCi0gICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5mZWF0dXJlXzAuMTIuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmZlYXR1cmVfMC4xMy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZmVhdHVyZSIgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciI+DQogICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS51c2VjYXNlcyIvPg0KICAgIDwvZmVhdHVyZT4NCi0gICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi5mZWF0dXJlXzAuMTIuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLmZlYXR1cmVfMC4xMy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4uZmVhdHVyZSIgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciI+DQogICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS51c2VjYXNlcyIvPg0KICAgIDwvZmVhdHVyZT4NCi0gICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmZlYXR1cmVfMC4xMi4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5mZWF0dXJlIiB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIj4NCisgICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmZlYXR1cmVfMC4xMy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5mZWF0dXJlIiB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIj4NCiAgICAgICA8Y2F0ZWdvcnkgbmFtZT0ib3JnLmVjbGlwc2UubW9kaXNjby51cGRhdGVzaXRlLnRlY2hub2xvZ2llcyIvPg0KICAgIDwvZmVhdHVyZT4NCi0gICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28uaW5mcmEuZGlzY292ZXJ5LmJlbmNobWFyay5mZWF0dXJlXzAuMTIuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmZlYXR1cmUiIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5kaXNjb3ZlcnkuYmVuY2htYXJrLmZlYXR1cmVfMC4xMy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmRpc2NvdmVyeS5iZW5jaG1hcmsuZmVhdHVyZSIgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciI+DQogICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS5kZXYiLz4NCiAgICA8L2ZlYXR1cmU+DQotICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFsbC5mZWF0dXJlXzAuMTIuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5hbGwuZmVhdHVyZSIgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciI+DQorICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLmFsbC5mZWF0dXJlXzAuMTMuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby5hbGwuZmVhdHVyZSIgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciI+DQogICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS5kZXYiLz4NCiAgICA8L2ZlYXR1cmU+DQotICAgPGZlYXR1cmUgdXJsPSJmZWF0dXJlcy9vcmcuZWNsaXBzZS5tb2Rpc2NvLnRoaXJkcGFydGllc18wLjEyLjIucXVhbGlmaWVyLmphciIgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28udGhpcmRwYXJ0aWVzIiB2ZXJzaW9uPSIwLjEyLjIucXVhbGlmaWVyIj4NCisgICA8ZmVhdHVyZSB1cmw9ImZlYXR1cmVzL29yZy5lY2xpcHNlLm1vZGlzY28udGhpcmRwYXJ0aWVzXzAuMTMuMi5xdWFsaWZpZXIuamFyIiBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby50aGlyZHBhcnRpZXMiIHZlcnNpb249IjAuMTMuMi5xdWFsaWZpZXIiPg0KICAgICAgIDxjYXRlZ29yeSBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuZGV2Ii8+DQogICAgPC9mZWF0dXJlPg0KKyAgIDxmZWF0dXJlIHVybD0iZmVhdHVyZXMvb3JnLmVjbGlwc2UubW9kaXNjby5pbmZyYS5icm93c2VyLmZlYXR1cmVfMC4xMy4yLnF1YWxpZmllci5qYXIiIGlkPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLmluZnJhLmJyb3dzZXIuZmVhdHVyZSIgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciI+DQorICAgICAgPGNhdGVnb3J5IG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS5pbmZyYXN0cnVjdHVyZSIvPg0KKyAgIDwvZmVhdHVyZT4NCiAgICA8Y2F0ZWdvcnktZGVmIG5hbWU9Im9yZy5lY2xpcHNlLm1vZGlzY28udXBkYXRlc2l0ZS5pbmZyYXN0cnVjdHVyZSIgbGFiZWw9IkluZnJhc3RydWN1dHJlIi8+DQogICAgPGNhdGVnb3J5LWRlZiBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUudGVjaG5vbG9naWVzIiBsYWJlbD0iVGVjaG5vbG9naWVzIi8+DQogICAgPGNhdGVnb3J5LWRlZiBuYW1lPSJvcmcuZWNsaXBzZS5tb2Rpc2NvLnVwZGF0ZXNpdGUuY2RvIiBsYWJlbD0iQ0RPIEFkYXB0ZXJzIi8+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLmphdmEuc2FtcGxlbWV0cmljcy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5qYXZhLnNhbXBsZW1ldHJpY3MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZDlkNTJjNi4uY2YzOGVjMiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLmphdmEuc2FtcGxlbWV0cmljcy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UuamF2YS5zYW1wbGVtZXRyaWNzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLmphdmEuc2FtcGxlbWV0cmljcztzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5jb21tb24uY29yZSwKICBvcmcuZWNsaXBzZS5nbXQubW9kaXNjby5pbmZyYS5xdWVyeS5jb3JlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UuamF2YS5zYW1wbGVyZWZhY3RvcmluZy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5qYXZhLnNhbXBsZXJlZmFjdG9yaW5nL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDk2ZjQzOGMuLjcxNzg0OGYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5qYXZhLnNhbXBsZXJlZmFjdG9yaW5nL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5qYXZhLnNhbXBsZXJlZmFjdG9yaW5nL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLmphdmEuc2FtcGxlcmVmYWN0b3Jpbmc7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEuY29tbW9uLmNvcmUsCiAgb3JnLmVjbGlwc2UuZ210Lm1vZGlzY28uaW5mcmEucXVlcnkuY29yZQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kZXBlbmRlbmNpZXMudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggYmQ3ZWUyNC4uMzA3NzZiYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZGVwZW5kZW5jaWVzLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRlcGVuZGVuY2llcy51aS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggN2IxOTE0Ny4uY2NiN2YxNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUNCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIuZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggMDM3MzAzZC4uN2I3ZDQ0MiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKIDxmZWF0dXJlDQogICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIE1vZGVsIEZpbHRlciAoSW5jdWJhdGlvbikiDQotICAgICAgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciINCisgICAgICB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIg0KICAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIwLjAuMCI+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBkMzg5N2FmLi41ZDUzYzJiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy5kaXNjb3ZlcmVyLnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci51aS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBjZGQ2OGVhLi4zNTI1ZDU2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy5kaXNjb3ZlcmVyO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMuZGlzY292ZXJlci5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLm1ldGhvZGNhbGxzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDk1NmM2NTMuLjVhNDAxMjIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci5tZXRob2RjYWxscy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIubWV0aG9kY2FsbHM7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLAogIG9yZy5lY2xpcHNlLmdtdC5tb2Rpc2NvLmphdmE7YnVuZGxlLXZlcnNpb249IjAuOS4wIiwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy8uY2hlY2tzdHlsZSBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy8uY2hlY2tzdHlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMThjNjU4Ci0tLSAvZGV2L251bGwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzLy5jaGVja3N0eWxlCkBAIC0wLDAgKzEsOSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKworPGZpbGVzZXQtY29uZmlnIGZpbGUtZm9ybWF0LXZlcnNpb249IjEuMi4wIiBzaW1wbGUtY29uZmlnPSJ0cnVlIiBzeW5jLWZvcm1hdHRlcj0iZmFsc2UiPgorICA8bG9jYWwtY2hlY2stY29uZmlnIG5hbWU9IkVtZkZhY2V0IiBsb2NhdGlvbj0iLi4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmFyY2hpLnRlY2gucnVsZXMvY2hlY2tzdHlsZS9FbWZGYWNldC5jaGVja3N0eWxlIiB0eXBlPSJwcm9qZWN0IiBkZXNjcmlwdGlvbj0iIi8+CisgIDxmaWxlc2V0IG5hbWU9ImFsbCIgZW5hYmxlZD0idHJ1ZSIgY2hlY2stY29uZmlnLW5hbWU9IkVtZkZhY2V0IiBsb2NhbD0idHJ1ZSI+CisgICAgPGZpbGUtbWF0Y2gtcGF0dGVybiBtYXRjaC1wYXR0ZXJuPSIuIiBpbmNsdWRlLXBhdHRlcm49InRydWUiLz4KKyAgICA8ZmlsZS1tYXRjaC1wYXR0ZXJuIG1hdGNoLXBhdHRlcm49Ik1lc3NhZ2VzLmphdmEiIGluY2x1ZGUtcGF0dGVybj0iZmFsc2UiLz4KKyAgPC9maWxlc2V0PgorPC9maWxlc2V0LWNvbmZpZz4KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy8ucG1kIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzLy5wbWQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI5YzIwZQotLS0gL2Rldi9udWxsCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy8ucG1kCkBAIC0wLDAgKzEsNyBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCis8cG1kPg0KKyAgIDx1c2VQcm9qZWN0UnVsZVNldD50cnVlPC91c2VQcm9qZWN0UnVsZVNldD4NCisgICA8cnVsZVNldEZpbGU+Li4vb3JnLmVjbGlwc2UuZW1mLmZhY2V0LmFyY2hpLnRlY2gucnVsZXMvcG1kL3J1bGVzZXQueG1sPC9ydWxlU2V0RmlsZT4NCisgICA8aW5jbHVkZURlcml2ZWRGaWxlcz5mYWxzZTwvaW5jbHVkZURlcml2ZWRGaWxlcz4NCisgICA8dmlvbGF0aW9uc0FzRXJyb3JzPnRydWU8L3Zpb2xhdGlvbnNBc0Vycm9ycz4NCis8L3BtZD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudGVzdHMvLnByb2plY3QgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudGVzdHMvLnByb2plY3QKaW5kZXggYTdjYzcwMi4uOTRlYTFhOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzLy5wcm9qZWN0CisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy8ucHJvamVjdApAQCAtMjAsOSArMjAsMjEgQEAKIAkJCTxhcmd1bWVudHM+DQogCQkJPC9hcmd1bWVudHM+DQogCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+bmV0LnNvdXJjZWZvcmdlLnBtZC5lY2xpcHNlLnBsdWdpbi5wbWRCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCisJCTxidWlsZENvbW1hbmQ+DQorCQkJPG5hbWU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVCdWlsZGVyPC9uYW1lPg0KKwkJCTxhcmd1bWVudHM+DQorCQkJPC9hcmd1bWVudHM+DQorCQk8L2J1aWxkQ29tbWFuZD4NCiAJPC9idWlsZFNwZWM+DQogCTxuYXR1cmVzPg0KIAkJPG5hdHVyZT5vcmcuZWNsaXBzZS5wZGUuUGx1Z2luTmF0dXJlPC9uYXR1cmU+DQogCQk8bmF0dXJlPm9yZy5lY2xpcHNlLmpkdC5jb3JlLmphdmFuYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+bmV0LnNvdXJjZWZvcmdlLnBtZC5lY2xpcHNlLnBsdWdpbi5wbWROYXR1cmU8L25hdHVyZT4NCisJCTxuYXR1cmU+bmV0LnNmLmVjbGlwc2Vjcy5jb3JlLkNoZWNrc3R5bGVOYXR1cmU8L25hdHVyZT4NCiAJPC9uYXR1cmVzPg0KIDwvcHJvamVjdERlc2NyaXB0aW9uPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBiZjJmMGIwLi4yMjRmY2U0IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudGVzdHMuQWN0aXZhdG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCiAgb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvdGVzdHMvU2ltcGxlQmxhY2tCb3hEaXNjb3ZlcnkuamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91c2VjYXNlL21vZGVsZmlsdGVyL3Rlc3RzL1NpbXBsZUJsYWNrQm94RGlzY292ZXJ5LmphdmEKaW5kZXggYTUyMjRjZS4uYTUzNGNmOCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnRlc3RzL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3VzZWNhc2UvbW9kZWxmaWx0ZXIvdGVzdHMvU2ltcGxlQmxhY2tCb3hEaXNjb3ZlcnkuamF2YQorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudGVzdHMvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXNlY2FzZS9tb2RlbGZpbHRlci90ZXN0cy9TaW1wbGVCbGFja0JveERpc2NvdmVyeS5qYXZhCkBAIC0xLDUgKzEsNSBAQAogLyoNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTAgTWlhLVNvZnR3YXJlLg0KKyAqIENvcHlyaWdodCAoYykgMjAxMCwgMjAxNSAgTWlhLVNvZnR3YXJlLg0KICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMgcHJvZ3JhbSBhbmQgdGhlIGFjY29tcGFueWluZyBtYXRlcmlhbHMNCiAgKiBhcmUgbWFkZSBhdmFpbGFibGUgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlIHYxLjANCiAgKiB3aGljaCBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdA0KQEAgLTcsMTUgKzcsMTggQEAKICAqDQogICogQ29udHJpYnV0b3JzOg0KICAqICAgIEdhYnJpZWwgQmFyYmllciAoTWlhLVNvZnR3YXJlKSAtIGluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KKyAqICAgIEdyw6lnb2lyZSBEdXDDqSAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0NjgzNDYgLSBbVW5pdCBUZXN0IEZhaWx1cmVdIG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0cy5TaW1wbGVCbGFja0JveERpc2NvdmVyeS50ZXN0VW1sTW9kZWxGcm9tSmF2YVByb2plY3RXaXRoUmVmZXJlbmNlTW9kZWwNCiAgKi8NCiANCiBwYWNrYWdlIG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci50ZXN0czsNCiANCitpbXBvcnQgamF2YS5pby5JT0V4Y2VwdGlvbjsNCiBpbXBvcnQgamF2YS5uZXQuVVJMOw0KIGltcG9ydCBqYXZhLnV0aWwuSGFzaE1hcDsNCiBpbXBvcnQgamF2YS51dGlsLkxpc3Q7DQogaW1wb3J0IGphdmEudXRpbC5NYXA7DQogDQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5Db3JlRXhjZXB0aW9uOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuQmFzaWNEaWFnbm9zdGljOw0KIGltcG9ydCBvcmcuZWNsaXBzZS5lbWYuY29tbW9uLnV0aWwuRGlhZ25vc3RpYzsNCiBpbXBvcnQgb3JnLmVjbGlwc2UuZW1mLmNvbW1vbi51dGlsLkRpYWdub3N0aWNDaGFpbjsNCkBAIC0zMSw2ICszNCw3IEBACiBpbXBvcnQgb3JnLmp1bml0LkFmdGVyOw0KIGltcG9ydCBvcmcuanVuaXQuQXNzZXJ0Ow0KIGltcG9ydCBvcmcuanVuaXQuQmVmb3JlOw0KK2ltcG9ydCBvcmcuanVuaXQuSWdub3JlOw0KIGltcG9ydCBvcmcuanVuaXQuVGVzdDsNCiANCiAvKioNCkBAIC02Nyw4NSArNzEsNzggQEAKIAl9DQogDQogCUBUZXN0DQotCXB1YmxpYyB2b2lkIHRlc3RVbWxNb2RlbERpc2NvdmVyeUZyb21KYXZhUHJvamVjdCgpIHsNCisJcHVibGljIHZvaWQgdGVzdFVtbE1vZGVsRGlzY292ZXJ5RnJvbUphdmFQcm9qZWN0KCkgdGhyb3dzIENvcmVFeGNlcHRpb24sDQorCQkJSU9FeGNlcHRpb24gew0KIAkJQXNzZXJ0LmFzc2VydE5vdE51bGwodGhpcy5qYXZhUHJvamVjdEZhY3RvcnkpOw0KKwkJSUphdmFQcm9qZWN0IGphdmFQcm9qZWN0ID0gdGhpcy5qYXZhUHJvamVjdEZhY3RvcnkuZ2V0SmF2YVByb2plY3QoKTsNCisJCUFzc2VydC5hc3NlcnROb3ROdWxsKGphdmFQcm9qZWN0KTsNCiANCi0JCXRyeSB7DQorCQlTdHJpbmcgc291cmNlRm9sZGVyUGF0aCA9IHRoaXMucm9vdFNvdXJjZXNQYXRoICsgdGhpcy5wcm9qZWN0TmFtZQ0KKwkJCQkrICIvc3JjIjsgLy8kTk9OLU5MUy0xJA0KKwkJVVJMIHNyYyA9IEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkNCisJCQkJLmdldEVudHJ5KHNvdXJjZUZvbGRlclBhdGgpOw0KKwkJQXNzZXJ0LmFzc2VydE5vdE51bGwoc3JjKTsNCisJCXRoaXMuamF2YVByb2plY3RGYWN0b3J5LnBvcHVsYXRlU291cmNlRm9sZGVyKHNvdXJjZUZvbGRlclBhdGgpOw0KIA0KLQkJCUlKYXZhUHJvamVjdCBqYXZhUHJvamVjdCA9IHRoaXMuamF2YVByb2plY3RGYWN0b3J5LmdldEphdmFQcm9qZWN0KCk7DQotCQkJQXNzZXJ0LmFzc2VydE5vdE51bGwoamF2YVByb2plY3QpOw0KKwkJRGlzY292ZXJVbWxNb2RlbFdpdGhSZWFsVHlwZXNGcm9tSmF2YVByb2plY3QgZGlzY292ZXJlciA9IG5ldyBEaXNjb3ZlclVtbE1vZGVsV2l0aFJlYWxUeXBlc0Zyb21KYXZhUHJvamVjdCgpOw0KKwkJQXNzZXJ0LmFzc2VydE5vdE51bGwoZGlzY292ZXJlcik7DQorCQlNYXA8RGlzY292ZXJ5UGFyYW1ldGVyLCBPYmplY3Q+IHBhcmFtZXRlcnMgPSBuZXcgSGFzaE1hcDxEaXNjb3ZlcnlQYXJhbWV0ZXIsIE9iamVjdD4oKTsNCisJCXBhcmFtZXRlcnMucHV0KGRpc2NvdmVyZXIuZ2V0U2lsZW50TW9kZVBhcmFtZXRlcigpLCBCb29sZWFuLlRSVUUpOw0KKwkJZGlzY292ZXJlci5kaXNjb3ZlckVsZW1lbnQoamF2YVByb2plY3QsIHBhcmFtZXRlcnMpOw0KKwkJUmVzb3VyY2Ugb3V0cHV0ID0gKFJlc291cmNlKSBwYXJhbWV0ZXJzLmdldChkaXNjb3ZlcmVyDQorCQkJCS5nZXRUYXJnZXRNb2RlbFBhcmFtZXRlcigpKTsNCisJCUFzc2VydC5hc3NlcnROb3ROdWxsKG91dHB1dCk7DQogDQotCQkJU3RyaW5nIHNvdXJjZUZvbGRlclBhdGggPSB0aGlzLnJvb3RTb3VyY2VzUGF0aCArIHRoaXMucHJvamVjdE5hbWUNCi0JCQkJCSsgIi9zcmMiOyAvLyROT04tTkxTLTEkDQotCQkJVVJMIHNyYyA9IEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkNCi0JCQkJCS5nZXRFbnRyeShzb3VyY2VGb2xkZXJQYXRoKTsNCi0JCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChzcmMpOw0KLQkJCXRoaXMuamF2YVByb2plY3RGYWN0b3J5LnBvcHVsYXRlU291cmNlRm9sZGVyKHNvdXJjZUZvbGRlclBhdGgpOw0KLQ0KLQkJCURpc2NvdmVyVW1sTW9kZWxXaXRoUmVhbFR5cGVzRnJvbUphdmFQcm9qZWN0IGRpc2NvdmVyZXIgPSBuZXcgRGlzY292ZXJVbWxNb2RlbFdpdGhSZWFsVHlwZXNGcm9tSmF2YVByb2plY3QoKTsNCi0JCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChkaXNjb3ZlcmVyKTsNCi0JCQlNYXA8RGlzY292ZXJ5UGFyYW1ldGVyLCBPYmplY3Q+IHBhcmFtZXRlcnMgPSBuZXcgSGFzaE1hcDxEaXNjb3ZlcnlQYXJhbWV0ZXIsIE9iamVjdD4oKTsNCi0JCQlwYXJhbWV0ZXJzLnB1dChkaXNjb3ZlcmVyLmdldFNpbGVudE1vZGVQYXJhbWV0ZXIoKSwgQm9vbGVhbi5UUlVFKTsNCi0JCQlkaXNjb3ZlcmVyLmRpc2NvdmVyRWxlbWVudChqYXZhUHJvamVjdCwgcGFyYW1ldGVycyk7DQotCQkJUmVzb3VyY2Ugb3V0cHV0ID0gKFJlc291cmNlKSBwYXJhbWV0ZXJzLmdldChkaXNjb3ZlcmVyDQotCQkJCQkuZ2V0VGFyZ2V0TW9kZWxQYXJhbWV0ZXIoKSk7DQotCQkJQXNzZXJ0LmFzc2VydE5vdE51bGwob3V0cHV0KTsNCi0NCi0JCQlpZiAodGhpcy5leHBvcnQpIHsNCi0JCQkJb3V0cHV0LnNldFVSSShVUkkNCi0JCQkJCQkuY3JlYXRlRmlsZVVSSSgiYzovcmVmZXJlbmNlTW9kZWwiICsgdGhpcy51bWxNb2RlbEV4dGVuc2lvbikpOyAvLyROT04tTkxTLTEkDQotCQkJCW91dHB1dC5zYXZlKG51bGwpOw0KLQkJCX0NCi0JCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQotCQkJQXNzZXJ0LmZhaWwoZS5nZXRNZXNzYWdlKCkpOw0KKwkJaWYgKHRoaXMuZXhwb3J0KSB7DQorCQkJb3V0cHV0LnNldFVSSShVUkkNCisJCQkJCS5jcmVhdGVGaWxlVVJJKCJjOi9yZWZlcmVuY2VNb2RlbCIgKyB0aGlzLnVtbE1vZGVsRXh0ZW5zaW9uKSk7IC8vJE5PTi1OTFMtMSQNCisJCQlvdXRwdXQuc2F2ZShudWxsKTsNCiAJCX0NCiAJfQ0KIA0KKwlASWdub3JlIC8vY2YuIGh0dHBzOi8vYnVncy5lY2xpcHNlLm9yZy9idWdzL3Nob3dfYnVnLmNnaT9pZD00NjgzNDYNCiAJQFRlc3QNCi0JcHVibGljIHZvaWQgdGVzdFVtbE1vZGVsRnJvbUphdmFQcm9qZWN0V2l0aFJlZmVyZW5jZU1vZGVsKCkgew0KKwlwdWJsaWMgdm9pZCB0ZXN0VW1sTW9kZWxGcm9tSmF2YVByb2plY3RXaXRoUmVmZXJlbmNlTW9kZWwoKQ0KKwkJCXRocm93cyBDb3JlRXhjZXB0aW9uLCBJT0V4Y2VwdGlvbiwgSW50ZXJydXB0ZWRFeGNlcHRpb24gew0KIAkJQXNzZXJ0LmFzc2VydE5vdE51bGwodGhpcy5qYXZhUHJvamVjdEZhY3RvcnkpOw0KLQkJdHJ5IHsNCi0JCQlJSmF2YVByb2plY3QgamF2YVByb2plY3QgPSB0aGlzLmphdmFQcm9qZWN0RmFjdG9yeS5nZXRKYXZhUHJvamVjdCgpOw0KLQkJCUFzc2VydC5hc3NlcnROb3ROdWxsKGphdmFQcm9qZWN0KTsNCisJCUlKYXZhUHJvamVjdCBqYXZhUHJvamVjdCA9IHRoaXMuamF2YVByb2plY3RGYWN0b3J5LmdldEphdmFQcm9qZWN0KCk7DQorCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChqYXZhUHJvamVjdCk7DQogDQotCQkJU3RyaW5nIHNvdXJjZUZvbGRlclBhdGggPSB0aGlzLnJvb3RTb3VyY2VzUGF0aCArIHRoaXMucHJvamVjdE5hbWUNCi0JCQkJCSsgIi9zcmMiOyAvLyROT04tTkxTLTEkDQotCQkJVVJMIHNyYyA9IEFjdGl2YXRvci5nZXREZWZhdWx0KCkuZ2V0QnVuZGxlKCkNCi0JCQkJCS5nZXRFbnRyeShzb3VyY2VGb2xkZXJQYXRoKTsNCi0JCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChzcmMpOw0KLQkJCXRoaXMuamF2YVByb2plY3RGYWN0b3J5LnBvcHVsYXRlU291cmNlRm9sZGVyKHNvdXJjZUZvbGRlclBhdGgpOw0KKwkJU3RyaW5nIHNvdXJjZUZvbGRlclBhdGggPSB0aGlzLnJvb3RTb3VyY2VzUGF0aCArIHRoaXMucHJvamVjdE5hbWUNCisJCQkJKyAiL3NyYyI7IC8vJE5PTi1OTFMtMSQNCisJCVVSTCBzcmMgPSBBY3RpdmF0b3IuZ2V0RGVmYXVsdCgpLmdldEJ1bmRsZSgpDQorCQkJCS5nZXRFbnRyeShzb3VyY2VGb2xkZXJQYXRoKTsNCisJCUFzc2VydC5hc3NlcnROb3ROdWxsKHNyYyk7DQorCQl0aGlzLmphdmFQcm9qZWN0RmFjdG9yeS5wb3B1bGF0ZVNvdXJjZUZvbGRlcihzb3VyY2VGb2xkZXJQYXRoKTsNCiANCi0JCQlEaXNjb3ZlclVtbE1vZGVsV2l0aFJlYWxUeXBlc0Zyb21KYXZhUHJvamVjdCBkaXNjb3ZlcmVyID0gbmV3IERpc2NvdmVyVW1sTW9kZWxXaXRoUmVhbFR5cGVzRnJvbUphdmFQcm9qZWN0KCk7DQotCQkJQXNzZXJ0LmFzc2VydE5vdE51bGwoZGlzY292ZXJlcik7DQotCQkJTWFwPERpc2NvdmVyeVBhcmFtZXRlciwgT2JqZWN0PiBwYXJhbWV0ZXJzID0gbmV3IEhhc2hNYXA8RGlzY292ZXJ5UGFyYW1ldGVyLCBPYmplY3Q+KCk7DQotCQkJcGFyYW1ldGVycy5wdXQoZGlzY292ZXJlci5nZXRTaWxlbnRNb2RlUGFyYW1ldGVyKCksIEJvb2xlYW4uVFJVRSk7DQotCQkJZGlzY292ZXJlci5kaXNjb3ZlckVsZW1lbnQoamF2YVByb2plY3QsIHBhcmFtZXRlcnMpOw0KLQkJCVJlc291cmNlIG91dHB1dCA9IChSZXNvdXJjZSkgcGFyYW1ldGVycy5nZXQoZGlzY292ZXJlcg0KLQkJCQkJLmdldFRhcmdldE1vZGVsUGFyYW1ldGVyKCkpOw0KLQkJCUFzc2VydC5hc3NlcnROb3ROdWxsKG91dHB1dCk7DQorCQlEaXNjb3ZlclVtbE1vZGVsV2l0aFJlYWxUeXBlc0Zyb21KYXZhUHJvamVjdCBkaXNjb3ZlcmVyID0gbmV3IERpc2NvdmVyVW1sTW9kZWxXaXRoUmVhbFR5cGVzRnJvbUphdmFQcm9qZWN0KCk7DQorCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChkaXNjb3ZlcmVyKTsNCisJCU1hcDxEaXNjb3ZlcnlQYXJhbWV0ZXIsIE9iamVjdD4gcGFyYW1ldGVycyA9IG5ldyBIYXNoTWFwPERpc2NvdmVyeVBhcmFtZXRlciwgT2JqZWN0PigpOw0KKwkJcGFyYW1ldGVycy5wdXQoZGlzY292ZXJlci5nZXRTaWxlbnRNb2RlUGFyYW1ldGVyKCksIEJvb2xlYW4uVFJVRSk7DQorCQlkaXNjb3ZlcmVyLmRpc2NvdmVyRWxlbWVudChqYXZhUHJvamVjdCwgcGFyYW1ldGVycyk7DQorCQlSZXNvdXJjZSBvdXRwdXQgPSAoUmVzb3VyY2UpIHBhcmFtZXRlcnMuZ2V0KGRpc2NvdmVyZXINCisJCQkJLmdldFRhcmdldE1vZGVsUGFyYW1ldGVyKCkpOw0KKwkJQXNzZXJ0LmFzc2VydE5vdE51bGwob3V0cHV0KTsNCiANCi0JCQkvKg0KLQkJCSAqIEJlY2F1c2UgZXZlcnl0aGluZyBsb29rcyBncmVhdCwgd2VsbCB3ZSBoYXZlIHRvIHRlc3QgbW9kZWwNCi0JCQkgKiBjb250ZW50LiBJbiBkZXRhaWxzIHdlIHdpbGwgY29tcGFyZSBjdXJyZW50IHJlc291cmNlIHdpdGggYQ0KLQkJCSAqIHJlZmVyZW5jZSAoY2hlY2tlZCBtYW51YWxseSkNCi0JCQkgKiANCi0JCQkgKiBXYXJuaW5nLCBiZWNhdXNlIHRoZSBqYXZhIG1vZGVsIHN0b3JlIHRoZSAiZmlsZXBhdGgiIG9mDQotCQkJICogZGlzY292ZXJlZCBqYXZhIGNvZGUsIHRoZSBjb21waWxhdGlvbiB1bml0cyBlbGVtZW50cyBjb3VsZCBub3QgYmUNCi0JCQkgKiB0aGUgc2FtZSAhISEhDQotCQkJICovDQotCQkJU3RyaW5nIHJlZmVyZW5jZVBhdGggPSAiLyIgKyBBY3RpdmF0b3IuUExVR0lOX0lEICsgdGhpcy5yZWZlcmVuY2VzRm9sZGVyUGF0aCArIHRoaXMucHJvamVjdE5hbWUgLy8kTk9OLU5MUy0xJCANCi0JCQkJCSsgIlJlYWxUeXBlcyIgKyB0aGlzLnVtbE1vZGVsRXh0ZW5zaW9uOyAvLyROT04tTkxTLTEkDQotCQkJVVJJIHJlZmVyZW5jZVVyaSA9IFVSSS5jcmVhdGVQbGF0Zm9ybVBsdWdpblVSSShyZWZlcmVuY2VQYXRoLCB0cnVlKTsNCi0JCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChyZWZlcmVuY2VVcmkpOw0KLQkJCVJlc291cmNlIHJlZmVyZW5jZU1vZGVsID0gTW9kZWxVdGlscy5sb2FkTW9kZWwocmVmZXJlbmNlVXJpKTsNCi0JCQlBc3NlcnQuYXNzZXJ0Tm90TnVsbChyZWZlcmVuY2VNb2RlbCk7DQotCQkJYm9vbGVhbiByZXN1bHQgPSBUZXN0TW9kZWxVdGlscy5jb21wYXJlTW9kZWxzKG91dHB1dCwNCi0JCQkJCXJlZmVyZW5jZU1vZGVsLCB0cnVlKTsNCi0JCQlBc3NlcnQuYXNzZXJ0VHJ1ZSgNCi0JCQkJCSJDb21wYXJpc29uIG9mIFVtbCBtb2RlbHMgd2l0aCByZWFsIHR5cGVzIGhhcyBmYWlsZWQgISIsIHJlc3VsdCk7IC8vJE5PTi1OTFMtMSQNCi0JCX0gY2F0Y2ggKEV4Y2VwdGlvbiBlKSB7DQotCQkJQXNzZXJ0LmZhaWwoZS5nZXRNZXNzYWdlKCkpOw0KLQkJfQ0KKwkJLyoNCisJCSAqIEJlY2F1c2UgZXZlcnl0aGluZyBsb29rcyBncmVhdCwgd2VsbCB3ZSBoYXZlIHRvIHRlc3QgbW9kZWwNCisJCSAqIGNvbnRlbnQuIEluIGRldGFpbHMgd2Ugd2lsbCBjb21wYXJlIGN1cnJlbnQgcmVzb3VyY2Ugd2l0aCBhDQorCQkgKiByZWZlcmVuY2UgKGNoZWNrZWQgbWFudWFsbHkpDQorCQkgKiANCisJCSAqIFdhcm5pbmcsIGJlY2F1c2UgdGhlIGphdmEgbW9kZWwgc3RvcmUgdGhlICJmaWxlcGF0aCIgb2YNCisJCSAqIGRpc2NvdmVyZWQgamF2YSBjb2RlLCB0aGUgY29tcGlsYXRpb24gdW5pdHMgZWxlbWVudHMgY291bGQgbm90IGJlDQorCQkgKiB0aGUgc2FtZSAhISEhDQorCQkgKi8NCisJCVN0cmluZyByZWZlcmVuY2VQYXRoID0gIi8iICsgQWN0aXZhdG9yLlBMVUdJTl9JRCArIHRoaXMucmVmZXJlbmNlc0ZvbGRlclBhdGggKyB0aGlzLnByb2plY3ROYW1lIC8vJE5PTi1OTFMtMSQgDQorCQkJCSsgIlJlYWxUeXBlcyIgKyB0aGlzLnVtbE1vZGVsRXh0ZW5zaW9uOyAvLyROT04tTkxTLTEkDQorCQlVUkkgcmVmZXJlbmNlVXJpID0gVVJJLmNyZWF0ZVBsYXRmb3JtUGx1Z2luVVJJKHJlZmVyZW5jZVBhdGgsIHRydWUpOw0KKwkJQXNzZXJ0LmFzc2VydE5vdE51bGwocmVmZXJlbmNlVXJpKTsNCisJCVJlc291cmNlIHJlZmVyZW5jZU1vZGVsID0gTW9kZWxVdGlscy5sb2FkTW9kZWwocmVmZXJlbmNlVXJpKTsNCisJCUFzc2VydC5hc3NlcnROb3ROdWxsKHJlZmVyZW5jZU1vZGVsKTsNCisJCWJvb2xlYW4gcmVzdWx0ID0gVGVzdE1vZGVsVXRpbHMuY29tcGFyZU1vZGVscyhvdXRwdXQsDQorCQkJCXJlZmVyZW5jZU1vZGVsLCB0cnVlKTsNCisJCUFzc2VydC5hc3NlcnRUcnVlKA0KKwkJCQkiQ29tcGFyaXNvbiBvZiBVbWwgbW9kZWxzIHdpdGggcmVhbCB0eXBlcyBoYXMgZmFpbGVkICEiLCByZXN1bHQpOyAvLyROT04tTkxTLTEkDQogCX0NCiANCiAJQFRlc3QNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggZDQwMjI5ZS4uNzMxNmFlNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLnVpLmludGVybmFsLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS51aSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCA4ZDUyOTM3Li42NDllNDFiIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2UubW9kZWxmaWx0ZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0xLDcgKzEsNyBAQAogTWFuaWZlc3QtVmVyc2lvbjogMS4wDQogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMg0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5tb2RlbGZpbHRlcjtzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLm1vZGVsZmlsdGVyLmludGVybmFsLkFjdGl2YXRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5qZHQuY29yZSwNCiAgb3JnLmVjbGlwc2UubTJtLmF0bC5lbmdpbmU7YnVuZGxlLXZlcnNpb249IjMuMC4wIiwNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25jaGFpbi5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25jaGFpbi5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNWRhNTI2ZS4uOGFhYjU2NSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uY2hhaW4uZG9jL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbmNoYWluLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDINCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lDQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uY2hhaW4uZG9jO3NpbmdsZXRvbjo9dHJ1ZQ0KLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyDQorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXINCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcg0KIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUNCiBCdW5kbGUtQWN0aXZhdGlvblBvbGljeTogbGF6eQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLmZlYXR1cmUvZmVhdHVyZS54bWwKaW5kZXggZWJkYzVjZi4uZGY1OGYxYyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKIDxmZWF0dXJlDQogICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIFNpbXBsZSB0cmFuc2Zvcm1hdGlvbnMgY2hhaW4gKEluY3ViYXRpb24pIg0KLSAgICAgIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiDQorICAgICAgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciINCiAgICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSINCiAgICAgICBsaWNlbnNlLWZlYXR1cmUtdmVyc2lvbj0iMC4wLjAiPg0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBlZTM5ZmU4Li5kMWMzM2Y2IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4udWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLnVpO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4udWkuaW50ZXJuYWwuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDJkODMyYTkuLmE4NzZhMzEgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbi9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnVzZWNhc2Uuc2ltcGxldHJhbnNmb3JtYXRpb25zY2hhaW4vTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTEsNyArMSw3IEBACiBNYW5pZmVzdC1WZXJzaW9uOiAxLjAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udXNlY2FzZS5zaW1wbGV0cmFuc2Zvcm1hdGlvbnNjaGFpbjtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51c2VjYXNlLnNpbXBsZXRyYW5zZm9ybWF0aW9uc2NoYWluLmludGVybmFsLkFjdGl2YXRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucmVzb3VyY2VzLAogIG9yZy5lY2xpcHNlLmpkdC5jb3JlLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlsLmF0bC5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlsLmF0bC5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGU0NGFiMTAuLmNlNmY1ZjcgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbC5hdGwuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWwuYXRsLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWwuYXRsLmNvcmUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51dGlsLmF0bC5jb3JlLmludGVybmFsLkFjdGl2YXRvcgogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0LmJpcnQuY29yZS50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDljYzgxM2MuLjc3MTI2OWIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUudGVzdHMKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUudGVzdHMuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuYmlydC5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNDNmZTIxMy4uNTY1YmU5ZCAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5iaXJ0LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0LmJpcnQuY29yZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQWN0aXZhdG9yOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0LmJpcnQuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKIFJlcXVpcmUtQnVuZGxlOiBvcmcuZWNsaXBzZS5jb3JlLnJ1bnRpbWUsCiAgb3JnLmVjbGlwc2UuYmlydC5jaGFydC5lbmdpbmU7YnVuZGxlLXZlcnNpb249IjIuNi4wIiwKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuZmVhdHVyZS9mZWF0dXJlLnhtbCBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCA1YTc2MTViLi41ZTI1MDFhIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0LmZlYXR1cmUvZmVhdHVyZS54bWwKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5mZWF0dXJlL2ZlYXR1cmUueG1sCkBAIC0yLDcgKzIsNyBAQAogPGZlYXR1cmUNCiAgICAgICBpZD0ib3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5mZWF0dXJlIg0KICAgICAgIGxhYmVsPSJNb0Rpc2NvIENoYXJ0IFV0aWxpdGllcyAoSW5jdWJhdGlvbikiDQotICAgICAgdmVyc2lvbj0iMC4xMi4yLnF1YWxpZmllciINCisgICAgICB2ZXJzaW9uPSIwLjEzLjIucXVhbGlmaWVyIg0KICAgICAgIHByb3ZpZGVyLW5hbWU9IiVwcm92aWRlck5hbWUiDQogICAgICAgbGljZW5zZS1mZWF0dXJlPSJvcmcuZWNsaXBzZS5saWNlbnNlIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZS12ZXJzaW9uPSIwLjAuMCI+DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jaGFydC5tZXRhbW9kZWwvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0Lm1ldGFtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCAyMzQ1YWRmLi44NTEwNWVlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0Lm1ldGFtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNoYXJ0Lm1ldGFtb2RlbC9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw3ICsyLDcgQEAKIEJ1bmRsZS1NYW5pZmVzdFZlcnNpb246IDIKIEJ1bmRsZS1OYW1lOiAlQnVuZGxlLU5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY2hhcnQubWV0YW1vZGVsO3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQ2xhc3NQYXRoOiAuCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLUxvY2FsaXphdGlvbjogcGx1Z2luCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggNTQ1YjYyYy4uMDc0MDYyYiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgpAQCAtMiw5ICsyLDEwIEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlLmludGVybmFsLkFjdGl2YXRvcgotUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZQorUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZSwKKyBvcmcuZWNsaXBzZS5lbWYuZmFjZXQudXRpbC5jb3JlO2J1bmRsZS12ZXJzaW9uPSIxLjAuMCIKIEJ1bmRsZS1BY3RpdmF0aW9uUG9saWN5OiBsYXp5CiBCdW5kbGUtUmVxdWlyZWRFeGVjdXRpb25FbnZpcm9ubWVudDogSjJTRS0xLjUKIEV4cG9ydC1QYWNrYWdlOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUuaW50ZXJuYWwuZXhwb3J0ZWQKZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL0FjdGl2YXRvci5qYXZhIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3V0aWxzL2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKaW5kZXggMDIzZDFhMy4uZjRjODZiNSAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3V0aWxzL2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3V0aWxzL2NvcmUvaW50ZXJuYWwvQWN0aXZhdG9yLmphdmEKQEAgLTEsNDQgKzEsNTEgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICogQ29weXJpZ2h0IChjKSAyMDEyIElOUklBLiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZQ0KLSAqIGFjY29tcGFueWluZyBtYXRlcmlhbHMgYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZQ0KLSAqIFB1YmxpYyBMaWNlbnNlIHYxLjAgd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCisgKiBDb3B5cmlnaHQgKGMpIDIwMTIsIDIwMTUgSU5SSUEgYW5kIE1pYS1Tb2Z0d2FyZS4NCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBtYWRlIA0KKyAqIGF2YWlsYWJsZSB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UgdjEuMCB3aGljaCANCisgKiBhY2NvbXBhbmllcyB0aGlzIGRpc3RyaWJ1dGlvbiwgYW5kIGlzIGF2YWlsYWJsZSBhdCANCiAgKiBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbA0KICAqIA0KLSAqIENvbnRyaWJ1dG9yczogR3VpbGxhdW1lIERvdXggLSBJTlJJQSAtIEluaXRpYWwgQVBJIGFuZCBpbXBsZW1lbnRhdGlvbg0KLSAqIA0KKyAqIENvbnRyaWJ1dG9yczoNCisgKiAgICBHdWlsbGF1bWUgRG91eCAtIElOUklBIC0gSW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQorICogICAgR3LpZ29pcmUgRHVw6SAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI3MTUgLSBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaW4gU3lzdGVtSW5mby5jb21wdXRlSW5mbyAoMTgwKQ0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQogcGFja2FnZSBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUuaW50ZXJuYWw7DQogDQotaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVBY3RpdmF0b3I7DQoraW1wb3J0IG9yZy5lY2xpcHNlLmNvcmUucnVudGltZS5QbHVnaW47DQogaW1wb3J0IG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0Ow0KIA0KLS8qKg0KLSAqIA0KLSAqIEBhdXRob3IgR3VpbGxhdW1lIERvdXgNCi0gKg0KLSAqLw0KLXB1YmxpYyBjbGFzcyBBY3RpdmF0b3IgaW1wbGVtZW50cyBCdW5kbGVBY3RpdmF0b3Igew0KK0BTdXBwcmVzc1dhcm5pbmdzKCJQTUQuVXNlU2luZ2xldG9uIikNCisvLyBAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlVzZVNpbmdsZXRvbiIpIFdlIGNhbm5vdCBjb25mb3JtcyB0byB0aGlzIHJ1bGUgYmVjYXVzZQ0KKy8vIHRoaXMgY2xhc3MgaXMgYW4gRWNsaXBzZSBwbHVnLWluIGFjdGl2YXRvciB3aGljaCB3aWxsIGJlIGluc3RhbnRpYXRlZCBieSB0aGUNCisvLyBFY2xpcHNlIGZyYW1ld29yay4NCitwdWJsaWMgY2xhc3MgQWN0aXZhdG9yIGV4dGVuZHMgUGx1Z2luIHsNCiANCi0JcHJpdmF0ZSBzdGF0aWMgQnVuZGxlQ29udGV4dCBjb250ZXh0Ow0KKwlwcml2YXRlIHN0YXRpYyBBY3RpdmF0b3IgcGx1Z2luOw0KIA0KLQlzdGF0aWMgQnVuZGxlQ29udGV4dCBnZXRDb250ZXh0KCkgew0KLQkJcmV0dXJuIGNvbnRleHQ7DQorCUBPdmVycmlkZQ0KKwlAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlNpZ25hdHVyZURlY2xhcmVUaHJvd3NFeGNlcHRpb24iKQ0KKwkvLyBAU3VwcHJlc3NXYXJuaW5ncygiUE1ELlNpZ25hdHVyZURlY2xhcmVUaHJvd3NFeGNlcHRpb24iKSBXZSBoYXZlIHRvIHVzZQ0KKwkvLyB0aGlzIHNpZ25hdHVyZSBiZWNhdXNlIHRoaXMgaXMgYW4gb3ZlcnJpZGUgb2YgYW4gRWNsaXBzZSBmcmFtZXdvcmsncw0KKwkvLyBtZXRob2QuDQorCXB1YmxpYyB2b2lkIHN0YXJ0KGZpbmFsIEJ1bmRsZUNvbnRleHQgYnVuZGxlQ29udGV4dCkgdGhyb3dzIEV4Y2VwdGlvbiB7DQorCQlzdXBlci5zdGFydChidW5kbGVDb250ZXh0KTsNCisJCUFjdGl2YXRvci5wbHVnaW4gPSB0aGlzOw0KIAl9DQogDQotCS8qDQotCSAqIChub24tSmF2YWRvYykNCi0JICogQHNlZSBvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQWN0aXZhdG9yI3N0YXJ0KG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVDb250ZXh0KQ0KLQkgKi8NCi0JcHVibGljIHZvaWQgc3RhcnQoQnVuZGxlQ29udGV4dCBidW5kbGVDb250ZXh0KSB0aHJvd3MgRXhjZXB0aW9uIHsNCi0JCUFjdGl2YXRvci5jb250ZXh0ID0gYnVuZGxlQ29udGV4dDsNCisJQE92ZXJyaWRlDQorCUBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuU2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbiIpDQorCS8vIEBTdXBwcmVzc1dhcm5pbmdzKCJQTUQuU2lnbmF0dXJlRGVjbGFyZVRocm93c0V4Y2VwdGlvbiIpIFdlIGhhdmUgdG8gdXNlDQorCS8vIHRoaXMgc2lnbmF0dXJlIGJlY2F1c2UgdGhpcyBpcyBhbiBvdmVycmlkZSBvZiBhbiBFY2xpcHNlIGZyYW1ld29yaydzDQorCS8vIG1ldGhvZC4NCisJcHVibGljIHZvaWQgc3RvcChmaW5hbCBCdW5kbGVDb250ZXh0IGJ1bmRsZUNvbnRleHQpIHRocm93cyBFeGNlcHRpb24gew0KKwkJLy8gTk9QTUQ6IFBNRCBzYXkgIkFzc2lnbmluZyBhbiBPYmplY3QgdG8gbnVsbCBpcyBhIGNvZGUgc21lbGwuIg0KKwkJLy8gTm8gY2hvaWNlIHRvIHJpZ2h0IGl0IGluIGFub3RoZXIgd2F5IDogdGhpcyBpcyBhbiBFY2xpcHNlIHBhdHRlcm4uDQorCQlBY3RpdmF0b3IucGx1Z2luID0gbnVsbDsgLy8gTk9QTUQgYnkgZ2R1cGUgb24gMzAvMDMvMTIgMTA6MTkNCisJCXN1cGVyLnN0b3AoYnVuZGxlQ29udGV4dCk7DQogCX0NCiANCi0JLyoNCi0JICogKG5vbi1KYXZhZG9jKQ0KLQkgKiBAc2VlIG9yZy5vc2dpLmZyYW1ld29yay5CdW5kbGVBY3RpdmF0b3Ijc3RvcChvcmcub3NnaS5mcmFtZXdvcmsuQnVuZGxlQ29udGV4dCkNCi0JICovDQotCXB1YmxpYyB2b2lkIHN0b3AoQnVuZGxlQ29udGV4dCBidW5kbGVDb250ZXh0KSB0aHJvd3MgRXhjZXB0aW9uIHsNCi0JCUFjdGl2YXRvci5jb250ZXh0ID0gbnVsbDsNCisJcHVibGljIHN0YXRpYyBQbHVnaW4gZ2V0RGVmYXVsdCgpIHsNCisJCXJldHVybiBBY3RpdmF0b3IucGx1Z2luOw0KIAl9DQogDQogfQ0KZGlmZiAtLWdpdCBhL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL2V4cG9ydGVkL1N5c3RlbUluZm8uamF2YSBiL29yZy5lY2xpcHNlLm1vZGlzY28udXRpbHMuY29yZS9zcmMvb3JnL2VjbGlwc2UvbW9kaXNjby91dGlscy9jb3JlL2ludGVybmFsL2V4cG9ydGVkL1N5c3RlbUluZm8uamF2YQppbmRleCAxMDFjNmEwLi4wYmQ0ZjE3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUvc3JjL29yZy9lY2xpcHNlL21vZGlzY28vdXRpbHMvY29yZS9pbnRlcm5hbC9leHBvcnRlZC9TeXN0ZW1JbmZvLmphdmEKKysrIGIvb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlL3NyYy9vcmcvZWNsaXBzZS9tb2Rpc2NvL3V0aWxzL2NvcmUvaW50ZXJuYWwvZXhwb3J0ZWQvU3lzdGVtSW5mby5qYXZhCkBAIC0xLDUgKzEsNSBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTEgTWlhLVNvZnR3YXJlLg0KKyAqIENvcHlyaWdodCAoYykgMjAxMSwgMjAxNSBNaWEtU29mdHdhcmUsIGFuZCBJTlJJQS4NCiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLiBUaGlzIHByb2dyYW0gYW5kIHRoZSBhY2NvbXBhbnlpbmcgbWF0ZXJpYWxzDQogICogYXJlIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSB2MS4wDQogICogd2hpY2ggYWNjb21wYW5pZXMgdGhpcyBkaXN0cmlidXRpb24sIGFuZCBpcyBhdmFpbGFibGUgYXQNCkBAIC03LDcgKzcsOCBAQAogICoNCiAgKiBDb250cmlidXRvcnM6DQogICogICAgTmljb2xhcyBCcm9zIChNaWEtU29mdHdhcmUpIC0gaW5pdGlhbCBBUEkgYW5kIGltcGxlbWVudGF0aW9uDQotICogICAgR3VpbGxhdW1lIERvdXggKElOUklBKSAtICByZWZhY3RvcmluZyBhbmQgbW92ZSB0byBhIHNlcGFyYXRlIHBsdWctaW4NCisgKiAgICBHdWlsbGF1bWUgRG91eCAoSU5SSUEpIC0gcmVmYWN0b3JpbmcgYW5kIG1vdmUgdG8gYSBzZXBhcmF0ZSBwbHVnLWluDQorICogICAgR3LpZ29pcmUgRHVw6SAoTWlhLVNvZnR3YXJlKSAtIEJ1ZyA0ODI3MTUgLSBOdW1iZXJGb3JtYXRFeGNlcHRpb24gaW4gU3lzdGVtSW5mby5jb21wdXRlSW5mbyAoMTgwKQ0KICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLw0KIHBhY2thZ2Ugb3JnLmVjbGlwc2UubW9kaXNjby51dGlscy5jb3JlLmludGVybmFsLmV4cG9ydGVkOw0KIA0KQEAgLTI3LDYgKzI4LDkgQEAKIGltcG9ydCBqYXZhLnV0aWwucmVnZXguTWF0Y2hlcjsNCiBpbXBvcnQgamF2YS51dGlsLnJlZ2V4LlBhdHRlcm47DQogDQoraW1wb3J0IG9yZy5lY2xpcHNlLmVtZi5mYWNldC51dGlsLmNvcmUuTG9nZ2VyOw0KK2ltcG9ydCBvcmcuZWNsaXBzZS5tb2Rpc2NvLnV0aWxzLmNvcmUuaW50ZXJuYWwuQWN0aXZhdG9yOw0KKw0KIC8qKg0KICAqIENsYXNzIHByb3ZpZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3lzdGVtIHRoYXQgYXJlIG5vdCBwcm92aWRlZCBpbnRlcm5hbGx5IGJ5IEpBVkENCiAgKg0KQEAgLTE3Nyw3ICsxODEsMTEgQEAKIAkJCUxpc3Q8U3RyaW5nPiBpbmZvcyA9IGdldEluZm9zKCJDYXBhY2l0eSIsIHJlc3VsdCk7IC8vJE5PTi1OTFMtMSQNCiAJCQlsb25nIG1lbSA9IDA7DQogCQkJZm9yIChTdHJpbmcgaW5mbyA6IGluZm9zKSB7DQotCQkJCW1lbSArPSBMb25nLnBhcnNlTG9uZyhpbmZvKTsNCisJCQkJdHJ5IHsNCisJCQkJCW1lbSArPSBMb25nLnBhcnNlTG9uZyhpbmZvKTsNCisJCQkJfSBjYXRjaCAoTnVtYmVyRm9ybWF0RXhjZXB0aW9uIGUpIHsNCisJCQkJCUxvZ2dlci5sb2dXYXJuaW5nKGUsIEFjdGl2YXRvci5nZXREZWZhdWx0KCkpOw0KKwkJCQl9DQogCQkJfQ0KIAkJCXRoaXMubWVtb3J5ID0gIiIgKyBtZW07IC8vJE5PTi1OTFMtMSQNCiAJCX0gZWxzZSB7DQpkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy5jb3JlL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IGU4OGNkMDYuLmE2YzJlNTIgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cuY29yZS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LmNvcmUvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LmNvcmU7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cuY29yZS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggMGE1ZTI0Zi4uMjBlNGZkNiAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93LnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy51aS5pbnRlcm5hbC5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93L01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby53b3JrZmxvdy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBmY2RlNWM5Li4xNzUwZmNlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93L01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ud29ya2Zsb3cvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLndvcmtmbG93O3NpbmdsZXRvbjo9dHJ1ZQotQnVuZGxlLVZlcnNpb246IDAuMTIuMi5xdWFsaWZpZXIKK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyCiBCdW5kbGUtQ2xhc3NQYXRoOiAuCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogQnVuZGxlLVJlcXVpcmVkRXhlY3V0aW9uRW52aXJvbm1lbnQ6IEoyU0UtMS41CmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci50ZXN0cy9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBiNzE1YzZhLi4yZWJiZGY3IDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJUJ1bmRsZS1OYW1lCiBCdW5kbGUtU3ltYm9saWNOYW1lOiBvcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnRlc3RzCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudGVzdHMuQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlQnVuZGxlLVZlbmRvcgogUmVxdWlyZS1CdW5kbGU6IG9yZy5lY2xpcHNlLnVpLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRiBiL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIudWkvTUVUQS1JTkYvTUFOSUZFU1QuTUYKaW5kZXggOGZiMWRmMy4uOWFhMDkwNyAxMDA2NDQKLS0tIGEvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci51aS9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyLnVpL01FVEEtSU5GL01BTklGRVNULk1GCkBAIC0yLDcgKzIsNyBAQAogQnVuZGxlLU1hbmlmZXN0VmVyc2lvbjogMgogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQogQnVuZGxlLVN5bWJvbGljTmFtZTogb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci51aTtzaW5nbGV0b246PXRydWUKLUJ1bmRsZS1WZXJzaW9uOiAwLjEyLjIucXVhbGlmaWVyCitCdW5kbGUtVmVyc2lvbjogMC4xMy4yLnF1YWxpZmllcgogQnVuZGxlLUFjdGl2YXRvcjogb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci51aS5BY3RpdmF0b3IKIEJ1bmRsZS1WZW5kb3I6ICVCdW5kbGUtVmVuZG9yCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UudWksCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZGlzY292ZXJlci9NRVRBLUlORi9NQU5JRkVTVC5NRgppbmRleCBiZWJhN2RmLi40ZmNkMWUyIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kaXNjb3ZlcmVyL01FVEEtSU5GL01BTklGRVNULk1GCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyCiBCdW5kbGUtTmFtZTogJXBsdWdpbk5hbWUKIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXI7c2luZ2xldG9uOj10cnVlCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcgorQnVuZGxlLVZlcnNpb246IDAuMTMuMi5xdWFsaWZpZXIKIEJ1bmRsZS1BY3RpdmF0b3I6IG9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRpc2NvdmVyZXIuaW50ZXJuYWwuWG1sQWN0aXZhdG9yCiBCdW5kbGUtVmVuZG9yOiAlcHJvdmlkZXJOYW1lCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lLApkaWZmIC0tZ2l0IGEvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZG9jL01FVEEtSU5GL01BTklGRVNULk1GIGIvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZG9jL01FVEEtSU5GL01BTklGRVNULk1GCmluZGV4IDk2OWYwZTYuLmZkNDJlMWYgMTAwNjQ0Ci0tLSBhL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRvYy9NRVRBLUlORi9NQU5JRkVTVC5NRgorKysgYi9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5kb2MvTUVUQS1JTkYvTUFOSUZFU1QuTUYKQEAgLTIsNyArMiw3IEBACiBCdW5kbGUtTWFuaWZlc3RWZXJzaW9uOiAyDQogQnVuZGxlLU5hbWU6ICVCdW5kbGUtTmFtZQ0KIEJ1bmRsZS1TeW1ib2xpY05hbWU6IG9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmRvYztzaW5nbGV0b246PXRydWUNCi1CdW5kbGUtVmVyc2lvbjogMC4xMi4yLnF1YWxpZmllcg0KK0J1bmRsZS1WZXJzaW9uOiAwLjEzLjIucXVhbGlmaWVyDQogQnVuZGxlLVZlbmRvcjogJUJ1bmRsZS1WZW5kb3INCiBSZXF1aXJlLUJ1bmRsZTogb3JnLmVjbGlwc2UuY29yZS5ydW50aW1lDQogQnVuZGxlLUFjdGl2YXRpb25Qb2xpY3k6IGxhenkNCmRpZmYgLS1naXQgYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5mZWF0dXJlL2ZlYXR1cmUueG1sIGIvb3JnLmVjbGlwc2UubW9kaXNjby54bWwuZmVhdHVyZS9mZWF0dXJlLnhtbAppbmRleCAyNjZhNmUzLi4yMzk4MDRlIDEwMDY0NAotLS0gYS9vcmcuZWNsaXBzZS5tb2Rpc2NvLnhtbC5mZWF0dXJlL2ZlYXR1cmUueG1sCisrKyBiL29yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmZlYXR1cmUvZmVhdHVyZS54bWwKQEAgLTEyLDcgKzEyLDcgQEAKIDxmZWF0dXJlDQogICAgICAgaWQ9Im9yZy5lY2xpcHNlLm1vZGlzY28ueG1sLmZlYXR1cmUiDQogICAgICAgbGFiZWw9Ik1vRGlzY28gWG1sIEZlYXR1cmUgKEluY3ViYXRpb24pIg0KLSAgICAgIHZlcnNpb249IjAuMTIuMi5xdWFsaWZpZXIiDQorICAgICAgdmVyc2lvbj0iMC4xMy4yLnF1YWxpZmllciINCiAgICAgICBwcm92aWRlci1uYW1lPSIlcHJvdmlkZXJOYW1lIg0KICAgICAgIHBsdWdpbj0ib3JnLmVjbGlwc2UuZ210Lm1vZGlzY28ueG1sIg0KICAgICAgIGxpY2Vuc2UtZmVhdHVyZT0ib3JnLmVjbGlwc2UubGljZW5zZSINCg==